diff --git a/packages/babel-plugin-transform-runtime/scripts/build-dist.js b/packages/babel-plugin-transform-runtime/scripts/build-dist.js index bdd9fe4bb18d..89b2cc488d31 100644 --- a/packages/babel-plugin-transform-runtime/scripts/build-dist.js +++ b/packages/babel-plugin-transform-runtime/scripts/build-dist.js @@ -12,6 +12,8 @@ import corejs2Definitions from "./runtime-corejs2-definitions.js"; import corejs3Definitions from "./runtime-corejs3-definitions.js"; import presetEnv from "@babel/preset-env"; +import polyfillCorejs2 from "babel-plugin-polyfill-corejs2"; +import polyfillCorejs3 from "babel-plugin-polyfill-corejs3"; const require = createRequire(import.meta.url); const runtimeVersion = require("@babel/runtime/package.json").version; @@ -21,10 +23,29 @@ function outputFile(filePath, data) { fs.writeFileSync(filePath, data); } +function corejsVersion(pkgName, depName) { + return require(`../../${pkgName}/package.json`).dependencies[depName]; +} + writeHelpers("@babel/runtime"); -writeHelpers("@babel/runtime-corejs2", { corejs: 2 }); +writeHelpers("@babel/runtime-corejs2", { + polyfillProvider: [ + polyfillCorejs2, + { + method: "usage-pure", + version: corejsVersion("babel-runtime-corejs2", "core-js"), + }, + ], +}); writeHelpers("@babel/runtime-corejs3", { - corejs: { version: 3, proposals: true }, + polyfillProvider: [ + polyfillCorejs3, + { + method: "usage-pure", + version: corejsVersion("babel-runtime-corejs3", "core-js-pure"), + proposals: true, + }, + ], }); writeCoreJS({ @@ -119,7 +140,7 @@ function writeHelperFile( pkgDirname, helperPath, helperName, - { esm, corejs } + { esm, polyfillProvider } ) { const fileName = `${helperName}.js`; const filePath = esm @@ -129,13 +150,16 @@ function writeHelperFile( outputFile( fullPath, - buildHelper(runtimeName, pkgDirname, fullPath, helperName, { esm, corejs }) + buildHelper(runtimeName, pkgDirname, fullPath, helperName, { + esm, + polyfillProvider, + }) ); return esm ? `./helpers/esm/${fileName}` : `./helpers/${fileName}`; } -function writeHelpers(runtimeName, { corejs } = {}) { +function writeHelpers(runtimeName, { polyfillProvider } = {}) { const pkgDirname = getRuntimeRoot(runtimeName); const helperSubExports = {}; for (const helperName of helpers.list) { @@ -145,14 +169,14 @@ function writeHelpers(runtimeName, { corejs } = {}) { pkgDirname, helperPath, helperName, - { esm: false, corejs } + { esm: false, polyfillProvider } ); const esm = writeHelperFile( runtimeName, pkgDirname, helperPath, helperName, - { esm: true, corejs } + { esm: true, polyfillProvider } ); // Node.js versions >=13.0.0, <13.7.0 support the `exports` field but @@ -215,7 +239,7 @@ function buildHelper( pkgDirname, helperFilename, helperName, - { esm, corejs } + { esm, polyfillProvider } ) { const tree = t.program([], [], esm ? "module" : "script"); const dependencies = {}; @@ -245,7 +269,8 @@ function buildHelper( filename: helperFilename, presets: [[presetEnv, { modules: false }]], plugins: [ - [transformRuntime, { corejs, version: runtimeVersion }], + polyfillProvider, + [transformRuntime, { version: runtimeVersion }], buildRuntimeRewritePlugin(runtimeName, helperName), esm ? null : addDefaultCJSExport, ].filter(Boolean), diff --git a/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js b/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js index 3165c0bf475f..d0b36d81f7e8 100644 --- a/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js +++ b/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js @@ -1,6 +1,6 @@ -import _Symbol from "@babel/runtime-corejs2/core-js/symbol"; -import _Symbol$iterator from "@babel/runtime-corejs2/core-js/symbol/iterator"; -import _Array$from from "@babel/runtime-corejs2/core-js/array/from"; +import _Symbol from "core-js/library/fn/symbol.js"; +import _Symbol$iterator from "core-js/library/fn/symbol/iterator.js"; +import _Array$from from "core-js/library/fn/array/from.js"; export default function _iterableToArray(iter) { if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter); } \ No newline at end of file diff --git a/packages/babel-runtime-corejs2/helpers/iterableToArray.js b/packages/babel-runtime-corejs2/helpers/iterableToArray.js index adab003c61a9..20e30f942f07 100644 --- a/packages/babel-runtime-corejs2/helpers/iterableToArray.js +++ b/packages/babel-runtime-corejs2/helpers/iterableToArray.js @@ -1,6 +1,6 @@ -var _Symbol = require("@babel/runtime-corejs2/core-js/symbol"); -var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator"); -var _Array$from = require("@babel/runtime-corejs2/core-js/array/from"); +var _Symbol = require("core-js/library/fn/symbol.js"); +var _Symbol$iterator = require("core-js/library/fn/symbol/iterator.js"); +var _Array$from = require("core-js/library/fn/array/from.js"); function _iterableToArray(iter) { if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter); } diff --git a/packages/babel-runtime-corejs2/helpers/typeof.js b/packages/babel-runtime-corejs2/helpers/typeof.js index 1b51827465c9..a7b6a57e4636 100644 --- a/packages/babel-runtime-corejs2/helpers/typeof.js +++ b/packages/babel-runtime-corejs2/helpers/typeof.js @@ -1,5 +1,5 @@ -var _Symbol = require("@babel/runtime-corejs2/core-js/symbol"); -var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator"); +var _Symbol = require("core-js/library/fn/symbol.js"); +var _Symbol$iterator = require("core-js/library/fn/symbol/iterator.js"); function _typeof(obj) { "@babel/helpers - typeof"; diff --git a/packages/babel-runtime-corejs3/helpers/dispose.js b/packages/babel-runtime-corejs3/helpers/dispose.js index af14e5701784..0a3b9c579d85 100644 --- a/packages/babel-runtime-corejs3/helpers/dispose.js +++ b/packages/babel-runtime-corejs3/helpers/dispose.js @@ -1,7 +1,8 @@ -var _Object$create = require("@babel/runtime-corejs3/core-js/object/create"); -var _Promise = require("@babel/runtime-corejs3/core-js/promise"); +var _SuppressedError = require("core-js-pure/features/suppressed-error.js"); +var _Object$create = require("core-js-pure/features/object/create.js"); +var _Promise = require("core-js-pure/features/promise/index.js"); function dispose_SuppressedError(suppressed, error) { - return dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) { + return "undefined" != typeof _SuppressedError ? dispose_SuppressedError = _SuppressedError : (dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) { this.suppressed = suppressed, this.error = error, this.stack = new Error().stack; }, dispose_SuppressedError.prototype = _Object$create(Error.prototype, { constructor: { @@ -9,9 +10,9 @@ function dispose_SuppressedError(suppressed, error) { writable: !0, configurable: !0 } - }), new dispose_SuppressedError(suppressed, error); + })), new dispose_SuppressedError(suppressed, error); } -function _dispose(stack, error, hasError, SuppressedError) { +function _dispose(stack, error, hasError) { function next() { if (0 !== stack.length) { var r = stack.pop(); @@ -26,7 +27,7 @@ function _dispose(stack, error, hasError, SuppressedError) { if (hasError) throw error; } function err(e) { - return error = hasError ? new (SuppressedError || dispose_SuppressedError)(e, error) : e, hasError = !0, next(); + return error = hasError ? new dispose_SuppressedError(e, error) : e, hasError = !0, next(); } return next(); } diff --git a/packages/babel-runtime/helpers/dispose.js b/packages/babel-runtime/helpers/dispose.js index 7ae5cb156168..862f8b095d90 100644 --- a/packages/babel-runtime/helpers/dispose.js +++ b/packages/babel-runtime/helpers/dispose.js @@ -1,5 +1,5 @@ function dispose_SuppressedError(suppressed, error) { - return dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) { + return "undefined" != typeof SuppressedError ? dispose_SuppressedError = SuppressedError : (dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) { this.suppressed = suppressed, this.error = error, this.stack = new Error().stack; }, dispose_SuppressedError.prototype = Object.create(Error.prototype, { constructor: { @@ -7,9 +7,9 @@ function dispose_SuppressedError(suppressed, error) { writable: !0, configurable: !0 } - }), new dispose_SuppressedError(suppressed, error); + })), new dispose_SuppressedError(suppressed, error); } -function _dispose(stack, error, hasError, SuppressedError) { +function _dispose(stack, error, hasError) { function next() { if (0 !== stack.length) { var r = stack.pop(); @@ -24,7 +24,7 @@ function _dispose(stack, error, hasError, SuppressedError) { if (hasError) throw error; } function err(e) { - return error = hasError ? new (SuppressedError || dispose_SuppressedError)(e, error) : e, hasError = !0, next(); + return error = hasError ? new dispose_SuppressedError(e, error) : e, hasError = !0, next(); } return next(); }