diff --git a/lib/rules/no-unsupported-features/es-syntax.js b/lib/rules/no-unsupported-features/es-syntax.js index 0eb6862b..0457da30 100644 --- a/lib/rules/no-unsupported-features/es-syntax.js +++ b/lib/rules/no-unsupported-features/es-syntax.js @@ -7,6 +7,7 @@ const { rules: esRules } = require("eslint-plugin-es") const { getInnermostScope } = require("eslint-utils") const { Range } = require("semver") +const rangeSubset = require("semver/ranges/subset") const getConfiguredNodeVersion = require("../../util/get-configured-node-version") const getSemverRange = require("../../util/get-semver-range") const mergeVisitorsInPlace = require("../../util/merge-visitors-in-place") @@ -457,11 +458,11 @@ function defineVisitor(context, options) { return true } - if (aCase.supported instanceof Range) { - return !options.version.intersects(aCase.supported) - } - - return options.version.intersects(getSemverRange(`<${aCase.supported}`)) + const supported = + typeof aCase.supported === "string" + ? getSemverRange(`>=${aCase.supported}`) + : aCase.supported + return !rangeSubset(options.version, supported) } /**