From 2f3f77926dc53f6c2447e72d0f1553bed5da4a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Mon, 30 Dec 2019 16:11:56 -0500 Subject: [PATCH] refactor: remove unused invalidTemplateEscapePosition tokenizer state (#10935) * refactor: remove unused invalidTemplateEscapePosition tokenizer state * fix flow error --- packages/babel-parser/src/parser/expression.js | 8 +------- packages/babel-parser/src/tokenizer/index.js | 11 +---------- packages/babel-parser/src/tokenizer/state.js | 2 -- 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index 4b7a4558426b..1c83e5073bfa 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -1430,13 +1430,7 @@ export default class ExpressionParser extends LValParser { const elem = this.startNode(); if (this.state.value === null) { if (!isTagged) { - // TODO: fix this - this.raise( - this.state.invalidTemplateEscapePosition || 0, - "Invalid escape sequence in template", - ); - } else { - this.state.invalidTemplateEscapePosition = null; + this.raise(this.state.start + 1, "Invalid escape sequence in template"); } } elem.value = { diff --git a/packages/babel-parser/src/tokenizer/index.js b/packages/babel-parser/src/tokenizer/index.js index 32c8a03fc0b9..3e497106ee2d 100644 --- a/packages/babel-parser/src/tokenizer/index.js +++ b/packages/babel-parser/src/tokenizer/index.js @@ -1122,14 +1122,10 @@ export default class Tokenizer extends LocationParser { throwOnInvalid, ); ++this.state.pos; - if (code === null) { - // $FlowFixMe (is this always non-null?) - --this.state.invalidTemplateEscapePosition; // to point to the '\'' instead of the 'u' - } else if (code > 0x10ffff) { + if (code !== null && code > 0x10ffff) { if (throwOnInvalid) { this.raise(codePos, "Code point out of bounds"); } else { - this.state.invalidTemplateEscapePosition = codePos - 2; return null; } } @@ -1274,9 +1270,6 @@ export default class Tokenizer extends LocationParser { case charCodes.digit8: case charCodes.digit9: if (inTemplate) { - const codePos = this.state.pos - 1; - - this.state.invalidTemplateEscapePosition = codePos; return null; } default: @@ -1299,7 +1292,6 @@ export default class Tokenizer extends LocationParser { next === charCodes.digit9 ) { if (inTemplate) { - this.state.invalidTemplateEscapePosition = codePos; return null; } else if (this.state.strict) { this.raise(codePos, "Octal literal in strict mode"); @@ -1332,7 +1324,6 @@ export default class Tokenizer extends LocationParser { this.raise(codePos, "Bad character escape sequence"); } else { this.state.pos = codePos - 1; - this.state.invalidTemplateEscapePosition = codePos - 1; } } return n; diff --git a/packages/babel-parser/src/tokenizer/state.js b/packages/babel-parser/src/tokenizer/state.js index d3f370df1473..874b5cbdfcad 100644 --- a/packages/babel-parser/src/tokenizer/state.js +++ b/packages/babel-parser/src/tokenizer/state.js @@ -156,8 +156,6 @@ export default class State { // `export default foo;` and `export { foo as default };`. exportedIdentifiers: Array = []; - invalidTemplateEscapePosition: ?number = null; - curPosition(): Position { return new Position(this.curLine, this.pos - this.lineStart); }