From 660c8483e669c91dab16873cdfa2758393580225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Fri, 19 Nov 2021 11:57:30 -0500 Subject: [PATCH] refactor: merge babel 7 logic in babel7CompatTokens --- packages/babel-parser/src/parser/statement.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/babel-parser/src/parser/statement.js b/packages/babel-parser/src/parser/statement.js index 2b02804400f9..8982c706b701 100644 --- a/packages/babel-parser/src/parser/statement.js +++ b/packages/babel-parser/src/parser/statement.js @@ -56,7 +56,10 @@ const loneSurrogate = /[\uD800-\uDFFF]/u; const keywordRelationalOperator = /in(?:stanceof)?/y; /** - * Convert tt.privateName to tt.hash + tt.name for backward Babel 7 compat. + * Convert tokens for backward Babel 7 compat. + * tt.privateName => tt.hash + tt.name + * tt.templateTail => tt.backquote/tt.braceR + tt.template + tt.backquote + * tt.templateNonTail => tt.backquote/tt.braceR + tt.template + tt.dollarBraceL * For performance reasons this routine mutates `tokens`, it is okay * here since we execute `parseTopLevel` once for every file. * @param {*} tokens @@ -66,8 +69,8 @@ function babel7CompatTokens(tokens) { for (let i = 0; i < tokens.length; i++) { const token = tokens[i]; const { type } = token; - if (type === tt.privateName) { - if (!process.env.BABEL_8_BREAKING) { + if (!process.env.BABEL_8_BREAKING) { + if (type === tt.privateName) { const { loc, start, value, end } = token; const hashEndPos = start + 1; const hashEndLoc = createPositionWithColumnOffset(loc.start, 1); @@ -96,9 +99,8 @@ function babel7CompatTokens(tokens) { i++; continue; } - } - if (tokenIsTemplate(type)) { - if (!process.env.BABEL_8_BREAKING) { + + if (tokenIsTemplate(type)) { const { loc, start, value, end } = token; const backquoteEnd = start + 1; const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1);