From 8a7c41b1493fd7200412d5120ba12c1186a9baf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Sun, 6 Jun 2021 19:06:03 +0800 Subject: [PATCH] fix: check if the parser is built-in --- lib/linter/linter.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/linter/linter.js b/lib/linter/linter.js index f61ad569568f..75d5c7844a57 100644 --- a/lib/linter/linter.js +++ b/lib/linter/linter.js @@ -433,16 +433,19 @@ function getDirectiveComments(filename, ast, ruleMapper, warnInlineConfig) { /** * Normalize ECMAScript version from the initial config + * @param {Parser} parser The parser which uses this options. * @param {number} ecmaVersion ECMAScript version from the initial config * @returns {number} normalized ECMAScript version */ -function normalizeEcmaVersion(ecmaVersion) { - if (ecmaVersion === void 0) { - return DEFAULT_ECMA_VERSION; - } +function normalizeEcmaVersion(parser, ecmaVersion) { + if (parser === espree) { + if (ecmaVersion === void 0) { + return DEFAULT_ECMA_VERSION; + } - if (ecmaVersion === "latest") { - return espree.latestEcmaVersion; + if (ecmaVersion === "latest") { + return espree.latestEcmaVersion; + } } /* @@ -529,12 +532,12 @@ function normalizeVerifyOptions(providedOptions, config) { /** * Combines the provided parserOptions with the options from environments - * @param {string} parserName The parser name which uses this options. + * @param {Parser} parser The parser which uses this options. * @param {ParserOptions} providedOptions The provided 'parserOptions' key in a config * @param {Environment[]} enabledEnvironments The environments enabled in configuration and with inline comments * @returns {ParserOptions} Resulting parser options after merge */ -function resolveParserOptions(parserName, providedOptions, enabledEnvironments) { +function resolveParserOptions(parser, providedOptions, enabledEnvironments) { const parserOptionsFromEnv = enabledEnvironments .filter(env => env.parserOptions) .reduce((parserOptions, env) => merge(parserOptions, env.parserOptions), {}); @@ -550,7 +553,7 @@ function resolveParserOptions(parserName, providedOptions, enabledEnvironments) mergedParserOptions.ecmaFeatures = Object.assign({}, mergedParserOptions.ecmaFeatures, { globalReturn: false }); } - mergedParserOptions.ecmaVersion = normalizeEcmaVersion(mergedParserOptions.ecmaVersion); + mergedParserOptions.ecmaVersion = normalizeEcmaVersion(parser, mergedParserOptions.ecmaVersion); return mergedParserOptions; }