Skip to content

Commit 708673a

Browse files
committed
Fix an off-by-one error in CDC skipping
skip_cdc_and_cdo had an off-by-one error when trying to skip the CDC.
1 parent 44c6c36 commit 708673a

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/tests.rs

+9
Original file line numberDiff line numberDiff line change
@@ -970,6 +970,15 @@ fn parser_maintains_current_line() {
970970
assert_eq!(parser.current_line(), "ident");
971971
}
972972

973+
#[test]
974+
fn cdc_regression_test() {
975+
let mut input = ParserInput::new("-->x");
976+
let mut parser = Parser::new(&mut input);
977+
parser.skip_cdc_and_cdo();
978+
assert_eq!(parser.next(), Ok(&Token::Ident("x".into())));
979+
assert_eq!(parser.next(), Err(BasicParseError::EndOfInput));
980+
}
981+
973982
#[test]
974983
fn parse_entirely_reports_first_error() {
975984
#[derive(PartialEq, Debug)]

src/tokenizer.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ impl<'a> Tokenizer<'a> {
470470
}
471471
b'-' => {
472472
if self.starts_with(b"-->") {
473-
self.advance(4)
473+
self.advance(3)
474474
} else {
475475
return
476476
}

0 commit comments

Comments
 (0)