From d95013f3995cc4d68b98546731aeddbc510bf77e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 27 Oct 2020 13:21:11 +0100 Subject: [PATCH] assert,repl: enable ecmaVersion 2021 in acorn parser This adds support for the new logical assignment operators. PR-URL: https://github.com/nodejs/node/pull/35827 Reviewed-By: James M Snell Reviewed-By: Jiawen Geng Reviewed-By: Richard Lau Reviewed-By: Anto Aravinth Reviewed-By: Rich Trott Reviewed-By: Colin Ihrig Reviewed-By: Gus Caplan Reviewed-By: Ruben Bridgewater --- lib/assert.js | 2 +- lib/internal/repl/await.js | 2 +- lib/internal/repl/utils.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/assert.js b/lib/assert.js index 415ac30775d26a..43209df18f01d1 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -241,7 +241,7 @@ function parseCode(code, offset) { // Parse the read code until the correct expression is found. do { try { - node = parseExpressionAt(code, start, { ecmaVersion: 11 }); + node = parseExpressionAt(code, start, { ecmaVersion: 'latest' }); start = node.end + 1 || start; // Find the CallExpression in the tree. node = findNodeAround(node, offset, 'CallExpression'); diff --git a/lib/internal/repl/await.js b/lib/internal/repl/await.js index 7bfdcb894f3045..da6c7a3a17da99 100644 --- a/lib/internal/repl/await.js +++ b/lib/internal/repl/await.js @@ -90,7 +90,7 @@ function processTopLevelAwait(src) { const wrappedArray = wrapped.split(''); let root; try { - root = parser.parse(wrapped, { ecmaVersion: 11 }); + root = parser.parse(wrapped, { ecmaVersion: 'latest' }); } catch { return null; } diff --git a/lib/internal/repl/utils.js b/lib/internal/repl/utils.js index 7d68e5e4d99178..058f262b5a6b47 100644 --- a/lib/internal/repl/utils.js +++ b/lib/internal/repl/utils.js @@ -114,7 +114,7 @@ function isRecoverableError(e, code) { // Try to parse the code with acorn. If the parse fails, ignore the acorn // error and return the recoverable status. try { - RecoverableParser.parse(code, { ecmaVersion: 11 }); + RecoverableParser.parse(code, { ecmaVersion: 'latest' }); // Odd case: the underlying JS engine (V8, Chakra) rejected this input // but Acorn detected no issue. Presume that additional text won't