diff --git a/src/tests.rs b/src/tests.rs index 36363453..3a0439e7 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -970,6 +970,15 @@ fn parser_maintains_current_line() { assert_eq!(parser.current_line(), "ident"); } +#[test] +fn cdc_regression_test() { + let mut input = ParserInput::new("-->x"); + let mut parser = Parser::new(&mut input); + parser.skip_cdc_and_cdo(); + assert_eq!(parser.next(), Ok(&Token::Ident("x".into()))); + assert_eq!(parser.next(), Err(BasicParseError::EndOfInput)); +} + #[test] fn parse_entirely_reports_first_error() { #[derive(PartialEq, Debug)] diff --git a/src/tokenizer.rs b/src/tokenizer.rs index f7c13f43..51f37b9a 100644 --- a/src/tokenizer.rs +++ b/src/tokenizer.rs @@ -470,7 +470,7 @@ impl<'a> Tokenizer<'a> { } b'-' => { if self.starts_with(b"-->") { - self.advance(4) + self.advance(3) } else { return }