diff --git a/packages/babel-parser/src/tokenizer/index.js b/packages/babel-parser/src/tokenizer/index.js index 1d2ea02212fd..ab0dbe5b9237 100644 --- a/packages/babel-parser/src/tokenizer/index.js +++ b/packages/babel-parser/src/tokenizer/index.js @@ -1239,6 +1239,14 @@ export default class Tokenizer extends LocationParser { case charCodes.lineSeparator: case charCodes.paragraphSeparator: return ""; + case charCodes.digit8: + case charCodes.digit9: + if (inTemplate) { + const codePos = this.state.pos - 1; + + this.state.invalidTemplateEscapePosition = codePos; + return null; + } default: if (ch >= charCodes.digit0 && ch <= charCodes.digit7) { const codePos = this.state.pos - 1; diff --git a/packages/babel-parser/test/fixtures/core/escape-template/non-octal/eight/input.js b/packages/babel-parser/test/fixtures/core/escape-template/non-octal/eight/input.js new file mode 100644 index 000000000000..adc52b823a24 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-template/non-octal/eight/input.js @@ -0,0 +1 @@ +`\8`; diff --git a/packages/babel-parser/test/fixtures/core/escape-template/non-octal/eight/options.json b/packages/babel-parser/test/fixtures/core/escape-template/non-octal/eight/options.json new file mode 100644 index 000000000000..3ae5cb6c96c4 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-template/non-octal/eight/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid escape sequence in template (1:2)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/core/escape-template/non-octal/nine/input.js b/packages/babel-parser/test/fixtures/core/escape-template/non-octal/nine/input.js new file mode 100644 index 000000000000..b5435620b9cb --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-template/non-octal/nine/input.js @@ -0,0 +1 @@ +`\9`; diff --git a/packages/babel-parser/test/fixtures/core/escape-template/non-octal/nine/options.json b/packages/babel-parser/test/fixtures/core/escape-template/non-octal/nine/options.json new file mode 100644 index 000000000000..3ae5cb6c96c4 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-template/non-octal/nine/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid escape sequence in template (1:2)" +} \ No newline at end of file