diff --git a/src/tokens.rs b/src/tokens.rs index 1b5a755..79aeb60 100644 --- a/src/tokens.rs +++ b/src/tokens.rs @@ -331,7 +331,7 @@ impl<'a> Tokenizer<'a> { fn literal_string(&mut self, start: usize) -> Result, Error> { self.read_string('\'', start, &mut |_me, val, _multi, i, ch| { - if ch == '\u{09}' || ('\u{20}' <= ch && ch <= '\u{10ffff}') { + if ch == '\u{09}' || ('\u{20}' <= ch && ch <= '\u{10ffff}' && ch != '\u{7f}') { val.push(ch); Ok(()) } else { @@ -373,7 +373,7 @@ impl<'a> Tokenizer<'a> { } Ok(()) } - ch if '\u{20}' <= ch && ch <= '\u{10ffff}' => { + ch if '\u{20}' <= ch && ch <= '\u{10ffff}' && ch != '\u{7f}' => { val.push(ch); Ok(()) } diff --git a/test-suite/tests/invalid-misc.rs b/test-suite/tests/invalid-misc.rs index bb70b97..7d34651 100644 --- a/test-suite/tests/invalid-misc.rs +++ b/test-suite/tests/invalid-misc.rs @@ -14,4 +14,6 @@ fn bad() { bad("a = -inf"); bad("a = inf"); bad("a = 9e99999"); + bad("a = \"\u{7f}\""); + bad("a = '\u{7f}'"); }