diff --git a/components/selectors/parser.rs b/components/selectors/parser.rs index 2be48151ce7..8ee4378cdc7 100644 --- a/components/selectors/parser.rs +++ b/components/selectors/parser.rs @@ -5,6 +5,7 @@ use arcslice::ArcSlice; use cssparser::{Token, Parser as CssParser, parse_nth, ToCss, serialize_identifier, CssStringWriter}; use precomputed_hash::PrecomputedHash; +use smallvec::SmallVec; use std::ascii::AsciiExt; use std::borrow::{Borrow, Cow}; use std::cmp; @@ -886,13 +887,23 @@ fn parse_selector
(parser: &P, input: &mut CssParser) -> Result (
parser: &P,
input: &mut CssParser)
-> Result<(ComplexSelector (
sequence.push(Component::Combinator(combinator));
}
- let complex = ComplexSelector(ArcSlice::new(sequence.into_boxed_slice()));
+ let complex = ComplexSelector(ArcSlice::new(sequence.into_vec().into_boxed_slice()));
Ok((complex, pseudo_element))
}
@@ -956,7 +967,7 @@ impl (parser: &P, input: &mut CssParser, sequence: &mut Vec (parser: &P, input: &mut CssParser, sequence: &mut ParseVec (parser: &P,
fn parse_compound_selector (
parser: &P,
input: &mut CssParser,
- mut sequence: &mut Vec