From 3be8ad80f2ecee21d197ef73a9a264abcb27deeb Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Thu, 5 Aug 2021 14:59:48 +0800 Subject: [PATCH 1/4] Allow `"latest"` as `ecmaVersion` --- .../babel-eslint-parser/src/configuration.cjs | 2 +- .../test/integration/eslint/config.js | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/eslint/babel-eslint-parser/src/configuration.cjs b/eslint/babel-eslint-parser/src/configuration.cjs index 5cf2e5cc4fa4..bc2fd48d2e2d 100644 --- a/eslint/babel-eslint-parser/src/configuration.cjs +++ b/eslint/babel-eslint-parser/src/configuration.cjs @@ -11,7 +11,7 @@ exports.normalizeESLintConfig = function (options) { return { babelOptions: { cwd: process.cwd(), ...babelOptions }, - ecmaVersion, + ecmaVersion: ecmaVersion === 'latest' ? 2020 : ecmaVersion, sourceType, allowImportExportEverywhere, requireConfigFile, diff --git a/eslint/babel-eslint-tests/test/integration/eslint/config.js b/eslint/babel-eslint-tests/test/integration/eslint/config.js index 989e9a8287d0..182e1159b302 100644 --- a/eslint/babel-eslint-tests/test/integration/eslint/config.js +++ b/eslint/babel-eslint-tests/test/integration/eslint/config.js @@ -21,4 +21,23 @@ describe("ESLint config", () => { }); expect(messages.length).toEqual(0); }); + + it('should allow ecmaVersion to "latest"', () => { + const linter = new eslint.Linter(); + linter.defineParser("@babel/eslint-parser", parser); + // ImportDeclarations result in a parser error if ecmaVersion < 2015 and sourceType != "module". + const messages = linter.verify('import { hello } from "greetings"', { + parser: "@babel/eslint-parser", + parserOptions: { + ecmaVersion: "latest", + babelOptions: { + configFile: path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + "../../../../babel-eslint-shared-fixtures/config/babel.config.js", + ), + }, + }, + }); + expect(messages.length).toEqual(0); + }); }); From afd91df4614f03386e78b093ac75f12b85038867 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Thu, 5 Aug 2021 15:15:15 +0800 Subject: [PATCH 2/4] Style --- eslint/babel-eslint-parser/src/configuration.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint/babel-eslint-parser/src/configuration.cjs b/eslint/babel-eslint-parser/src/configuration.cjs index bc2fd48d2e2d..4b693a6c43b7 100644 --- a/eslint/babel-eslint-parser/src/configuration.cjs +++ b/eslint/babel-eslint-parser/src/configuration.cjs @@ -11,7 +11,7 @@ exports.normalizeESLintConfig = function (options) { return { babelOptions: { cwd: process.cwd(), ...babelOptions }, - ecmaVersion: ecmaVersion === 'latest' ? 2020 : ecmaVersion, + ecmaVersion: ecmaVersion === "latest" ? 2020 : ecmaVersion, sourceType, allowImportExportEverywhere, requireConfigFile, From 0db9bee0a5476bab5639756b74f0a94fbc05a85b Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Thu, 19 Aug 2021 13:45:29 +0800 Subject: [PATCH 3/4] Use `1e8` --- eslint/babel-eslint-parser/src/configuration.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint/babel-eslint-parser/src/configuration.cjs b/eslint/babel-eslint-parser/src/configuration.cjs index 4b693a6c43b7..11da9fc6c4bf 100644 --- a/eslint/babel-eslint-parser/src/configuration.cjs +++ b/eslint/babel-eslint-parser/src/configuration.cjs @@ -11,7 +11,7 @@ exports.normalizeESLintConfig = function (options) { return { babelOptions: { cwd: process.cwd(), ...babelOptions }, - ecmaVersion: ecmaVersion === "latest" ? 2020 : ecmaVersion, + ecmaVersion: ecmaVersion === "latest" ? 1e8 : ecmaVersion, sourceType, allowImportExportEverywhere, requireConfigFile, From fb7cdeaf39e380c76e9a49ccd18ed63a47ae8111 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Thu, 19 Aug 2021 13:46:27 +0800 Subject: [PATCH 4/4] Update config.js --- eslint/babel-eslint-tests/test/integration/eslint/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint/babel-eslint-tests/test/integration/eslint/config.js b/eslint/babel-eslint-tests/test/integration/eslint/config.js index 182e1159b302..f0a406d251ee 100644 --- a/eslint/babel-eslint-tests/test/integration/eslint/config.js +++ b/eslint/babel-eslint-tests/test/integration/eslint/config.js @@ -22,7 +22,7 @@ describe("ESLint config", () => { expect(messages.length).toEqual(0); }); - it('should allow ecmaVersion to "latest"', () => { + it('should allow ecmaVersion to be "latest"', () => { const linter = new eslint.Linter(); linter.defineParser("@babel/eslint-parser", parser); // ImportDeclarations result in a parser error if ecmaVersion < 2015 and sourceType != "module".