handle control characters at start of selector
This commit is contained in:
parent
618fa9ed86
commit
ef25d8b880
@ -397,6 +397,9 @@ impl<'a> StyleSheetParser<'a> {
|
|||||||
"Base-level rules cannot contain the parent-selector-referencing character '&'.".into(),
|
"Base-level rules cannot contain the parent-selector-referencing character '&'.".into(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
c if c.is_control() => {
|
||||||
|
return Err("expected selector.".into());
|
||||||
|
}
|
||||||
_ => match dbg!(self.lexer.next()) {
|
_ => match dbg!(self.lexer.next()) {
|
||||||
Some(Token { pos, .. }) => self.error(pos, "unexpected toplevel token"),
|
Some(Token { pos, .. }) => self.error(pos, "unexpected toplevel token"),
|
||||||
_ => unsafe { std::hint::unreachable_unchecked() },
|
_ => unsafe { std::hint::unreachable_unchecked() },
|
||||||
|
@ -331,6 +331,9 @@ impl<'a> SelectorParser<'a> {
|
|||||||
self.super_selector,
|
self.super_selector,
|
||||||
)?)
|
)?)
|
||||||
}
|
}
|
||||||
|
c if c.is_control() => {
|
||||||
|
return Err("expected selector.".into());
|
||||||
|
}
|
||||||
_ => todo!("unimplemented selector"),
|
_ => todo!("unimplemented selector"),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -44,3 +44,11 @@ error!(
|
|||||||
symbol_after_hash,
|
symbol_after_hash,
|
||||||
"a {color: bar + #}ar;}", "Error: Expected identifier."
|
"a {color: bar + #}ar;}", "Error: Expected identifier."
|
||||||
);
|
);
|
||||||
|
error!(
|
||||||
|
control_character_starts_selector_toplevel,
|
||||||
|
"l {color: foo;}", "Error: expected selector."
|
||||||
|
);
|
||||||
|
error!(
|
||||||
|
control_character_starts_selector_inner,
|
||||||
|
"a{l {color: foo;}}", "Error: expected selector."
|
||||||
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user