diff --git a/packages/babel-preset-env/data/corejs3-finished-proposals.json b/packages/babel-preset-env/data/corejs3-finished-proposals.json new file mode 100644 index 000000000000..7ce01ed93444 --- /dev/null +++ b/packages/babel-preset-env/data/corejs3-finished-proposals.json @@ -0,0 +1,5 @@ +[ + "esnext.global-this", + "esnext.promise.all-settled", + "esnext.string.match-all" +] diff --git a/packages/babel-preset-env/src/polyfills/corejs3/usage-plugin.js b/packages/babel-preset-env/src/polyfills/corejs3/usage-plugin.js index 687a07c4367d..eb5d08b5c868 100644 --- a/packages/babel-preset-env/src/polyfills/corejs3/usage-plugin.js +++ b/packages/babel-preset-env/src/polyfills/corejs3/usage-plugin.js @@ -1,7 +1,8 @@ // @flow import corejs3Polyfills from "core-js-compat/data"; -import corejs3ShippedProposalsList from "./shipped-proposals"; +import corejs3FinishedProposalsList from "../../../data/corejs3-finished-proposals.json"; +import corejs3ShippedProposalsList from "../../../data/corejs3-shipped-proposals.json"; import getModulesListForTargetVersion from "core-js-compat/get-modules-list-for-target-version"; import filterItems from "../../filter-items"; import { @@ -33,13 +34,17 @@ const NO_DIRECT_POLYFILL_IMPORT = ` Please remove the direct import of \`core-js\` or use \`useBuiltIns: 'entry'\` instead.`; const corejs3PolyfillsWithoutProposals = Object.keys(corejs3Polyfills) - .filter(name => !name.startsWith("esnext.")) + .filter( + name => + !name.startsWith("esnext.") || + (corejs3FinishedProposalsList: string[]).includes(name), + ) .reduce((memo, key) => { memo[key] = corejs3Polyfills[key]; return memo; }, {}); -const corejs3PolyfillsWithShippedProposals = corejs3ShippedProposalsList.reduce( +const corejs3PolyfillsWithShippedProposals = (corejs3ShippedProposalsList: string[]).reduce( (memo, key) => { memo[key] = corejs3Polyfills[key]; return memo;