From 3303b079c596e56909adff4b834f098f5f1d8e2a Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 20 Mar 2019 03:07:45 +0700 Subject: [PATCH] Update to `core-js@3` (#7646) ### `@babel/runtime` - Added `@babel/runtime-corejs3` package and `corejs: 3` options to `@babel/plugin-transform-runtime`. - Added support of instance methods, fixes #8928. - Added flag `proposals` (in `corejs: { version: 3, proposals: true }` format) for support all proposals polyfills from `core-js`. - Used separate directories in runtime for `core-js` entry points with proposals and without. - Used `get-iterator-method` helper for getting iterators, fixes #2500. - As a cheap bonus, added support of IE8- (except some cases of `regenerator`). ### `@babel/polyfill` - Should be deprecated in favor of separate usage required features from `core-js` and `regenerator-runtime` with an informative message. ### `@babel/preset-env` - Uses for built-ins data from [`core-js-compat`](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) instead of `compat-table` since information from `compat-table` [is not enough](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat). - `useBuilIns` now requires direct setting of `corejs` version option, without it will be used `2` by default and shown deprecation warning. - Added support of minor `core-js` versions for simplify updating in the future. - For preventing some order-related problems, polyfills in the both `core-js@3` plugins added on `post` stage in the order of `core-js-compat` data. - Divided plugins and polyfills parts of `preset-env`, instead of 2 internal plugins for adding polyfills, we have 6: usage and entry versions of plugins for `core-js@2`, ### Current state: `core-js@3`, `regenerator-runtime`. - Added support `samsung` target (for Samsung Internet) since `core-js-compat` and `compat-table` now contains mapping for this, fixes #6602. #### `useBuilIns: entry` with `corejs: 3` - No longer transforms `@babel/polyfill`. - Transforms **all possible** `core-js` entry points to import of related modules (based on data from [`core-js-compat`](https://unpkg.com/core-js-compat@3.0.0-beta.15/entries.json)). - Since of this, we no longer need `shippedProposals` / `proposals` flags with `useBuilIns: entry`. - Removes `regenerator-runtime/runtime` import where it's not required. #### `useBuilIns: usage` with `corejs: 3` - In addition to `shippedProposals`, added flag `proposals` (in `corejs: { version: 3, proposals: true }` format) for polyfill all proposals from `core-js`. - Fixed list of dependencies in built-in definitions. - Improved the way of determination method / built-in name and source of this method. - Adds import of required polyfills on `MemberExpression`, `ObjectPattern`, `in` operator. - Adds import of required polyfills on access to global object properties. - Adds import of all required common iterators on all syntax features which use iterators protocol (`for-of`, destructuring, spread, `yield` delegation, etc.). - Adds import of promises on syntax features which use promises (async functions/generators, dynamic import, etc.), fixes #9250, #7402, etc. ### `core-js@2` stuff I didn't want to tough `core-js@2`-related stuff, however - Fixed some serious errors in definitions which breaks `Object.getOwnPropertySymbols`, `Symbol.toStringTag` logic, `Promise#finally`, `Array#forEach`, etc. - `Array#flatMap` and trim methods moved to stable features as a part of ES2019 and loaded by deprecated `@babel/polyfill` and `@babel/preset-env` with `corejs: 2` option. --- .eslintignore | 2 +- .gitignore | 5 + lib/third-party-libs.js.flow | 31 +- packages/babel-helpers/src/helpers.js | 4 +- .../decorator-interop/output.js | 2 +- .../method-decorators/output.mjs | 2 +- .../legacy-regression/8041/output.mjs | 2 +- .../fixtures/regression/gh-7304/options.json | 3 +- .../package.json | 2 + .../scripts/build-dist.js | 80 ++- .../src/definitions.js | 168 ------ .../src/helpers.js | 32 ++ .../src/index.js | 227 +++++--- .../src/runtime-corejs2-definitions.js | 155 ++++++ .../src/runtime-corejs3-definitions.js | 227 ++++++++ .../runtime-corejs2/modules/output.js | 6 +- .../aliased-constructors/input.js | 7 + .../aliased-constructors/options.json | 3 + .../aliased-constructors/output.js | 14 + .../built-in-globals-proposals/input.js | 33 ++ .../built-in-globals-proposals/options.json | 3 + .../built-in-globals-proposals/output.js | 71 +++ .../runtime-corejs3/built-in-globals/input.js | 33 ++ .../built-in-globals/options.json | 3 + .../built-in-globals/output.js | 61 +++ .../input.js | 88 +++ .../options.json | 3 + .../output.js | 251 +++++++++ .../built-in-instance-methods/input.js | 88 +++ .../built-in-instance-methods/options.json | 3 + .../built-in-instance-methods/output.js | 242 +++++++++ .../input.js | 123 +++++ .../options.json | 3 + .../output.js | 329 ++++++++++++ .../built-in-static-methods/input.js | 123 +++++ .../built-in-static-methods/options.json | 3 + .../built-in-static-methods/output.js | 277 ++++++++++ .../runtime-corejs3/catch-all/input.js | 1 + .../runtime-corejs3/catch-all/options.json | 3 + .../runtime-corejs3/catch-all/output.js | 3 + .../fixtures/runtime-corejs3/class/input.js | 1 + .../runtime-corejs3/class/options.json | 3 + .../fixtures/runtime-corejs3/class/output.js | 7 + .../runtime-corejs3/es6-for-of/input.js | 3 + .../runtime-corejs3/es6-for-of/options.json | 3 + .../runtime-corejs3/es6-for-of/output.js | 24 + .../fixtures/runtime-corejs3/full/input.mjs | 9 + .../runtime-corejs3/full/options.json | 3 + .../fixtures/runtime-corejs3/full/output.mjs | 24 + .../runtime-corejs3/instance-call/input.js | 7 + .../instance-call/options.json | 3 + .../runtime-corejs3/instance-call/output.js | 11 + .../runtime-corejs3/instance-get/input.js | 7 + .../runtime-corejs3/instance-get/options.json | 3 + .../runtime-corejs3/instance-get/output.js | 9 + .../runtime-corejs3/modules-helpers/input.mjs | 5 + .../modules-helpers/options.json | 7 + .../runtime-corejs3/modules-helpers/output.js | 23 + .../runtime-corejs3/modules-loose/input.mjs | 5 + .../modules-loose/options.json | 6 + .../runtime-corejs3/modules-loose/output.js | 30 ++ .../runtime-corejs3/modules/input.mjs | 5 + .../runtime-corejs3/modules/options.json | 6 + .../runtime-corejs3/modules/output.js | 41 ++ .../runtime-corejs3/no-helpers/input.js | 1 + .../runtime-corejs3/no-helpers/options.json | 6 + .../runtime-corejs3/no-helpers/output.js | 7 + .../regenerator-runtime/input.js | 2 + .../regenerator-runtime/options.json | 3 + .../regenerator-runtime/output.js | 13 + .../symbol-iterator-get-method/input.js | 1 + .../symbol-iterator-get-method/options.json | 3 + .../symbol-iterator-get-method/output.js | 3 + .../symbol-iterator-get/input.js | 1 + .../symbol-iterator-get/options.json | 3 + .../symbol-iterator-get/output.js | 3 + .../symbol-iterator-in/input.js | 1 + .../symbol-iterator-in/options.json | 3 + .../symbol-iterator-in/output.js | 3 + .../runtime-corejs3/symbol-iterator/input.js | 1 + .../symbol-iterator/options.json | 3 + .../runtime-corejs3/symbol-iterator/output.js | 3 + .../output.mjs | 2 +- .../output.mjs | 2 +- packages/babel-polyfill/README.md | 5 +- packages/babel-polyfill/package.json | 2 +- packages/babel-polyfill/src/index.js | 3 + packages/babel-preset-env/CONTRIBUTING.md | 20 +- ...atures.js => corejs2-built-in-features.js} | 4 + ...{built-ins.json => corejs2-built-ins.json} | 190 ++++++- packages/babel-preset-env/data/plugins.json | 25 + .../data/shipped-proposals.js | 10 +- packages/babel-preset-env/package.json | 3 + .../babel-preset-env/scripts/build-data.js | 24 +- .../babel-preset-env/src/available-plugins.js | 2 + .../src/built-in-definitions.js | 182 ------- packages/babel-preset-env/src/debug.js | 66 ++- .../babel-preset-env/src/default-includes.js | 5 - packages/babel-preset-env/src/defaults.js | 25 - packages/babel-preset-env/src/filter-items.js | 87 +++ .../src/get-option-specific-excludes.js | 7 + packages/babel-preset-env/src/index.js | 216 ++------ .../src/module-transformations.js | 8 +- .../babel-preset-env/src/normalize-options.js | 164 ++++-- packages/babel-preset-env/src/options.js | 7 + .../polyfills/corejs2/built-in-definitions.js | 190 +++++++ .../src/polyfills/corejs2/entry-plugin.js | 85 +++ .../corejs2/get-platform-specific-default.js | 17 + .../src/polyfills/corejs2/usage-plugin.js | 216 ++++++++ .../polyfills/corejs3/built-in-definitions.js | 443 +++++++++++++++ .../src/polyfills/corejs3/entry-plugin.js | 108 ++++ .../polyfills/corejs3/shipped-proposals.js | 3 + .../src/polyfills/corejs3/usage-plugin.js | 270 ++++++++++ .../src/polyfills/regenerator/entry-plugin.js | 44 ++ .../src/polyfills/regenerator/usage-plugin.js | 32 ++ .../babel-preset-env/src/targets-parser.js | 24 +- packages/babel-preset-env/src/types.js | 43 +- .../src/use-built-ins-entry-plugin.js | 79 --- .../src/use-built-ins-plugin.js | 267 ---------- packages/babel-preset-env/src/utils.js | 102 ++-- .../corejs-without-usebuiltins/in/in.js | 1 + .../corejs-without-usebuiltins/options.json | 8 + .../corejs-without-usebuiltins/stdout.txt | 42 ++ .../in/in.js | 0 .../options.json | 3 +- .../stdout.txt | 6 +- .../in/in.js | 0 .../options.json | 3 +- .../stdout.txt | 6 +- .../in/in.js | 0 .../options.json | 1 + .../stdout.txt | 6 +- .../in/in.js | 0 .../entry-corejs2-no-import/options.json | 12 + .../stdout.txt | 2 +- .../in/in.js | 0 .../options.json | 12 + .../stdout.txt | 22 + .../in/in.js | 0 .../entry-corejs2-proposals/options.json | 9 + .../stdout.txt | 7 +- .../in/in.js | 0 .../options.json | 5 +- .../stdout.txt | 22 + .../in/in.js | 0 .../options.json | 10 + .../entry-corejs2-shippedProposals/stdout.txt | 190 +++++++ .../in/in.js | 0 .../options.json | 3 +- .../stdout.txt | 6 +- .../in/in.js | 0 .../options.json | 1 + .../stdout.txt | 6 +- .../in/in.js | 0 .../options.json | 1 + .../stdout.txt | 6 +- .../in/in.js | 0 .../debug-fixtures/entry-corejs2/options.json | 13 + .../{builtins => entry-corejs2}/stdout.txt | 6 +- .../entry-corejs3-all-chrome-71/in/in.js | 2 + .../entry-corejs3-all-chrome-71/options.json | 13 + .../entry-corejs3-all-chrome-71/stdout.txt | 106 ++++ .../debug-fixtures/entry-corejs3-all/in/in.js | 2 + .../entry-corejs3-all/options.json | 10 + .../entry-corejs3-all/stdout.txt | 332 ++++++++++++ .../entry-corejs3-android/in/in.js | 2 + .../entry-corejs3-android/options.json | 12 + .../entry-corejs3-android/stdout.txt | 247 +++++++++ .../entry-corejs3-babel-polyfill/in/in.js | 1 + .../entry-corejs3-babel-polyfill/options.json | 10 + .../entry-corejs3-babel-polyfill/stderr.txt | 2 + .../entry-corejs3-babel-polyfill/stdout.txt | 42 ++ .../entry-corejs3-electron/in/in.js | 2 + .../entry-corejs3-electron/options.json | 12 + .../entry-corejs3-electron/stdout.txt | 134 +++++ .../entry-corejs3-es-chrome-71/in/in.js | 2 + .../entry-corejs3-es-chrome-71/options.json | 13 + .../entry-corejs3-es-chrome-71/stdout.txt | 24 + .../in/in.js | 3 + .../options.json | 13 + .../stdout.txt | 105 ++++ .../entry-corejs3-es-proposals/in/in.js | 3 + .../entry-corejs3-es-proposals/options.json | 10 + .../entry-corejs3-es-proposals/stdout.txt | 327 ++++++++++++ .../debug-fixtures/entry-corejs3-es/in/in.js | 2 + .../entry-corejs3-es/options.json | 10 + .../entry-corejs3-es/stdout.txt | 242 +++++++++ .../in/in.js | 2 + .../options.json | 14 + .../stdout.txt | 72 +++ .../entry-corejs3-no-import/in/in.js | 1 + .../entry-corejs3-no-import/options.json | 12 + .../entry-corejs3-no-import/stdout.txt | 27 + .../in/in.js | 2 + .../options.json | 12 + .../stdout.txt | 102 ++++ .../entry-corejs3-proposals/in/in.js | 2 + .../entry-corejs3-proposals/options.json | 9 + .../entry-corejs3-proposals/stdout.txt | 127 +++++ .../in/in.js | 1 + .../options.json | 13 + .../stdout.txt | 21 + .../entry-corejs3-runtime-only/in/in.js | 1 + .../entry-corejs3-runtime-only/options.json | 13 + .../entry-corejs3-runtime-only/stdout.txt | 21 + .../in/in.js | 4 + .../options.json | 13 + .../stdout.txt | 31 ++ .../entry-corejs3-specific-entries/in/in.js | 4 + .../options.json | 10 + .../entry-corejs3-specific-entries/stdout.txt | 92 ++++ .../entry-corejs3-specific-targets/in/in.js | 2 + .../options.json | 12 + .../entry-corejs3-specific-targets/stdout.txt | 252 +++++++++ .../entry-corejs3-stable-chrome-71/in/in.js | 2 + .../options.json | 13 + .../entry-corejs3-stable-chrome-71/stdout.txt | 25 + .../entry-corejs3-stable-samsung-8.2/in/in.js | 2 + .../options.json | 13 + .../stdout.txt | 39 ++ .../entry-corejs3-stable/in/in.js | 2 + .../entry-corejs3-stable/options.json | 10 + .../entry-corejs3-stable/stdout.txt | 250 +++++++++ .../entry-corejs3-stage-chrome-71/in/in.js | 2 + .../options.json | 13 + .../entry-corejs3-stage-chrome-71/stdout.txt | 102 ++++ .../entry-corejs3-stage/in/in.js | 2 + .../entry-corejs3-stage/options.json | 10 + .../entry-corejs3-stage/stdout.txt | 127 +++++ .../entry-corejs3-versions-decimals/in/in.js | 2 + .../options.json | 15 + .../stdout.txt | 242 +++++++++ .../in/in.js | 2 + .../options.json | 14 + .../stdout.txt | 231 ++++++++ .../in/in.js | 2 + .../options.json | 14 + .../stdout.txt | 231 ++++++++ .../entry-corejs3-versions-strings/in/in.js | 2 + .../options.json | 14 + .../entry-corejs3-versions-strings/stdout.txt | 231 ++++++++ .../entry-corejs3-web-chrome-71/in/in.js | 2 + .../entry-corejs3-web-chrome-71/options.json | 13 + .../entry-corejs3-web-chrome-71/stdout.txt | 22 + .../debug-fixtures/entry-corejs3-web/in/in.js | 2 + .../entry-corejs3-web/options.json | 10 + .../entry-corejs3-web/stdout.txt | 50 ++ .../debug-fixtures/entry-corejs3/in/in.js | 2 + .../debug-fixtures/entry-corejs3/options.json | 13 + .../debug-fixtures/entry-corejs3/stdout.txt | 233 ++++++++ .../entry-no-corejs-no-import/in/in.js | 1 + .../options.json | 0 .../entry-no-corejs-no-import/stdout.txt | 29 + .../entry-no-corejs-shippedProposals/in/in.js | 1 + .../options.json | 0 .../stdout.txt | 192 +++++++ .../entry-no-corejs-uglify/in/in.js | 1 + .../options.json | 0 .../stdout.txt | 9 +- .../debug-fixtures/entry-no-corejs/in/in.js | 1 + .../options.json | 0 .../debug-fixtures/entry-no-corejs/stdout.txt | 176 ++++++ .../test/debug-fixtures/plugins-only/in/in.js | 1 + .../shippedProposals-chrome60/stdout.txt | 33 -- .../in/in.js | 4 + .../in/in2.js | 0 .../usage-corejs2-chrome-71/options.json | 12 + .../usage-corejs2-chrome-71/stdout.txt | 23 + .../in/in.js | 0 .../in/in2.js | 0 .../usage-corejs2-none/options.json | 14 + .../stdout.txt | 4 +- .../in/in.js | 7 + .../in/in2.js} | 0 .../options.json | 12 + .../stdout.txt | 23 + .../usage-corejs2-proposals/in/in.js | 7 + .../usage-corejs2-proposals/in/in2.js | 3 + .../usage-corejs2-proposals/options.json | 14 + .../stdout.txt | 8 +- .../usage-corejs2-shippedProposals/in/in.js | 7 + .../usage-corejs2-shippedProposals/in/in2.js | 3 + .../options.json | 15 + .../usage-corejs2-shippedProposals/stdout.txt | 56 ++ .../usage-corejs2-with-import/in/in.js | 1 + .../options.json | 3 +- .../stderr.txt | 0 .../stdout.txt | 2 +- .../debug-fixtures/usage-corejs2/in/in.js | 7 + .../debug-fixtures/usage-corejs2/in/in2.js | 3 + .../debug-fixtures/usage-corejs2/options.json | 14 + .../debug-fixtures/usage-corejs2/stdout.txt | 56 ++ .../usage-corejs3-chrome-71/in/in.js | 7 + .../usage-corejs3-chrome-71/in/in2.js | 3 + .../usage-corejs3-chrome-71/options.json | 12 + .../usage-corejs3-chrome-71/stdout.txt | 21 + .../usage-corejs3-none/in/in.js | 1 + .../usage-corejs3-none/in/in2.js | 5 + .../usage-corejs3-none/options.json | 14 + .../usage-corejs3-none/stdout.txt | 47 ++ .../in/in.js | 7 + .../in/in2.js | 3 + .../options.json | 12 + .../stdout.txt | 36 ++ .../usage-corejs3-proposals/in/in.js | 7 + .../usage-corejs3-proposals/in/in2.js | 3 + .../usage-corejs3-proposals/options.json | 14 + .../usage-corejs3-proposals/stdout.txt | 75 +++ .../usage-corejs3-shippedProposals/in/in.js | 7 + .../usage-corejs3-shippedProposals/in/in2.js | 3 + .../options.json | 15 + .../usage-corejs3-shippedProposals/stdout.txt | 60 +++ .../in/in.js | 7 + .../in/in2.js | 3 + .../options.json | 14 + .../stdout.txt | 59 ++ .../in/in.js | 7 + .../in/in2.js | 3 + .../options.json | 14 + .../stdout.txt | 59 ++ .../usage-corejs3-with-import/in/in.js | 1 + .../usage-corejs3-with-import/options.json | 12 + .../usage-corejs3-with-import/stderr.txt | 2 + .../usage-corejs3-with-import/stdout.txt | 22 + .../debug-fixtures/usage-corejs3/in/in.js | 7 + .../debug-fixtures/usage-corejs3/in/in2.js | 3 + .../debug-fixtures/usage-corejs3/options.json | 14 + .../debug-fixtures/usage-corejs3/stdout.txt | 59 ++ .../usage-no-corejs-none/in/in.js | 1 + .../usage-no-corejs-none/in/in2.js | 5 + .../options.json | 0 .../usage-no-corejs-none/stdout.txt | 49 ++ .../debug-fixtures/usage-no-corejs/in/in.js | 7 + .../debug-fixtures/usage-no-corejs/in/in2.js | 3 + .../{usage => usage-no-corejs}/options.json | 0 .../debug-fixtures/usage-no-corejs/stdout.txt | 58 ++ packages/babel-preset-env/test/defaults.js | 49 -- .../test/filter-items.spec.js | 84 +++ .../.entry-all-exec}/exec.js | 0 .../.entry-all-exec}/options.json | 0 .../entry-all}/input.mjs | 0 .../entry-all}/options.json | 3 +- .../entry-all}/output.mjs | 4 + .../entry-chrome-48}/input.mjs | 0 .../entry-chrome-48}/options.json | 3 +- .../entry-chrome-48}/output.mjs | 4 + .../entry-chrome-49}/input.mjs | 0 .../entry-chrome-49}/options.json | 3 +- .../entry-chrome-49}/output.mjs | 4 + .../entry-chrome-66}/input.mjs | 0 .../entry-chrome-66}/options.json | 3 +- .../corejs2/entry-chrome-66/output.mjs | 16 + .../corejs2/entry-chrome-71/input.mjs | 16 + .../corejs2/entry-chrome-71/options.json | 15 + .../entry-chrome-71}/output.mjs | 0 .../entry-chromeandroid}/input.mjs | 0 .../entry-chromeandroid}/options.json | 3 +- .../entry-chromeandroid}/output.mjs | 0 .../entry-core-js-main-require/input.mjs | 1 + .../entry-core-js-main-require}/options.json | 3 +- .../entry-core-js-main-require}/output.mjs | 4 + .../entry-core-js-main}/input.mjs | 0 .../corejs2/entry-core-js-main/options.json | 15 + .../corejs2/entry-core-js-main/output.mjs | 16 + .../entry-electron}/input.mjs | 0 .../entry-electron}/options.json | 3 +- .../entry-electron}/output.mjs | 4 + .../entry-ie-11}/input.mjs | 0 .../entry-ie-11}/options.json | 1 + .../entry-ie-11}/output.mjs | 4 + .../entry-ie-9}/input.mjs | 0 .../entry-ie-9}/options.json | 1 + .../entry-ie-9}/output.mjs | 4 + .../entry-import}/input.mjs | 0 .../corejs2/entry-import/options.json | 15 + .../entry-import}/output.mjs | 4 + .../entry-node-10.13}/input.mjs | 0 .../entry-node-10.13}/options.json | 3 +- .../corejs2/entry-node-10.13/output.mjs | 1 + .../entry-node-11}/input.mjs | 1 + .../corejs2/entry-node-11/options.json | 15 + .../fixtures/corejs2/entry-node-11/output.mjs | 1 + .../entry-node-web}/input.mjs | 0 .../entry-node-web}/options.json | 3 +- .../entry-node-web}/output.mjs | 4 + .../entry-node}/input.mjs | 0 .../fixtures/corejs2/entry-node/options.json | 16 + .../entry-node}/output.mjs | 4 + .../entry-require}/input.js | 0 .../entry-require}/options.json | 3 +- .../entry-require}/output.js | 8 + .../entry-shippedProposals}/input.js | 2 + .../entry-shippedProposals}/options.json | 3 +- .../corejs2/entry-shippedProposals/output.js | 365 +++++++++++++ .../exclude-built-ins}/input.mjs | 0 .../exclude-built-ins/options.json | 4 +- .../corejs2/exclude-built-ins/output.mjs | 2 + .../exclude-include/input.mjs | 0 .../exclude-include/options.json | 3 +- .../exclude-include/output.mjs | 5 + .../exclude-regenerator}/input.mjs | 0 .../exclude-regenerator/options.json | 1 + .../exclude-regenerator/output.mjs | 4 + .../exclude/input.mjs | 0 .../exclude/options.json | 1 + .../exclude/output.mjs | 0 .../force-all-transforms/input.mjs | 0 .../force-all-transforms/options.json | 1 + .../force-all-transforms/output.mjs | 4 + .../include-built-ins}/input.mjs | 0 .../include-built-ins/options.json | 3 +- .../include-built-ins/output.mjs | 4 + .../usage-all}/input.mjs | 0 .../usage-all}/options.json | 1 + .../usage-all}/output.mjs | 1 + .../browserslist | 0 .../input.mjs | 0 .../options.json | 1 + .../output.mjs | 0 .../usage-destructuring-assignment/input.mjs | 1 + .../options.json | 13 + .../usage-destructuring-assignment/output.mjs | 1 + .../usage-destructuring-catch/input.mjs | 3 + .../usage-destructuring-catch/options.json | 13 + .../usage-destructuring-catch/output.mjs | 3 + .../usage-destructuring-for-x/input.mjs | 1 + .../usage-destructuring-for-x/options.json | 13 + .../usage-destructuring-for-x/output.mjs | 3 + .../usage-destructuring-params/input.mjs | 1 + .../usage-destructuring-params/options.json | 13 + .../usage-destructuring-params/output.mjs | 3 + .../input.mjs | 1 + .../options.json | 13 + .../output.mjs | 1 + .../usage-evaluated-class-methods}/input.mjs | 0 .../options.json | 1 + .../usage-evaluated-class-methods}/output.mjs | 1 + .../input.mjs | 0 .../options.json | 1 + .../output.mjs | 0 .../usage-for-of-destructure-with}/input.mjs | 0 .../options.json | 1 + .../usage-for-of-destructure-with}/output.mjs | 0 .../input.mjs | 0 .../options.json | 15 + .../output.mjs | 5 + .../fixtures/corejs2/usage-for-of/input.mjs | 1 + .../corejs2/usage-for-of/options.json | 13 + .../fixtures/corejs2/usage-for-of/output.mjs | 3 + .../input.mjs | 0 .../options.json | 3 +- .../output.mjs | 0 .../usage-instance-methods}/input.mjs | 0 .../usage-instance-methods}/options.json | 1 + .../usage-instance-methods}/output.mjs | 1 + .../usage-modules-transform}/input.mjs | 0 .../usage-modules-transform/options.json | 11 + .../usage-modules-transform}/output.js | 2 + .../usage-native-support}/input.mjs | 0 .../corejs2/usage-native-support/options.json | 15 + .../usage-native-support}/output.mjs | 1 - .../usage-no-builtins}/input.mjs | 0 .../corejs2/usage-no-builtins/options.json | 12 + .../usage-no-builtins}/output.mjs | 0 .../usage-no-transform}/input.mjs | 0 .../usage-no-transform}/options.json | 3 +- .../usage-no-transform}/output.mjs | 0 .../usage-number-ie-11}/input.mjs | 0 .../usage-number-ie-11}/options.json | 1 + .../usage-number-ie-11}/output.mjs | 0 .../usage-promise-all}/input.mjs | 0 .../usage-promise-all}/options.json | 1 + .../usage-promise-all}/output.mjs | 1 + .../usage-promise-finally}/input.mjs | 0 .../usage-promise-finally}/options.json | 1 + .../usage-promise-finally}/output.mjs | 1 + .../usage-promise-race}/input.mjs | 0 .../usage-promise-race}/options.json | 1 + .../usage-promise-race}/output.mjs | 1 + .../input.mjs | 0 .../options.json | 15 + .../output.mjs | 0 .../input.mjs | 0 .../options.json | 1 + .../output.mjs | 1 + .../usage-regenerator-used-async/input.mjs | 1 + .../usage-regenerator-used-async/options.json | 12 + .../usage-regenerator-used-async}/output.mjs | 1 + .../input.mjs | 0 .../options.json | 1 + .../output.mjs | 0 .../input.mjs | 0 .../options.json | 12 + .../output.mjs | 0 .../input.mjs | 0 .../options.json | 12 + .../usage-shippedProposals}/input.js | 0 .../usage-shippedProposals}/options.json | 3 +- .../usage-shippedProposals}/output.js | 2 + .../usage-source-type-script-query}/input.js | 0 .../options.json | 1 + .../usage-source-type-script-query}/output.js | 2 + .../usage-source-type-script}/input.js | 0 .../usage-source-type-script}/options.json | 1 + .../usage-source-type-script}/output.js | 2 + .../fixtures/corejs2/usage-spread/input.mjs | 1 + .../corejs2/usage-spread/options.json | 13 + .../fixtures/corejs2/usage-spread/output.mjs | 1 + .../usage-symbol-iterator-in}/input.mjs | 0 .../usage-symbol-iterator-in/options.json | 12 + .../usage-symbol-iterator-in}/output.mjs | 0 .../usage-symbol-iterator}/input.mjs | 0 .../usage-symbol-iterator/options.json | 12 + .../usage-symbol-iterator}/output.mjs | 0 .../fixtures/corejs2/usage-timers/input.mjs | 5 + .../corejs2/usage-timers/options.json | 12 + .../fixtures/corejs2/usage-timers/output.mjs | 7 + .../usage-typed-array-edge-13/input.mjs | 1 + .../usage-typed-array-edge-13/options.json | 15 + .../usage-typed-array-edge-13/output.mjs | 1 + .../usage-typed-array-static/input.mjs | 1 + .../usage-typed-array-static/options.json | 12 + .../usage-typed-array-static/output.mjs | 2 + .../corejs2/usage-typed-array/input.mjs | 1 + .../corejs2/usage-typed-array/options.json | 12 + .../corejs2/usage-typed-array/output.mjs | 2 + .../usage-yield-non-star}/input.mjs | 0 .../usage-yield-non-star}/options.json | 1 + .../usage-yield-non-star}/output.mjs | 0 .../corejs2/usage-yield-star/input.mjs | 3 + .../usage-yield-star}/options.json | 1 + .../usage-yield-star}/output.mjs | 0 .../fixtures/corejs3/.entry-all-exec/exec.js | 3 + .../.entry-all-exec}/options.json | 0 .../corejs3/entry-all-chrome-71/input.mjs | 2 + .../corejs3/entry-all-chrome-71/options.json | 15 + .../corejs3/entry-all-chrome-71/output.mjs | 85 +++ .../test/fixtures/corejs3/entry-all/input.mjs | 2 + .../fixtures/corejs3/entry-all/options.json | 12 + .../fixtures/corejs3/entry-all/output.mjs | 291 ++++++++++ .../corejs3/entry-babel-polyfill/input.mjs | 1 + .../corejs3/entry-babel-polyfill/options.json | 12 + .../corejs3/entry-babel-polyfill/output.mjs | 1 + .../corejs3/entry-chrome-48/input.mjs | 3 + .../corejs3/entry-chrome-48/options.json | 15 + .../corejs3/entry-chrome-48/output.mjs | 96 ++++ .../corejs3/entry-chrome-49/input.mjs | 3 + .../corejs3/entry-chrome-49/options.json | 15 + .../corejs3/entry-chrome-49/output.mjs | 77 +++ .../corejs3/entry-chrome-66/input.mjs | 17 + .../corejs3/entry-chrome-66/options.json | 15 + .../corejs3/entry-chrome-66/output.mjs | 23 + .../corejs3/entry-chrome-71/input.mjs | 17 + .../corejs3/entry-chrome-71/options.json | 15 + .../corejs3/entry-chrome-71/output.mjs | 16 + .../corejs3/entry-chromeandroid/input.mjs | 3 + .../corejs3/entry-chromeandroid/options.json | 15 + .../corejs3/entry-chromeandroid/output.mjs | 5 + .../fixtures/corejs3/entry-electron/input.mjs | 4 + .../corejs3/entry-electron/options.json | 15 + .../corejs3/entry-electron/output.mjs | 29 + .../input.mjs | 4 + .../options.json | 15 + .../output.mjs | 84 +++ .../input.mjs | 4 + .../options.json | 12 + .../output.mjs | 286 ++++++++++ .../input.mjs | 4 + .../options.json | 15 + .../output.mjs | 20 + .../corejs3/entry-entries-features/input.mjs | 4 + .../entry-entries-features/options.json | 12 + .../corejs3/entry-entries-features/output.mjs | 26 + .../corejs3/entry-entries-missed/input.mjs | 2 + .../corejs3/entry-entries-missed/options.json | 15 + .../corejs3/entry-entries-missed/output.mjs | 19 + .../entry-entries-mixed-chrome-71/input.mjs | 4 + .../options.json | 15 + .../entry-entries-mixed-chrome-71/output.mjs | 11 + .../corejs3/entry-entries-mixed/input.mjs | 4 + .../corejs3/entry-entries-mixed/options.json | 12 + .../corejs3/entry-entries-mixed/output.mjs | 52 ++ .../entry-entries-modules-chrome-71/input.mjs | 3 + .../options.json | 15 + .../output.mjs | 2 + .../corejs3/entry-entries-modules/input.mjs | 3 + .../entry-entries-modules/options.json | 12 + .../corejs3/entry-entries-modules/output.mjs | 3 + .../input.mjs | 2 + .../options.json | 15 + .../output.mjs | 81 +++ .../corejs3/entry-entries-proposals/input.mjs | 2 + .../entry-entries-proposals/options.json | 12 + .../entry-entries-proposals/output.mjs | 86 +++ .../entry-entries-stable-chrome-71/input.mjs | 3 + .../options.json | 15 + .../entry-entries-stable-chrome-71/output.mjs | 1 + .../corejs3/entry-entries-stable/input.mjs | 3 + .../corejs3/entry-entries-stable/options.json | 12 + .../corejs3/entry-entries-stable/output.mjs | 7 + .../entry-entries-stage-chrome-71/input.mjs | 2 + .../options.json | 15 + .../entry-entries-stage-chrome-71/output.mjs | 81 +++ .../corejs3/entry-entries-stage/input.mjs | 2 + .../corejs3/entry-entries-stage/options.json | 12 + .../corejs3/entry-entries-stage/output.mjs | 86 +++ .../entry-entries-web-chrome-71/input.mjs | 2 + .../entry-entries-web-chrome-71/options.json | 15 + .../entry-entries-web-chrome-71/output.mjs | 1 + .../corejs3/entry-entries-web/input.mjs | 2 + .../corejs3/entry-entries-web/options.json | 12 + .../corejs3/entry-entries-web/output.mjs | 9 + .../fixtures/corejs3/entry-ie-11/input.mjs | 2 + .../fixtures/corejs3/entry-ie-11/options.json | 16 + .../fixtures/corejs3/entry-ie-11/output.mjs | 181 +++++++ .../fixtures/corejs3/entry-ie-9/input.mjs | 2 + .../fixtures/corejs3/entry-ie-9/options.json | 16 + .../fixtures/corejs3/entry-ie-9/output.mjs | 187 +++++++ .../fixtures/corejs3/entry-import/input.mjs | 3 + .../corejs3/entry-import/options.json | 15 + .../fixtures/corejs3/entry-import/output.mjs | 29 + .../corejs3/entry-node-10.13/input.mjs | 2 + .../corejs3/entry-node-10.13/options.json | 15 + .../corejs3/entry-node-10.13/output.mjs | 7 + .../fixtures/corejs3/entry-node-11/input.mjs | 2 + .../corejs3/entry-node-11/options.json | 15 + .../fixtures/corejs3/entry-node-11/output.mjs | 4 + .../fixtures/corejs3/entry-node-web/input.mjs | 2 + .../corejs3/entry-node-web/options.json | 17 + .../corejs3/entry-node-web/output.mjs | 29 + .../fixtures/corejs3/entry-node/input.mjs | 2 + .../fixtures/corejs3/entry-node/options.json | 16 + .../fixtures/corejs3/entry-node/output.mjs | 26 + .../corejs3/entry-require-all/input.js | 4 + .../corejs3/entry-require-all/options.json | 15 + .../corejs3/entry-require-all/output.js | 221 ++++++++ .../entry-require-babel-polyfill/input.js | 3 + .../entry-require-babel-polyfill/options.json | 15 + .../entry-require-babel-polyfill/output.js | 3 + .../entry-require-es-chrome-71/input.js | 4 + .../entry-require-es-chrome-71/options.json | 15 + .../entry-require-es-chrome-71/output.js | 7 + .../entry-require-es-proposals/input.js | 5 + .../entry-require-es-proposals/options.json | 15 + .../entry-require-es-proposals/output.js | 213 ++++++++ .../fixtures/corejs3/entry-require/input.js | 4 + .../corejs3/entry-require/options.json | 15 + .../fixtures/corejs3/entry-require/output.js | 57 ++ .../corejs3/entry-specified-imports/input.mjs | 2 + .../entry-specified-imports/options.json | 12 + .../entry-specified-imports/output.mjs | 3 + .../corejs3/entry-stable-chrome-71/input.mjs | 2 + .../entry-stable-chrome-71/options.json | 15 + .../corejs3/entry-stable-chrome-71/output.mjs | 4 + .../entry-stable-samsung-8.2/input.mjs | 2 + .../entry-stable-samsung-8.2/options.json | 15 + .../entry-stable-samsung-8.2/output.mjs | 16 + .../fixtures/corejs3/entry-stable/input.mjs | 2 + .../corejs3/entry-stable/options.json | 12 + .../fixtures/corejs3/entry-stable/output.mjs | 209 ++++++++ .../corejs3/exclude-built-ins/input.mjs | 2 + .../corejs3/exclude-built-ins/options.json | 22 + .../corejs3/exclude-built-ins/output.mjs | 14 + .../corejs3/exclude-include/input.mjs | 8 + .../corejs3/exclude-include/options.json | 21 + .../corejs3/exclude-include/output.mjs | 34 ++ .../corejs3/exclude-regenerator/input.mjs | 2 + .../corejs3/exclude-regenerator/options.json | 13 + .../corejs3/exclude-regenerator/output.mjs | 208 ++++++++ .../test/fixtures/corejs3/exclude/input.mjs | 3 + .../fixtures/corejs3/exclude/options.json | 13 + .../test/fixtures/corejs3/exclude/output.mjs | 6 + .../corejs3/force-all-transforms/input.mjs | 4 + .../force-all-transforms}/options.json | 3 +- .../corejs3/force-all-transforms/output.mjs | 30 ++ .../corejs3/include-built-ins/input.mjs | 2 + .../corejs3/include-built-ins/options.json | 16 + .../corejs3/include-built-ins/output.mjs | 30 ++ .../usage-all-proposals-chrome-71/input.mjs | 26 + .../options.json | 15 + .../usage-all-proposals-chrome-71/output.mjs | 50 ++ .../corejs3/usage-all-proposals/input.mjs | 26 + .../corejs3/usage-all-proposals/options.json | 12 + .../corejs3/usage-all-proposals/output.mjs | 67 +++ .../test/fixtures/corejs3/usage-all/input.mjs | 26 + .../fixtures/corejs3/usage-all/options.json | 12 + .../fixtures/corejs3/usage-all/output.mjs | 51 ++ .../browserslist | 1 + .../input.mjs | 1 + .../options.json | 15 + .../output.mjs | 3 + .../input.mjs | 2 + .../options.json | 12 + .../output.mjs | 7 + .../usage-destructuring-assignment/input.mjs | 1 + .../options.json | 13 + .../usage-destructuring-assignment/output.mjs | 4 + .../usage-destructuring-catch/input.mjs | 3 + .../usage-destructuring-catch/options.json | 13 + .../usage-destructuring-catch/output.mjs | 7 + .../usage-destructuring-for-x/input.mjs | 1 + .../usage-destructuring-for-x/options.json | 13 + .../usage-destructuring-for-x/output.mjs | 7 + .../usage-destructuring-iife/input.mjs | 5 + .../usage-destructuring-iife/options.json | 13 + .../usage-destructuring-iife/output.mjs | 14 + .../usage-destructuring-params/input.mjs | 1 + .../usage-destructuring-params/options.json | 13 + .../usage-destructuring-params/output.mjs | 7 + .../input.mjs | 1 + .../options.json | 13 + .../output.mjs | 4 + .../input.mjs | 17 + .../options.json | 12 + .../output.mjs | 21 + .../usage-dynamic-import-chrome-71/input.mjs | 1 + .../options.json | 16 + .../usage-dynamic-import-chrome-71/output.mjs | 1 + .../corejs3/usage-dynamic-import/input.mjs | 1 + .../corejs3/usage-dynamic-import/options.json | 13 + .../corejs3/usage-dynamic-import/output.mjs | 3 + .../usage-evaluated-class-methods/input.mjs | 12 + .../options.json | 12 + .../usage-evaluated-class-methods/output.mjs | 17 + .../input.mjs | 8 + .../options.json | 12 + .../output.mjs | 9 + .../corejs3/usage-fetch-chrome-71/input.mjs | 1 + .../usage-fetch-chrome-71/options.json | 15 + .../corejs3/usage-fetch-chrome-71/output.mjs | 1 + .../fixtures/corejs3/usage-fetch/input.mjs | 1 + .../fixtures/corejs3/usage-fetch/options.json | 12 + .../fixtures/corejs3/usage-fetch/output.mjs | 3 + .../usage-for-of-destructure-with/input.mjs | 3 + .../options.json | 15 + .../usage-for-of-destructure-with/output.mjs | 10 + .../input.mjs | 3 + .../options.json | 15 + .../output.mjs | 5 + .../fixtures/corejs3/usage-for-of/input.mjs | 1 + .../corejs3/usage-for-of/options.json | 13 + .../fixtures/corejs3/usage-for-of/output.mjs | 7 + .../test/fixtures/corejs3/usage-in/input.mjs | 7 + .../fixtures/corejs3/usage-in/options.json | 12 + .../test/fixtures/corejs3/usage-in/output.mjs | 10 + .../input.mjs | 12 + .../options.json | 15 + .../output.mjs | 23 + .../corejs3/usage-instance-methods/input.mjs | 20 + .../usage-instance-methods/options.json | 12 + .../corejs3/usage-instance-methods/output.mjs | 56 ++ .../corejs3/usage-modules-transform/input.mjs | 1 + .../usage-modules-transform/options.json | 11 + .../corejs3/usage-modules-transform/output.js | 7 + .../corejs3/usage-native-support/input.mjs | 33 ++ .../corejs3/usage-native-support/options.json | 15 + .../corejs3/usage-native-support/output.mjs | 42 ++ .../corejs3/usage-no-builtins/input.mjs | 1 + .../corejs3/usage-no-builtins/options.json | 12 + .../corejs3/usage-no-builtins/output.mjs | 1 + .../corejs3/usage-no-transform/input.mjs | 2 + .../corejs3/usage-no-transform/options.json | 15 + .../corejs3/usage-no-transform/output.mjs | 2 + .../corejs3/usage-number-ie-11/input.mjs | 2 + .../usage-number-ie-11}/options.json | 3 +- .../corejs3/usage-number-ie-11/output.mjs | 5 + .../usage-object-destructuring/input.mjs | 23 + .../usage-object-destructuring/options.json | 13 + .../usage-object-destructuring/output.mjs | 53 ++ .../corejs3/usage-object-spread/input.mjs | 1 + .../corejs3/usage-object-spread/options.json | 13 + .../corejs3/usage-object-spread/output.mjs | 4 + .../corejs3/usage-promise-all/input.mjs | 4 + .../corejs3/usage-promise-all/options.json | 15 + .../corejs3/usage-promise-all/output.mjs | 9 + .../corejs3/usage-promise-finally/input.mjs | 4 + .../usage-promise-finally/options.json | 15 + .../corejs3/usage-promise-finally/output.mjs | 7 + .../corejs3/usage-promise-race/input.mjs | 4 + .../corejs3/usage-promise-race/options.json | 15 + .../corejs3/usage-promise-race/output.mjs | 9 + .../input.mjs | 1 + .../options.json | 15 + .../output.mjs | 1 + .../input.mjs | 1 + .../options.json | 15 + .../output.mjs | 3 + .../usage-regenerator-used-async/input.mjs | 1 + .../usage-regenerator-used-async/options.json | 12 + .../usage-regenerator-used-async/output.mjs | 28 + .../input.mjs | 1 + .../options.json | 3 +- .../output.mjs | 1 + .../input.mjs | 1 + .../options.json | 12 + .../output.mjs | 17 + .../corejs3/usage-shippedProposals/input.mjs | 26 + .../usage-shippedProposals/options.json | 13 + .../corejs3/usage-shippedProposals/output.js | 69 +++ .../usage-source-type-script-query/input.js | 8 + .../options.json | 16 + .../usage-source-type-script-query/output.js | 13 + .../corejs3/usage-source-type-script/input.js | 8 + .../usage-source-type-script/options.json | 16 + .../usage-source-type-script/output.js | 13 + .../fixtures/corejs3/usage-spread/input.mjs | 1 + .../corejs3/usage-spread/options.json | 13 + .../fixtures/corejs3/usage-spread/output.mjs | 4 + .../input.mjs | 4 + .../options.json | 15 + .../output.mjs | 6 + .../corejs3/usage-static-methods/input.mjs | 4 + .../corejs3/usage-static-methods/options.json | 13 + .../corejs3/usage-static-methods/output.mjs | 10 + .../usage-symbol-iterator-in/input.mjs | 1 + .../usage-symbol-iterator-in/options.json | 12 + .../usage-symbol-iterator-in/output.mjs | 8 + .../corejs3/usage-symbol-iterator/input.mjs | 1 + .../usage-symbol-iterator/options.json | 12 + .../corejs3/usage-symbol-iterator/output.mjs | 8 + .../fixtures/corejs3/usage-timers/input.mjs | 5 + .../corejs3/usage-timers/options.json | 12 + .../fixtures/corejs3/usage-timers/output.mjs | 9 + .../usage-typed-array-edge-13/input.mjs | 1 + .../usage-typed-array-edge-13/options.json | 15 + .../usage-typed-array-edge-13/output.mjs | 6 + .../usage-typed-array-static/input.mjs | 1 + .../usage-typed-array-static/options.json | 12 + .../usage-typed-array-static/output.mjs | 29 + .../corejs3/usage-typed-array/input.mjs | 1 + .../corejs3/usage-typed-array/options.json | 12 + .../corejs3/usage-typed-array/output.mjs | 28 + .../corejs3/usage-yield-non-star/input.mjs | 3 + .../corejs3/usage-yield-non-star/options.json | 15 + .../corejs3/usage-yield-non-star/output.mjs | 3 + .../corejs3/usage-yield-star/input.mjs | 3 + .../corejs3/usage-yield-star/options.json | 15 + .../corejs3/usage-yield-star/output.mjs | 6 + .../modules-amd-loose/input.mjs | 0 .../modules-amd-loose/options.json | 0 .../modules-amd-loose/output.js | 0 .../modules-cjs/input.mjs | 0 .../modules-cjs/options.json | 0 .../modules-cjs/output.js | 0 .../modules-commonjs/input.mjs | 0 .../modules-commonjs/options.json | 0 .../modules-commonjs/output.js | 0 .../modules-false/input.mjs | 0 .../modules-false/options.json | 0 .../modules-false/output.mjs | 0 .../modules-systemjs/input.mjs | 0 .../modules-systemjs/options.json | 0 .../modules-systemjs/output.mjs | 0 .../modules-umd/input.mjs | 0 .../modules-umd/options.json | 0 .../modules-umd/output.js | 0 .../filters-duplicates/options.json | 14 - .../filters-duplicates/output.mjs | 2 - .../regenerator-false/options.json | 11 - .../regenerator-true/options.json | 11 - .../regenerator-true/output.mjs | 1 - .../options.json | 11 - .../builtins-used/options.json | 11 - .../for-of-destructure-without/output.mjs | 6 - .../no-builtins-used/options.json | 11 - .../regenerator-used-async/options.json | 11 - .../regenerator-used-generator/options.json | 11 - .../remove-babel-polyfill-import/options.json | 11 - .../fixtures/preset-options/ios-6/input.mjs | 2 +- .../preset-options/ios-6/options.json | 3 +- .../fixtures/preset-options/ios-6/output.mjs | 3 + .../output.js | 67 --- .../use-builtins-import/options.json | 14 - .../use-builtins-node-web/input.mjs | 1 - .../use-builtins-node/input.mjs | 1 - .../useBuiltIns-false}/input.mjs | 0 .../useBuiltIns-false}/options.json | 0 .../useBuiltIns-false}/output.mjs | 0 .../test/get-option-specific-excludes.spec.js | 24 + .../get-platform-specific-default.spec.js | 31 ++ packages/babel-preset-env/test/index.spec.js | 87 +-- .../test/normalize-options.spec.js | 26 +- packages/babel-register/package.json | 2 +- packages/babel-runtime-corejs2/package.json | 2 +- packages/babel-runtime-corejs3/.npmignore | 3 + packages/babel-runtime-corejs3/README.md | 17 + packages/babel-runtime-corejs3/package.json | 15 + .../regenerator/index.js | 1 + .../babel-runtime-corejs3/test/index.spec.js | 503 ++++++++++++++++++ 889 files changed, 18536 insertions(+), 1575 deletions(-) delete mode 100644 packages/babel-plugin-transform-runtime/src/definitions.js create mode 100644 packages/babel-plugin-transform-runtime/src/helpers.js create mode 100644 packages/babel-plugin-transform-runtime/src/runtime-corejs2-definitions.js create mode 100644 packages/babel-plugin-transform-runtime/src/runtime-corejs3-definitions.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/input.mjs create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/output.mjs create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/input.mjs create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/input.mjs create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/input.mjs create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/output.js rename packages/babel-preset-env/data/{built-in-features.js => corejs2-built-in-features.js} (98%) rename packages/babel-preset-env/data/{built-ins.json => corejs2-built-ins.json} (88%) delete mode 100644 packages/babel-preset-env/src/built-in-definitions.js delete mode 100644 packages/babel-preset-env/src/default-includes.js delete mode 100644 packages/babel-preset-env/src/defaults.js create mode 100644 packages/babel-preset-env/src/filter-items.js create mode 100644 packages/babel-preset-env/src/get-option-specific-excludes.js create mode 100644 packages/babel-preset-env/src/polyfills/corejs2/built-in-definitions.js create mode 100644 packages/babel-preset-env/src/polyfills/corejs2/entry-plugin.js create mode 100644 packages/babel-preset-env/src/polyfills/corejs2/get-platform-specific-default.js create mode 100644 packages/babel-preset-env/src/polyfills/corejs2/usage-plugin.js create mode 100644 packages/babel-preset-env/src/polyfills/corejs3/built-in-definitions.js create mode 100644 packages/babel-preset-env/src/polyfills/corejs3/entry-plugin.js create mode 100644 packages/babel-preset-env/src/polyfills/corejs3/shipped-proposals.js create mode 100644 packages/babel-preset-env/src/polyfills/corejs3/usage-plugin.js create mode 100644 packages/babel-preset-env/src/polyfills/regenerator/entry-plugin.js create mode 100644 packages/babel-preset-env/src/polyfills/regenerator/usage-plugin.js delete mode 100644 packages/babel-preset-env/src/use-built-ins-entry-plugin.js delete mode 100644 packages/babel-preset-env/src/use-built-ins-plugin.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/stdout.txt rename packages/babel-preset-env/test/debug-fixtures/{android => entry-corejs2-android}/in/in.js (100%) rename packages/babel-preset-env/test/debug-fixtures/{android => entry-corejs2-android}/options.json (74%) rename packages/babel-preset-env/test/debug-fixtures/{android => entry-corejs2-android}/stdout.txt (96%) rename packages/babel-preset-env/test/debug-fixtures/{builtins-uglify => entry-corejs2-electron}/in/in.js (100%) rename packages/babel-preset-env/test/debug-fixtures/{electron => entry-corejs2-electron}/options.json (72%) rename packages/babel-preset-env/test/debug-fixtures/{electron => entry-corejs2-electron}/stdout.txt (95%) rename packages/babel-preset-env/test/debug-fixtures/{builtins => entry-corejs2-force-all-transforms}/in/in.js (100%) rename packages/babel-preset-env/test/debug-fixtures/{force-all-transforms => entry-corejs2-force-all-transforms}/options.json (91%) rename packages/babel-preset-env/test/debug-fixtures/{force-all-transforms => entry-corejs2-force-all-transforms}/stdout.txt (87%) rename packages/babel-preset-env/test/debug-fixtures/{builtins-no-import => entry-corejs2-no-import}/in/in.js (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs2-no-import/options.json rename packages/babel-preset-env/test/debug-fixtures/{builtins-no-import => entry-corejs2-no-import}/stdout.txt (92%) rename packages/babel-preset-env/test/debug-fixtures/{electron => entry-corejs2-proposals-chrome-71}/in/in.js (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/stdout.txt rename packages/babel-preset-env/test/debug-fixtures/{force-all-transforms => entry-corejs2-proposals}/in/in.js (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals/options.json rename packages/babel-preset-env/test/debug-fixtures/{shippedProposals => entry-corejs2-proposals}/stdout.txt (96%) rename packages/babel-preset-env/test/debug-fixtures/{shippedProposals-chrome60 => entry-corejs2-shippedProposals-chrome-71}/in/in.js (100%) rename packages/babel-preset-env/test/debug-fixtures/{shippedProposals-chrome60 => entry-corejs2-shippedProposals-chrome-71}/options.json (62%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals-chrome-71/stdout.txt rename packages/babel-preset-env/test/debug-fixtures/{shippedProposals => entry-corejs2-shippedProposals}/in/in.js (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/stdout.txt rename packages/babel-preset-env/test/debug-fixtures/{specific-targets => entry-corejs2-specific-targets}/in/in.js (100%) rename packages/babel-preset-env/test/debug-fixtures/{specific-targets => entry-corejs2-specific-targets}/options.json (78%) rename packages/babel-preset-env/test/debug-fixtures/{specific-targets => entry-corejs2-specific-targets}/stdout.txt (95%) rename packages/babel-preset-env/test/debug-fixtures/{usage-with-import => entry-corejs2-versions-decimals}/in/in.js (100%) rename packages/babel-preset-env/test/debug-fixtures/{versions-decimals => entry-corejs2-versions-decimals}/options.json (91%) rename packages/babel-preset-env/test/debug-fixtures/{versions-decimals => entry-corejs2-versions-decimals}/stdout.txt (95%) rename packages/babel-preset-env/test/debug-fixtures/{versions-decimals => entry-corejs2-versions-strings}/in/in.js (100%) rename packages/babel-preset-env/test/debug-fixtures/{versions-strings => entry-corejs2-versions-strings}/options.json (91%) rename packages/babel-preset-env/test/debug-fixtures/{versions-strings => entry-corejs2-versions-strings}/stdout.txt (94%) rename packages/babel-preset-env/test/debug-fixtures/{versions-strings => entry-corejs2}/in/in.js (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs2/options.json rename packages/babel-preset-env/test/debug-fixtures/{builtins => entry-corejs2}/stdout.txt (95%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/stderr.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-corejs3/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/in/in.js rename packages/babel-preset-env/test/debug-fixtures/{builtins-no-import => entry-no-corejs-no-import}/options.json (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/in/in.js rename packages/babel-preset-env/test/debug-fixtures/{shippedProposals => entry-no-corejs-shippedProposals}/options.json (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-uglify/in/in.js rename packages/babel-preset-env/test/debug-fixtures/{builtins-uglify => entry-no-corejs-uglify}/options.json (100%) rename packages/babel-preset-env/test/debug-fixtures/{builtins-uglify => entry-no-corejs-uglify}/stdout.txt (84%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/in/in.js rename packages/babel-preset-env/test/debug-fixtures/{builtins => entry-no-corejs}/options.json (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/plugins-only/in/in.js delete mode 100644 packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/stdout.txt rename packages/babel-preset-env/test/debug-fixtures/{usage => usage-corejs2-chrome-71}/in/in.js (53%) rename packages/babel-preset-env/test/debug-fixtures/{usage => usage-corejs2-chrome-71}/in/in2.js (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/stdout.txt rename packages/babel-preset-env/test/debug-fixtures/{usage-none => usage-corejs2-none}/in/in.js (100%) rename packages/babel-preset-env/test/debug-fixtures/{usage-none => usage-corejs2-none}/in/in2.js (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/options.json rename packages/babel-preset-env/test/debug-fixtures/{usage-none => usage-corejs2-none}/stdout.txt (91%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/in/in.js rename packages/babel-preset-env/test/{fixtures/dom-iterable/yield-star/input.mjs => debug-fixtures/usage-corejs2-proposals-chrome-71/in/in2.js} (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/options.json rename packages/babel-preset-env/test/debug-fixtures/{usage => usage-corejs2-proposals}/stdout.txt (88%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/in/in.js rename packages/babel-preset-env/test/debug-fixtures/{usage-with-import => usage-corejs2-with-import}/options.json (71%) rename packages/babel-preset-env/test/debug-fixtures/{usage-with-import => usage-corejs2-with-import}/stderr.txt (100%) rename packages/babel-preset-env/test/debug-fixtures/{usage-with-import => usage-corejs2-with-import}/stdout.txt (86%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs2/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/stderr.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3/in/in2.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3/options.json create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-corejs3/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/in/in2.js rename packages/babel-preset-env/test/debug-fixtures/{usage-none => usage-no-corejs-none}/options.json (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/stdout.txt create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/in/in.js create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/in/in2.js rename packages/babel-preset-env/test/debug-fixtures/{usage => usage-no-corejs}/options.json (100%) create mode 100644 packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/stdout.txt delete mode 100644 packages/babel-preset-env/test/defaults.js create mode 100644 packages/babel-preset-env/test/filter-items.spec.js rename packages/babel-preset-env/test/fixtures/{preset-options/.use-builtins-all-exec => corejs2/.entry-all-exec}/exec.js (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/test-modules-transform => corejs2/.entry-all-exec}/options.json (100%) rename packages/babel-preset-env/test/fixtures/{plugin-options/filters-duplicates => corejs2/entry-all}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-all => corejs2/entry-all}/options.json (66%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-all => corejs2/entry-all}/output.mjs (97%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chrome-48 => corejs2/entry-chrome-48}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chrome-48 => corejs2/entry-chrome-48}/options.json (75%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chrome-48 => corejs2/entry-chrome-48}/output.mjs (93%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chrome-49 => corejs2/entry-chrome-49}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chrome-49 => corejs2/entry-chrome-49}/options.json (75%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chrome-49 => corejs2/entry-chrome-49}/output.mjs (90%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chrome-66 => corejs2/entry-chrome-66}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chrome-66 => corejs2/entry-chrome-66}/options.json (75%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-66/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/options.json rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chrome-66 => corejs2/entry-chrome-71}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chromeandroid => corejs2/entry-chromeandroid}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chromeandroid => corejs2/entry-chromeandroid}/options.json (77%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-chromeandroid => corejs2/entry-chromeandroid}/output.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/input.mjs rename packages/babel-preset-env/test/fixtures/{preset-options/core-js => corejs2/entry-core-js-main-require}/options.json (75%) rename packages/babel-preset-env/test/fixtures/{preset-options/core-js => corejs2/entry-core-js-main-require}/output.mjs (74%) rename packages/babel-preset-env/test/fixtures/{preset-options/core-js => corejs2/entry-core-js-main}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/output.mjs rename packages/babel-preset-env/test/fixtures/{preset-options/electron => corejs2/entry-electron}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/electron => corejs2/entry-electron}/options.json (75%) rename packages/babel-preset-env/test/fixtures/{preset-options/electron => corejs2/entry-electron}/output.mjs (80%) rename packages/babel-preset-env/test/fixtures/{plugin-options/regenerator-false => corejs2/entry-ie-11}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/ie-11-built-ins => corejs2/entry-ie-11}/options.json (90%) rename packages/babel-preset-env/test/fixtures/{preset-options/ie-11-built-ins => corejs2/entry-ie-11}/output.mjs (96%) rename packages/babel-preset-env/test/fixtures/{plugin-options/regenerator-true => corejs2/entry-ie-9}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-ie-9 => corejs2/entry-ie-9}/options.json (90%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-ie-9 => corejs2/entry-ie-9}/output.mjs (96%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-import => corejs2/entry-import}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-import/options.json rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-import => corejs2/entry-import}/output.mjs (75%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-node-10_13 => corejs2/entry-node-10.13}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-node-10_13 => corejs2/entry-node-10.13}/options.json (75%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-node-10.13/output.mjs rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-ie-9 => corejs2/entry-node-11}/input.mjs (96%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/output.mjs rename packages/babel-preset-env/test/fixtures/{preset-options/exclude-built-ins => corejs2/entry-node-web}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-node-web => corejs2/entry-node-web}/options.json (79%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-node-web => corejs2/entry-node-web}/output.mjs (76%) rename packages/babel-preset-env/test/fixtures/{preset-options/exclude-regenerator => corejs2/entry-node}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-node/options.json rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-node => corejs2/entry-node}/output.mjs (71%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-require => corejs2/entry-require}/input.js (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-require => corejs2/entry-require}/options.json (75%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-require => corejs2/entry-require}/output.js (75%) rename packages/babel-preset-env/test/fixtures/{preset-options/shippedProposals-use-builtins-usage => corejs2/entry-shippedProposals}/input.js (80%) rename packages/babel-preset-env/test/fixtures/{preset-options/shippedProposals-use-builtins-entry => corejs2/entry-shippedProposals}/options.json (67%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/output.js rename packages/babel-preset-env/test/fixtures/{preset-options/ie-11-built-ins => corejs2/exclude-built-ins}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/exclude-built-ins/options.json (81%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/exclude-built-ins/output.mjs rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/exclude-include/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/exclude-include/options.json (87%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/exclude-include/output.mjs (71%) rename packages/babel-preset-env/test/fixtures/{preset-options/include-built-ins => corejs2/exclude-regenerator}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/exclude-regenerator/options.json (89%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/exclude-regenerator/output.mjs (97%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/exclude/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/exclude/options.json (90%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/exclude/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/force-all-transforms/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/force-all-transforms/options.json (91%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/force-all-transforms/output.mjs (76%) rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-all => corejs2/include-built-ins}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/include-built-ins/options.json (79%) rename packages/babel-preset-env/test/fixtures/{preset-options => corejs2}/include-built-ins/output.mjs (76%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used => corejs2/usage-all}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-evaluated-class-methods => corejs2/usage-all}/options.json (86%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used => corejs2/usage-all}/output.mjs (94%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/browserslist-config-ignore => corejs2/usage-browserslist-config-ignore}/browserslist (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/browserslist-config-ignore => corejs2/usage-browserslist-config-ignore}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/browserslist-config-ignore => corejs2/usage-browserslist-config-ignore}/options.json (93%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/browserslist-config-ignore => corejs2/usage-browserslist-config-ignore}/output.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/output.mjs rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-evaluated-class-methods => corejs2/usage-evaluated-class-methods}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{dom-iterable/symbol-iterator => corejs2/usage-evaluated-class-methods}/options.json (86%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-evaluated-class-methods => corejs2/usage-evaluated-class-methods}/output.mjs (91%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods => corejs2/usage-evaluated-instance-methods}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods => corejs2/usage-evaluated-instance-methods}/options.json (86%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods => corejs2/usage-evaluated-instance-methods}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/for-of-destructure-with => corejs2/usage-for-of-destructure-with}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/for-of-destructure-with => corejs2/usage-for-of-destructure-with}/options.json (89%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/for-of-destructure-with => corejs2/usage-for-of-destructure-with}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/for-of-destructure-without => corejs2/usage-for-of-destructure-without}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/output.mjs rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-instance-methods-native-support => corejs2/usage-instance-methods-native-support}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-native-support => corejs2/usage-instance-methods-native-support}/options.json (78%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-instance-methods-native-support => corejs2/usage-instance-methods-native-support}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-instance-methods => corejs2/usage-instance-methods}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{dom-iterable/symbol-iterator-in => corejs2/usage-instance-methods}/options.json (86%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-instance-methods => corejs2/usage-instance-methods}/output.mjs (97%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/test-modules-transform => corejs2/usage-modules-transform}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-modules-transform/options.json rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/test-modules-transform => corejs2/usage-modules-transform}/output.js (56%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-native-support => corejs2/usage-native-support}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-native-support/options.json rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-native-support => corejs2/usage-native-support}/output.mjs (91%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/no-builtins-used => corejs2/usage-no-builtins}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-no-builtins/options.json rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/no-builtins-used => corejs2/usage-no-builtins}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/no-transform => corejs2/usage-no-transform}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/no-transform => corejs2/usage-no-transform}/options.json (75%) rename packages/babel-preset-env/test/fixtures/{preset-options/no-transform => corejs2/usage-no-transform}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/number-ie11 => corejs2/usage-number-ie-11}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/number-ie11 => corejs2/usage-number-ie-11}/options.json (89%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/number-ie11 => corejs2/usage-number-ie-11}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/promise-all => corejs2/usage-promise-all}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/promise-all => corejs2/usage-promise-all}/options.json (90%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/promise-all => corejs2/usage-promise-all}/output.mjs (84%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/promise-finally => corejs2/usage-promise-finally}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/promise-finally => corejs2/usage-promise-finally}/options.json (90%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/promise-finally => corejs2/usage-promise-finally}/output.mjs (76%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/promise-race => corejs2/usage-promise-race}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/promise-race => corejs2/usage-promise-race}/options.json (90%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/promise-race => corejs2/usage-promise-race}/output.mjs (84%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-async-native-support => corejs2/usage-regenerator-used-async-and-promise-native-support}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-and-promise-native-support/options.json rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-async-native-support => corejs2/usage-regenerator-used-async-and-promise-native-support}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-async => corejs2/usage-regenerator-used-async-native-support}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-async-native-support => corejs2/usage-regenerator-used-async-native-support}/options.json (89%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-native-support/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/options.json rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-async => corejs2/usage-regenerator-used-async}/output.mjs (96%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-generator-native-support => corejs2/usage-regenerator-used-generator-native-support}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-generator-native-support => corejs2/usage-regenerator-used-generator-native-support}/options.json (89%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-generator-native-support => corejs2/usage-regenerator-used-generator-native-support}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-generator => corejs2/usage-regenerator-used-generator}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator/options.json rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/regenerator-used-generator => corejs2/usage-regenerator-used-generator}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/remove-babel-polyfill-import => corejs2/usage-remove-babel-polyfill-import}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-remove-babel-polyfill-import/options.json rename packages/babel-preset-env/test/fixtures/{preset-options/shippedProposals-use-builtins-entry => corejs2/usage-shippedProposals}/input.js (100%) rename packages/babel-preset-env/test/fixtures/{preset-options/shippedProposals-use-builtins-usage => corejs2/usage-shippedProposals}/options.json (72%) rename packages/babel-preset-env/test/fixtures/{preset-options/shippedProposals-use-builtins-usage => corejs2/usage-shippedProposals}/output.js (98%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/source-type-script-query => corejs2/usage-source-type-script-query}/input.js (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/source-type-script-query => corejs2/usage-source-type-script-query}/options.json (91%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/source-type-script => corejs2/usage-source-type-script-query}/output.js (79%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/source-type-script => corejs2/usage-source-type-script}/input.js (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/source-type-script => corejs2/usage-source-type-script}/options.json (91%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/source-type-script-query => corejs2/usage-source-type-script}/output.js (79%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-spread/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-spread/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-spread/output.mjs rename packages/babel-preset-env/test/fixtures/{dom-iterable/symbol-iterator-in => corejs2/usage-symbol-iterator-in}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator-in/options.json rename packages/babel-preset-env/test/fixtures/{dom-iterable/symbol-iterator-in => corejs2/usage-symbol-iterator-in}/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{dom-iterable/symbol-iterator => corejs2/usage-symbol-iterator}/input.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator/options.json rename packages/babel-preset-env/test/fixtures/{dom-iterable/symbol-iterator => corejs2/usage-symbol-iterator}/output.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-timers/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-timers/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-timers/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/output.mjs rename packages/babel-preset-env/test/fixtures/{dom-iterable/yield-non-star => corejs2/usage-yield-non-star}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{dom-iterable/yield-non-star => corejs2/usage-yield-non-star}/options.json (89%) rename packages/babel-preset-env/test/fixtures/{dom-iterable/yield-non-star => corejs2/usage-yield-non-star}/output.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs2/usage-yield-star/input.mjs rename packages/babel-preset-env/test/fixtures/{dom-iterable/yield-star => corejs2/usage-yield-star}/options.json (89%) rename packages/babel-preset-env/test/fixtures/{dom-iterable/yield-star => corejs2/usage-yield-star}/output.mjs (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/.entry-all-exec/exec.js rename packages/babel-preset-env/test/fixtures/{preset-options/.use-builtins-all-exec => corejs3/.entry-all-exec}/options.json (100%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-all/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-all/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-all/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-electron/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-electron/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-electron/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-import/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-import/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-import/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-node/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/input.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/output.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/input.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/output.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/input.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/output.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/input.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/output.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require/input.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-require/output.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-stable/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-stable/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-stable/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude-include/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude-include/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude-include/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/exclude/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/input.mjs rename packages/babel-preset-env/test/fixtures/{preset-options/use-builtins-node => corejs3/force-all-transforms}/options.json (82%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-all/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-all/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-all/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/browserslist create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-in/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-in/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-in/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/output.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/input.mjs rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/for-of-destructure-without => corejs3/usage-number-ie-11}/options.json (79%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/input.mjs rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-used-instance-methods-native-support => corejs3/usage-regenerator-used-generator-native-support}/options.json (80%) create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/output.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/input.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/output.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/input.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/output.js create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-spread/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-spread/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-spread/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-timers/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-timers/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-timers/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/output.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/output.mjs rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-amd-loose/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-amd-loose/options.json (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-amd-loose/output.js (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-cjs/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-cjs/options.json (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-cjs/output.js (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-commonjs/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-commonjs/options.json (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-commonjs/output.js (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-false/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-false/options.json (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-false/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-systemjs/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-systemjs/options.json (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-systemjs/output.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-umd/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-umd/options.json (100%) rename packages/babel-preset-env/test/fixtures/{preset-options => modules}/modules-umd/output.js (100%) delete mode 100644 packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/options.json delete mode 100644 packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/output.mjs delete mode 100644 packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/options.json delete mode 100644 packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/options.json delete mode 100644 packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/output.mjs delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/options.json delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/options.json delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/output.mjs delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/options.json delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/options.json delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/options.json delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/options.json create mode 100644 packages/babel-preset-env/test/fixtures/preset-options/ios-6/output.mjs delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/output.js delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/options.json delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/input.mjs delete mode 100644 packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/input.mjs rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-false => preset-options/useBuiltIns-false}/input.mjs (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-false => preset-options/useBuiltIns-false}/options.json (100%) rename packages/babel-preset-env/test/fixtures/{preset-options-add-used-built-ins/builtins-false => preset-options/useBuiltIns-false}/output.mjs (100%) create mode 100644 packages/babel-preset-env/test/get-option-specific-excludes.spec.js create mode 100644 packages/babel-preset-env/test/get-platform-specific-default.spec.js create mode 100644 packages/babel-runtime-corejs3/.npmignore create mode 100644 packages/babel-runtime-corejs3/README.md create mode 100644 packages/babel-runtime-corejs3/package.json create mode 100644 packages/babel-runtime-corejs3/regenerator/index.js create mode 100644 packages/babel-runtime-corejs3/test/index.spec.js diff --git a/.eslintignore b/.eslintignore index 18e74eafba..092fbbb802 100644 --- a/.eslintignore +++ b/.eslintignore @@ -5,8 +5,8 @@ package.json lerna.json packages/babel-runtime !packages/babel-plugin-transform-runtime/scripts -!packages/babel-runtime-corejs2/core-js.js packages/babel-runtime-corejs2 +packages/babel-runtime-corejs3 packages/*/node_modules packages/*/lib packages/*/dist diff --git a/.gitignore b/.gitignore index 35c82ecba2..70e6db5ea8 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,11 @@ package-lock.json /packages/babel-runtime-corejs2/core-js/**/*.js !/packages/babel-runtime-corejs2/core-js/map.js +/packages/babel-runtime-corejs3/helpers/*.js +/packages/babel-runtime-corejs3/helpers/esm/*.js +/packages/babel-runtime-corejs3/core-js/**/*.js +/packages/babel-runtime-corejs3/core-js-stable/**/*.js + /packages/babel-register/test/.babel /packages/babel-cli/test/tmp /packages/babel-node/test/tmp diff --git a/lib/third-party-libs.js.flow b/lib/third-party-libs.js.flow index 1b896cf861..c21a2797ac 100644 --- a/lib/third-party-libs.js.flow +++ b/lib/third-party-libs.js.flow @@ -27,16 +27,31 @@ declare module "lodash/merge" { } declare module "semver" { + declare class SemVer { + build: Array; + loose: ?boolean; + major: number; + minor: number; + patch: number; + prerelease: Array; + raw: string; + version: string; + + constructor(version: string | SemVer): SemVer; + } + declare module.exports: { - valid(v: string): boolean; + SemVer: SemVer; + + coerce(version: string | SemVer): SemVer | null; gt(v1: string, v2: string): boolean; + intersects(r1: string, r2: string): boolean; lt(v1: string, v2: string): boolean; major(v: string): number; minor(v: string): number; patch(v: string): number; satisfies(v1: string, r1: string): boolean; - - intersects(r1: string, r2: string): boolean; + valid(v: string): boolean; } } @@ -180,3 +195,13 @@ declare module "js-levenshtein" { (string, string): number, }; } + +declare module "core-js-compat/data" { + declare type Target = "node" | "chrome" | "opera" | "edge" | "firefox" | "safari" | "ie" | "ios" | "android" | "electron" | "samsung"; + + declare module.exports: { + [key: string]: { + [target: Target]: string; + } + } +} diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js index 2448e0cdea..dd2fe79120 100644 --- a/packages/babel-helpers/src/helpers.js +++ b/packages/babel-helpers/src/helpers.js @@ -998,7 +998,7 @@ helpers.initializerDefineProperty = helper("7.0.0-beta.0")` helpers.applyDecoratedDescriptor = helper("7.0.0-beta.0")` export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context){ var desc = {}; - Object['ke' + 'ys'](descriptor).forEach(function(key){ + Object.keys(descriptor).forEach(function(key){ desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; @@ -1019,7 +1019,7 @@ helpers.applyDecoratedDescriptor = helper("7.0.0-beta.0")` if (desc.initializer === void 0){ // This is a hack to avoid this being processed by 'transform-runtime'. // See issue #9. - Object['define' + 'Property'](target, property, desc); + Object.defineProperty(target, property, desc); desc = null; } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js index a615c9b9b3..8f3aff871c 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js @@ -8,7 +8,7 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } -function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.'); } diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-decl-to-expression/method-decorators/output.mjs b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-decl-to-expression/method-decorators/output.mjs index 27b1191153..4db262f67a 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-decl-to-expression/method-decorators/output.mjs +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-decl-to-expression/method-decorators/output.mjs @@ -1,6 +1,6 @@ var _class, _class2; -function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; } let A = (_class2 = class A { foo() {} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8041/output.mjs b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8041/output.mjs index f35dc48db9..592f7a40d4 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8041/output.mjs +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8041/output.mjs @@ -1,6 +1,6 @@ var _class2; -function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; } let _class = (_class2 = class { bar() {} diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7304/options.json b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7304/options.json index f236fc3b4c..a960185fcd 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7304/options.json +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7304/options.json @@ -7,7 +7,8 @@ "targets": { "node": 8 }, - "useBuiltIns": "usage" + "useBuiltIns": "usage", + "corejs": 3 } ] ], diff --git a/packages/babel-plugin-transform-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json index 773794e3d5..302a33259c 100644 --- a/packages/babel-plugin-transform-runtime/package.json +++ b/packages/babel-plugin-transform-runtime/package.json @@ -25,6 +25,8 @@ "@babel/helper-plugin-test-runner": "^7.0.0", "@babel/helpers": "^7.2.0", "@babel/plugin-transform-runtime": "^7.3.4", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-property-literals": "^7.2.0", "@babel/preset-env": "^7.3.4", "@babel/runtime": "^7.3.4", "@babel/template": "^7.0.0", diff --git a/packages/babel-plugin-transform-runtime/scripts/build-dist.js b/packages/babel-plugin-transform-runtime/scripts/build-dist.js index 590440aff3..b14920e31f 100644 --- a/packages/babel-plugin-transform-runtime/scripts/build-dist.js +++ b/packages/babel-plugin-transform-runtime/scripts/build-dist.js @@ -8,43 +8,81 @@ const template = require("@babel/template"); const t = require("@babel/types"); const transformRuntime = require("../"); -const getCorejs2Definitions = require("../lib/definitions").default; -const corejs2Definitions = getCorejs2Definitions(); +const transformMemberExpressionLiterals = require("@babel/plugin-transform-member-expression-literals"); +const transformPropertyLiterals = require("@babel/plugin-transform-property-literals"); + +const corejs2Definitions = require("../lib/runtime-corejs2-definitions").default(); +const corejs3Definitions = require("../lib/runtime-corejs3-definitions").default(); writeHelpers("@babel/runtime"); - -writeCoreJS2("@babel/runtime-corejs2"); writeHelpers("@babel/runtime-corejs2", { corejs: 2 }); +writeHelpers("@babel/runtime-corejs3", { + corejs: { version: 3, proposals: true }, +}); -function writeCoreJS2(runtimeName) { - const pkgDirname = getRuntimeRoot(runtimeName); - - const paths = [ +writeCoreJS({ + corejs: 2, + proposals: true, + definitions: corejs2Definitions, + paths: [ "is-iterable", "get-iterator", - // This was previously in definitions, but was removed to work around // zloirock/core-js#262. We need to keep it in @babel/runtime-corejs2 to // avoid a breaking change there. "symbol/async-iterator", - ]; + ], + corejsRoot: "core-js/library/fn", +}); +writeCoreJS({ + corejs: 3, + proposals: false, + definitions: corejs3Definitions, + paths: [], + corejsRoot: "core-js-pure/stable", +}); +writeCoreJS({ + corejs: 3, + proposals: true, + definitions: corejs3Definitions, + paths: ["is-iterable", "get-iterator", "get-iterator-method"], + corejsRoot: "core-js-pure/features", +}); - Object.keys(corejs2Definitions.builtins).forEach(key => { - const path = corejs2Definitions.builtins[key]; - paths.push(path); +function writeCoreJS({ + corejs, + proposals, + definitions: { BuiltIns, StaticProperties, InstanceProperties }, + paths, + corejsRoot, +}) { + const pkgDirname = getRuntimeRoot(`@babel/runtime-corejs${corejs}`); + + Object.keys(BuiltIns).forEach(name => { + const { stable, path } = BuiltIns[name]; + if (stable || proposals) paths.push(path); }); - Object.keys(corejs2Definitions.methods).forEach(key => { - const props = corejs2Definitions.methods[key]; - Object.keys(props).forEach(key2 => { - paths.push(props[key2]); + Object.keys(StaticProperties).forEach(builtin => { + const props = StaticProperties[builtin]; + Object.keys(props).forEach(name => { + const { stable, path } = props[name]; + if (stable || proposals) paths.push(path); }); }); - paths.forEach(function(corePath) { + if (InstanceProperties) { + Object.keys(InstanceProperties).forEach(name => { + const { stable, path } = InstanceProperties[name]; + if (stable || proposals) paths.push(`instance/${path}`); + }); + } + + const runtimeRoot = proposals ? "core-js" : "core-js-stable"; + paths.forEach(function(corejsPath) { outputFile( - path.join(pkgDirname, "core-js", `${corePath}.js`), - `module.exports = require("core-js/library/fn/${corePath}");` + path.join(pkgDirname, runtimeRoot, `${corejsPath}.js`), + `module.exports = require("${corejsRoot}/${corejsPath}");` ); }); } @@ -118,6 +156,8 @@ function buildHelper( presets: [[require("@babel/preset-env"), { modules: false }]], plugins: [ [transformRuntime, { corejs, useESModules: esm }], + [transformMemberExpressionLiterals], + [transformPropertyLiterals], buildRuntimeRewritePlugin( runtimeName, path.relative(path.dirname(helperFilename), pkgDirname), diff --git a/packages/babel-plugin-transform-runtime/src/definitions.js b/packages/babel-plugin-transform-runtime/src/definitions.js deleted file mode 100644 index b0874d0803..0000000000 --- a/packages/babel-plugin-transform-runtime/src/definitions.js +++ /dev/null @@ -1,168 +0,0 @@ -import semver from "semver"; - -function hasMinVersion(minVersion, runtimeVersion) { - // If the range is unavailable, we're running the script during Babel's - // build process, and we want to assume that all versions are satisfied so - // that the built output will include all definitions. - if (!runtimeVersion) return true; - - // semver.intersects() has some surprising behavior with comparing ranges - // with preprelease versions. We add '^' to ensure that we are always - // comparing ranges with ranges, which sidesteps this logic. - // For example: - // - // semver.intersects(`<7.0.1`, "7.0.0-beta.0") // false - surprising - // semver.intersects(`<7.0.1`, "^7.0.0-beta.0") // true - expected - // - // This is because the first falls back to - // - // semver.satisfies("7.0.0-beta.0", `<7.0.1`) // false - surprising - // - // and this fails because a prerelease version can only satisfy a range - // if it is a prerelease within the same major/minor/patch range. - // - // Note: If this is found to have issues, please also revist the logic in - // babel-core's availableHelper() API. - if (semver.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`; - - return ( - !semver.intersects(`<${minVersion}`, runtimeVersion) && - !semver.intersects(`>=8.0.0`, runtimeVersion) - ); -} - -export default runtimeVersion => { - // Conditionally include 'Math' because it was not included in the 7.0.0 - // release of '@babel/runtime'. See issue https://github.com/babel/babel/pull/8616. - const includeMathModule = hasMinVersion("7.0.1", runtimeVersion); - - return { - builtins: { - Symbol: "symbol", - Promise: "promise", - Map: "map", - WeakMap: "weak-map", - Set: "set", - WeakSet: "weak-set", - setImmediate: "set-immediate", - clearImmediate: "clear-immediate", - parseFloat: "parse-float", - parseInt: "parse-int", - }, - - methods: { - Array: { - from: "array/from", - isArray: "array/is-array", - of: "array/of", - }, - - JSON: { - stringify: "json/stringify", - }, - - Object: { - assign: "object/assign", - create: "object/create", - defineProperties: "object/define-properties", - defineProperty: "object/define-property", - entries: "object/entries", - freeze: "object/freeze", - getOwnPropertyDescriptor: "object/get-own-property-descriptor", - getOwnPropertyDescriptors: "object/get-own-property-descriptors", - getOwnPropertyNames: "object/get-own-property-names", - getOwnPropertySymbols: "object/get-own-property-symbols", - getPrototypeOf: "object/get-prototype-of", - isExtensible: "object/is-extensible", - isFrozen: "object/is-frozen", - isSealed: "object/is-sealed", - is: "object/is", - keys: "object/keys", - preventExtensions: "object/prevent-extensions", - seal: "object/seal", - setPrototypeOf: "object/set-prototype-of", - values: "object/values", - }, - - ...(includeMathModule - ? { - Math: { - acosh: "math/acosh", - asinh: "math/asinh", - atanh: "math/atanh", - cbrt: "math/cbrt", - clz32: "math/clz32", - cosh: "math/cosh", - expm1: "math/expm1", - fround: "math/fround", - hypot: "math/hypot", - imul: "math/imul", - log10: "math/log10", - log1p: "math/log1p", - log2: "math/log2", - sign: "math/sign", - sinh: "math/sinh", - tanh: "math/tanh", - trunc: "math/trunc", - }, - } - : {}), - - Symbol: { - // FIXME: Disabled to work around zloirock/core-js#262. - // asyncIterator: "symbol/async-iterator", - for: "symbol/for", - hasInstance: "symbol/has-instance", - isConcatSpreadable: "symbol/is-concat-spreadable", - iterator: "symbol/iterator", - keyFor: "symbol/key-for", - match: "symbol/match", - replace: "symbol/replace", - search: "symbol/search", - species: "symbol/species", - split: "symbol/split", - toPrimitive: "symbol/to-primitive", - toStringTag: "symbol/to-string-tag", - unscopables: "symbol/unscopables", - }, - - String: { - at: "string/at", - fromCodePoint: "string/from-code-point", - raw: "string/raw", - }, - - Number: { - EPSILON: "number/epsilon", - isFinite: "number/is-finite", - isInteger: "number/is-integer", - isNaN: "number/is-nan", - isSafeInteger: "number/is-safe-integer", - MAX_SAFE_INTEGER: "number/max-safe-integer", - MIN_SAFE_INTEGER: "number/min-safe-integer", - parseFloat: "number/parse-float", - parseInt: "number/parse-int", - }, - - Reflect: { - apply: "reflect/apply", - construct: "reflect/construct", - defineProperty: "reflect/define-property", - deleteProperty: "reflect/delete-property", - getOwnPropertyDescriptor: "reflect/get-own-property-descriptor", - getPrototypeOf: "reflect/get-prototype-of", - get: "reflect/get", - has: "reflect/has", - isExtensible: "reflect/is-extensible", - ownKeys: "reflect/own-keys", - preventExtensions: "reflect/prevent-extensions", - setPrototypeOf: "reflect/set-prototype-of", - set: "reflect/set", - }, - - Date: { - now: "date/now", - }, - }, - }; -}; diff --git a/packages/babel-plugin-transform-runtime/src/helpers.js b/packages/babel-plugin-transform-runtime/src/helpers.js new file mode 100644 index 0000000000..d9f90571ef --- /dev/null +++ b/packages/babel-plugin-transform-runtime/src/helpers.js @@ -0,0 +1,32 @@ +import semver from "semver"; + +export function hasMinVersion(minVersion, runtimeVersion) { + // If the range is unavailable, we're running the script during Babel's + // build process, and we want to assume that all versions are satisfied so + // that the built output will include all definitions. + if (!runtimeVersion) return true; + + // semver.intersects() has some surprising behavior with comparing ranges + // with preprelease versions. We add '^' to ensure that we are always + // comparing ranges with ranges, which sidesteps this logic. + // For example: + // + // semver.intersects(`<7.0.1`, "7.0.0-beta.0") // false - surprising + // semver.intersects(`<7.0.1`, "^7.0.0-beta.0") // true - expected + // + // This is because the first falls back to + // + // semver.satisfies("7.0.0-beta.0", `<7.0.1`) // false - surprising + // + // and this fails because a prerelease version can only satisfy a range + // if it is a prerelease within the same major/minor/patch range. + // + // Note: If this is found to have issues, please also revist the logic in + // babel-core's availableHelper() API. + if (semver.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`; + + return ( + !semver.intersects(`<${minVersion}`, runtimeVersion) && + !semver.intersects(`>=8.0.0`, runtimeVersion) + ); +} diff --git a/packages/babel-plugin-transform-runtime/src/index.js b/packages/babel-plugin-transform-runtime/src/index.js index 54468b94e3..09d7a4fc66 100644 --- a/packages/babel-plugin-transform-runtime/src/index.js +++ b/packages/babel-plugin-transform-runtime/src/index.js @@ -4,7 +4,8 @@ import { declare } from "@babel/helper-plugin-utils"; import { addDefault, isModule } from "@babel/helper-module-imports"; import { types as t } from "@babel/core"; -import getDefinitions from "./definitions"; +import getCoreJS2Definitions from "./runtime-corejs2-definitions"; +import getCoreJS3Definitions from "./runtime-corejs3-definitions"; function resolveAbsoluteRuntime(moduleName: string, dirname: string) { try { @@ -33,7 +34,7 @@ export default declare((api, options, dirname) => { api.assertVersion(7); const { - corejs: corejsVersion = false, + corejs, helpers: useRuntimeHelpers = true, regenerator: useRuntimeRegenerator = true, useESModules = false, @@ -41,21 +42,48 @@ export default declare((api, options, dirname) => { absoluteRuntime = false, } = options; - const definitions = getDefinitions(runtimeVersion); + let proposals = false; + let rawVersion; + + if (typeof corejs === "object" && corejs !== null) { + rawVersion = corejs.version; + proposals = Boolean(corejs.proposals); + } else { + rawVersion = corejs; + } + + const corejsVersion = rawVersion ? Number(rawVersion) : false; + + if (![false, 2, 3].includes(corejsVersion)) { + throw new Error( + `The \`core-js\` version must be false, 2 or 3, but got ${JSON.stringify( + rawVersion, + )}.`, + ); + } + + if (proposals && (!corejsVersion || corejsVersion < 3)) { + throw new Error( + "The 'proposals' option is only supported when using 'corejs: 3'", + ); + } if (typeof useRuntimeRegenerator !== "boolean") { throw new Error( "The 'regenerator' option must be undefined, or a boolean.", ); } + if (typeof useRuntimeHelpers !== "boolean") { throw new Error("The 'helpers' option must be undefined, or a boolean."); } + if (typeof useESModules !== "boolean" && useESModules !== "auto") { throw new Error( "The 'useESModules' option must be undefined, or a boolean, or 'auto'.", ); } + if ( typeof absoluteRuntime !== "boolean" && typeof absoluteRuntime !== "string" @@ -64,16 +92,7 @@ export default declare((api, options, dirname) => { "The 'absoluteRuntime' option must be undefined, a boolean, or a string.", ); } - if ( - corejsVersion !== false && - (typeof corejsVersion !== "number" || corejsVersion !== 2) && - (typeof corejsVersion !== "string" || corejsVersion !== "2") - ) { - throw new Error( - `The 'corejs' option must be undefined, false, 2 or '2', ` + - `but got ${JSON.stringify(corejsVersion)}.`, - ); - } + if (typeof runtimeVersion !== "string") { throw new Error(`The 'version' option must be a version string.`); } @@ -81,6 +100,18 @@ export default declare((api, options, dirname) => { function has(obj, key) { return Object.prototype.hasOwnProperty.call(obj, key); } + + function hasMapping(methods, name) { + return has(methods, name) && (proposals || methods[name].stable); + } + + function hasStaticMapping(object, method) { + return ( + has(StaticProperties, object) && + hasMapping(StaticProperties[object], method) + ); + } + if (has(options, "useBuiltIns")) { if (options.useBuiltIns) { throw new Error( @@ -90,10 +121,11 @@ export default declare((api, options, dirname) => { } else { throw new Error( "The 'useBuiltIns' option has been removed. Use the 'corejs'" + - "option with value '2' to polyfill with CoreJS 2.x via @babel/runtime.", + "option to polyfill with `core-js` via @babel/runtime.", ); } } + if (has(options, "polyfill")) { if (options.polyfill === false) { throw new Error( @@ -103,10 +135,11 @@ export default declare((api, options, dirname) => { } else { throw new Error( "The 'polyfill' option has been removed. Use the 'corejs'" + - "option with value '2' to polyfill with CoreJS 2.x via @babel/runtime.", + "option to polyfill with `core-js` via @babel/runtime.", ); } } + if (has(options, "moduleName")) { throw new Error( "The 'moduleName' option has been removed. @babel/transform-runtime " + @@ -119,11 +152,22 @@ export default declare((api, options, dirname) => { const esModules = useESModules === "auto" ? api.caller(supportsStaticESM) : useESModules; - const injectCoreJS2 = `${corejsVersion}` === "2"; - const moduleName = injectCoreJS2 + const injectCoreJS2 = corejsVersion === 2; + const injectCoreJS3 = corejsVersion === 3; + const injectCoreJS = corejsVersion !== false; + + const moduleName = injectCoreJS3 + ? "@babel/runtime-corejs3" + : injectCoreJS2 ? "@babel/runtime-corejs2" : "@babel/runtime"; + const corejsRoot = injectCoreJS3 && !proposals ? "core-js-stable" : "core-js"; + + const { BuiltIns, StaticProperties, InstanceProperties } = (injectCoreJS2 + ? getCoreJS2Definitions + : getCoreJS3Definitions)(runtimeVersion); + const HEADER_HELPERS = ["interopRequireWildcard", "interopRequireDefault"]; let modulePath = moduleName; @@ -199,7 +243,10 @@ export default declare((api, options, dirname) => { visitor: { ReferencedIdentifier(path) { const { node, parent, scope } = path; - if (node.name === "regeneratorRuntime" && useRuntimeRegenerator) { + const { name } = node; + + // transform `regeneratorRuntime` + if (name === "regeneratorRuntime" && useRuntimeRegenerator) { path.replaceWith( this.addDefaultImport( `${modulePath}/regenerator`, @@ -209,50 +256,81 @@ export default declare((api, options, dirname) => { return; } - if (!injectCoreJS2) return; + if (!injectCoreJS) return; if (t.isMemberExpression(parent)) return; - if (!has(definitions.builtins, node.name)) return; - if (scope.getBindingIdentifier(node.name)) return; + if (!hasMapping(BuiltIns, name)) return; + if (scope.getBindingIdentifier(name)) return; - // Symbol() -> _core.Symbol(); new Promise -> new _core.Promise + // transform global built-ins like `Symbol()`, `new Promise` path.replaceWith( this.addDefaultImport( - `${modulePath}/core-js/${definitions.builtins[node.name]}`, - node.name, + `${modulePath}/${corejsRoot}/${BuiltIns[name].path}`, + name, ), ); }, - // arr[Symbol.iterator]() -> _core.$for.getIterator(arr) CallExpression(path) { - if (!injectCoreJS2) return; + if (!injectCoreJS) return; - // we can't compile this - if (path.node.arguments.length) return; + const { node } = path; + const { callee } = node; - const callee = path.node.callee; if (!t.isMemberExpression(callee)) return; + + const { object, property } = callee; + const propertyName = property.name; + + // transform calling instance methods like `something.includes()` + if (injectCoreJS3 && !hasStaticMapping(object.name, propertyName)) { + if (hasMapping(InstanceProperties, propertyName)) { + let context1, context2; + if (t.isIdentifier(object)) { + context1 = object; + context2 = t.cloneNode(object); + } else { + context1 = path.scope.generateDeclaredUidIdentifier("context"); + context2 = t.assignmentExpression("=", context1, object); + } + node.callee = t.memberExpression( + t.callExpression( + this.addDefaultImport( + `${moduleName}/${corejsRoot}/instance/${ + InstanceProperties[propertyName].path + }`, + `${propertyName}InstanceProperty`, + ), + [context2], + ), + t.identifier("call"), + ); + node.arguments.unshift(context1); + return; + } + } + // we can't compile this + if (node.arguments.length) return; if (!callee.computed) return; if (!path.get("callee.property").matchesPattern("Symbol.iterator")) { return; } + // transform `something[Symbol.iterator]()` to calling `getIterator(something)` helper path.replaceWith( t.callExpression( this.addDefaultImport( `${modulePath}/core-js/get-iterator`, "getIterator", ), - [callee.object], + [object], ), ); }, - // Symbol.iterator in arr -> core.$for.isIterable(arr) + // transform `Symbol.iterator in something` to calling `isIterable(something)` helper BinaryExpression(path) { - if (!injectCoreJS2) return; - + if (!injectCoreJS) return; if (path.node.operator !== "in") return; if (!path.get("left").matchesPattern("Symbol.iterator")) return; @@ -267,61 +345,84 @@ export default declare((api, options, dirname) => { ); }, - // Array.from -> _core.Array.from + // transform static built-ins methods like `Array.from` MemberExpression: { enter(path) { - if (!injectCoreJS2) return; + if (!injectCoreJS) return; if (!path.isReferenced()) return; const { node } = path; - const obj = node.object; - const prop = node.property; + const { object, property } = node; - if (!t.isReferenced(obj, node)) return; - if (node.computed) return; - if (!has(definitions.methods, obj.name)) return; + if (!t.isReferenced(object, node)) return; - const methods = definitions.methods[obj.name]; - if (!has(methods, prop.name)) return; - - // doesn't reference the global - if (path.scope.getBindingIdentifier(obj.name)) return; - - // special case Object.defineProperty to not use core-js when using string keys - if ( - obj.name === "Object" && - prop.name === "defineProperty" && - path.parentPath.isCallExpression() - ) { - const call = path.parentPath.node; - if (call.arguments.length === 3 && t.isLiteral(call.arguments[1])) { - return; + if (node.computed) { + if (injectCoreJS2) return; + // transform `something[Symbol.iterator]` to calling `getIteratorMethod(something)` helper + if (path.get("property").matchesPattern("Symbol.iterator")) { + path.replaceWith( + t.callExpression( + this.addDefaultImport( + `${moduleName}/core-js/get-iterator-method`, + "getIteratorMethod", + ), + [object], + ), + ); } + return; + } + + const objectName = object.name; + const propertyName = property.name; + // doesn't reference the global + if ( + path.scope.getBindingIdentifier(objectName) || + !hasStaticMapping(objectName, propertyName) + ) { + // transform getting of instance methods like `method = something.includes` + if (injectCoreJS3 && hasMapping(InstanceProperties, propertyName)) { + path.replaceWith( + t.callExpression( + this.addDefaultImport( + `${moduleName}/${corejsRoot}/instance/${ + InstanceProperties[propertyName].path + }`, + `${propertyName}InstanceProperty`, + ), + [object], + ), + ); + } + return; } path.replaceWith( this.addDefaultImport( - `${modulePath}/core-js/${methods[prop.name]}`, - `${obj.name}$${prop.name}`, + `${modulePath}/${corejsRoot}/${ + StaticProperties[objectName][propertyName].path + }`, + `${objectName}$${propertyName}`, ), ); }, exit(path) { - if (!injectCoreJS2) return; + if (!injectCoreJS) return; if (!path.isReferenced()) return; const { node } = path; - const obj = node.object; + const { object } = node; + const { name } = object; - if (!has(definitions.builtins, obj.name)) return; - if (path.scope.getBindingIdentifier(obj.name)) return; + if (!hasMapping(BuiltIns, name)) return; + if (path.scope.getBindingIdentifier(name)) return; path.replaceWith( t.memberExpression( this.addDefaultImport( - `${modulePath}/core-js/${definitions.builtins[obj.name]}`, - obj.name, + `${modulePath}/${corejsRoot}/${BuiltIns[name].path}`, + name, ), node.property, node.computed, diff --git a/packages/babel-plugin-transform-runtime/src/runtime-corejs2-definitions.js b/packages/babel-plugin-transform-runtime/src/runtime-corejs2-definitions.js new file mode 100644 index 0000000000..c65df3f4ee --- /dev/null +++ b/packages/babel-plugin-transform-runtime/src/runtime-corejs2-definitions.js @@ -0,0 +1,155 @@ +import { hasMinVersion } from "./helpers"; + +export default runtimeVersion => { + // Conditionally include 'Math' because it was not included in the 7.0.0 + // release of '@babel/runtime'. See issue https://github.com/babel/babel/pull/8616. + const includeMathModule = hasMinVersion("7.0.1", runtimeVersion); + + return { + BuiltIns: { + Symbol: { stable: true, path: "symbol" }, + Promise: { stable: true, path: "promise" }, + Map: { stable: true, path: "map" }, + WeakMap: { stable: true, path: "weak-map" }, + Set: { stable: true, path: "set" }, + WeakSet: { stable: true, path: "weak-set" }, + setImmediate: { stable: true, path: "set-immediate" }, + clearImmediate: { stable: true, path: "clear-immediate" }, + parseFloat: { stable: true, path: "parse-float" }, + parseInt: { stable: true, path: "parse-int" }, + }, + + StaticProperties: { + Array: { + from: { stable: true, path: "array/from" }, + isArray: { stable: true, path: "array/is-array" }, + of: { stable: true, path: "array/of" }, + }, + + JSON: { + stringify: { stable: true, path: "json/stringify" }, + }, + + Object: { + assign: { stable: true, path: "object/assign" }, + create: { stable: true, path: "object/create" }, + defineProperties: { stable: true, path: "object/define-properties" }, + defineProperty: { stable: true, path: "object/define-property" }, + entries: { stable: true, path: "object/entries" }, + freeze: { stable: true, path: "object/freeze" }, + getOwnPropertyDescriptor: { + stable: true, + path: "object/get-own-property-descriptor", + }, + getOwnPropertyDescriptors: { + stable: true, + path: "object/get-own-property-descriptors", + }, + getOwnPropertyNames: { + stable: true, + path: "object/get-own-property-names", + }, + getOwnPropertySymbols: { + stable: true, + path: "object/get-own-property-symbols", + }, + getPrototypeOf: { stable: true, path: "object/get-prototype-of" }, + isExtensible: { stable: true, path: "object/is-extensible" }, + isFrozen: { stable: true, path: "object/is-frozen" }, + isSealed: { stable: true, path: "object/is-sealed" }, + is: { stable: true, path: "object/is" }, + keys: { stable: true, path: "object/keys" }, + preventExtensions: { stable: true, path: "object/prevent-extensions" }, + seal: { stable: true, path: "object/seal" }, + setPrototypeOf: { stable: true, path: "object/set-prototype-of" }, + values: { stable: true, path: "object/values" }, + }, + + ...(includeMathModule + ? { + Math: { + acosh: { stable: true, path: "math/acosh" }, + asinh: { stable: true, path: "math/asinh" }, + atanh: { stable: true, path: "math/atanh" }, + cbrt: { stable: true, path: "math/cbrt" }, + clz32: { stable: true, path: "math/clz32" }, + cosh: { stable: true, path: "math/cosh" }, + expm1: { stable: true, path: "math/expm1" }, + fround: { stable: true, path: "math/fround" }, + hypot: { stable: true, path: "math/hypot" }, + imul: { stable: true, path: "math/imul" }, + log10: { stable: true, path: "math/log10" }, + log1p: { stable: true, path: "math/log1p" }, + log2: { stable: true, path: "math/log2" }, + sign: { stable: true, path: "math/sign" }, + sinh: { stable: true, path: "math/sinh" }, + tanh: { stable: true, path: "math/tanh" }, + trunc: { stable: true, path: "math/trunc" }, + }, + } + : {}), + + Symbol: { + // FIXME: Disabled to work around zloirock/core-js#262. + // asyncIterator: { stable: true, path: "symbol/async-iterator" }, + for: { stable: true, path: "symbol/for" }, + hasInstance: { stable: true, path: "symbol/has-instance" }, + isConcatSpreadable: { + stable: true, + path: "symbol/is-concat-spreadable", + }, + iterator: { stable: true, path: "symbol/iterator" }, + keyFor: { stable: true, path: "symbol/key-for" }, + match: { stable: true, path: "symbol/match" }, + replace: { stable: true, path: "symbol/replace" }, + search: { stable: true, path: "symbol/search" }, + species: { stable: true, path: "symbol/species" }, + split: { stable: true, path: "symbol/split" }, + toPrimitive: { stable: true, path: "symbol/to-primitive" }, + toStringTag: { stable: true, path: "symbol/to-string-tag" }, + unscopables: { stable: true, path: "symbol/unscopables" }, + }, + + String: { + at: { stable: true, path: "string/at" }, + fromCodePoint: { stable: true, path: "string/from-code-point" }, + raw: { stable: true, path: "string/raw" }, + }, + + Number: { + EPSILON: { stable: true, path: "number/epsilon" }, + isFinite: { stable: true, path: "number/is-finite" }, + isInteger: { stable: true, path: "number/is-integer" }, + isNaN: { stable: true, path: "number/is-nan" }, + isSafeInteger: { stable: true, path: "number/is-safe-integer" }, + MAX_SAFE_INTEGER: { stable: true, path: "number/max-safe-integer" }, + MIN_SAFE_INTEGER: { stable: true, path: "number/min-safe-integer" }, + parseFloat: { stable: true, path: "number/parse-float" }, + parseInt: { stable: true, path: "number/parse-int" }, + }, + + Reflect: { + apply: { stable: true, path: "reflect/apply" }, + construct: { stable: true, path: "reflect/construct" }, + defineProperty: { stable: true, path: "reflect/define-property" }, + deleteProperty: { stable: true, path: "reflect/delete-property" }, + getOwnPropertyDescriptor: { + stable: true, + path: "reflect/get-own-property-descriptor", + }, + getPrototypeOf: { stable: true, path: "reflect/get-prototype-of" }, + get: { stable: true, path: "reflect/get" }, + has: { stable: true, path: "reflect/has" }, + isExtensible: { stable: true, path: "reflect/is-extensible" }, + ownKeys: { stable: true, path: "reflect/own-keys" }, + preventExtensions: { stable: true, path: "reflect/prevent-extensions" }, + setPrototypeOf: { stable: true, path: "reflect/set-prototype-of" }, + set: { stable: true, path: "reflect/set" }, + }, + + Date: { + now: { stable: true, path: "date/now" }, + }, + }, + }; +}; diff --git a/packages/babel-plugin-transform-runtime/src/runtime-corejs3-definitions.js b/packages/babel-plugin-transform-runtime/src/runtime-corejs3-definitions.js new file mode 100644 index 0000000000..4a68b0ab0e --- /dev/null +++ b/packages/babel-plugin-transform-runtime/src/runtime-corejs3-definitions.js @@ -0,0 +1,227 @@ +export default () => { + return { + BuiltIns: { + AggregateError: { stable: false, path: "aggregate-error" }, + Map: { stable: true, path: "map" }, + Observable: { stable: false, path: "observable" }, + Promise: { stable: true, path: "promise" }, + Set: { stable: true, path: "set" }, + Symbol: { stable: true, path: "symbol" }, + URL: { stable: true, path: "url" }, + URLSearchParams: { stable: true, path: "url-search-params" }, + WeakMap: { stable: true, path: "weak-map" }, + WeakSet: { stable: true, path: "weak-set" }, + clearImmediate: { stable: true, path: "clear-immediate" }, + compositeKey: { stable: false, path: "composite-key" }, + compositeSymbol: { stable: false, path: "composite-symbol" }, + globalThis: { stable: false, path: "global-this" }, + parseFloat: { stable: true, path: "parse-float" }, + parseInt: { stable: true, path: "parse-int" }, + queueMicrotask: { stable: true, path: "queue-microtask" }, + setImmediate: { stable: true, path: "set-immediate" }, + setInterval: { stable: true, path: "set-interval" }, + setTimeout: { stable: true, path: "set-timeout" }, + }, + + StaticProperties: { + Array: { + from: { stable: true, path: "array/from" }, + isArray: { stable: true, path: "array/is-array" }, + of: { stable: true, path: "array/of" }, + }, + + Date: { + now: { stable: true, path: "date/now" }, + }, + + JSON: { + stringify: { stable: true, path: "json/stringify" }, + }, + + Math: { + DEG_PER_RAD: { stable: false, path: "math/deg-per-rad" }, + RAD_PER_DEG: { stable: false, path: "math/rad-per-deg" }, + acosh: { stable: true, path: "math/acosh" }, + asinh: { stable: true, path: "math/asinh" }, + atanh: { stable: true, path: "math/atanh" }, + cbrt: { stable: true, path: "math/cbrt" }, + clamp: { stable: false, path: "math/clamp" }, + clz32: { stable: true, path: "math/clz32" }, + cosh: { stable: true, path: "math/cosh" }, + degrees: { stable: false, path: "math/degrees" }, + expm1: { stable: true, path: "math/expm1" }, + fround: { stable: true, path: "math/fround" }, + fscale: { stable: false, path: "math/fscale" }, + hypot: { stable: true, path: "math/hypot" }, + iaddh: { stable: false, path: "math/iaddh" }, + imul: { stable: true, path: "math/imul" }, + imulh: { stable: false, path: "math/imulh" }, + isubh: { stable: false, path: "math/isubh" }, + log10: { stable: true, path: "math/log10" }, + log1p: { stable: true, path: "math/log1p" }, + log2: { stable: true, path: "math/log2" }, + radians: { stable: false, path: "math/radians" }, + scale: { stable: false, path: "math/scale" }, + seededPRNG: { stable: false, path: "math/seeded-prng" }, + sign: { stable: true, path: "math/sign" }, + signbit: { stable: false, path: "math/signbit" }, + sinh: { stable: true, path: "math/sinh" }, + tanh: { stable: true, path: "math/tanh" }, + trunc: { stable: true, path: "math/trunc" }, + umulh: { stable: false, path: "math/umulh" }, + }, + + Number: { + EPSILON: { stable: true, path: "number/epsilon" }, + MAX_SAFE_INTEGER: { stable: true, path: "number/max-safe-integer" }, + MIN_SAFE_INTEGER: { stable: true, path: "number/min-safe-integer" }, + fromString: { stable: false, path: "number/from-string" }, + isFinite: { stable: true, path: "number/is-finite" }, + isInteger: { stable: true, path: "number/is-integer" }, + isNaN: { stable: true, path: "number/is-nan" }, + isSafeInteger: { stable: true, path: "number/is-safe-integer" }, + parseFloat: { stable: true, path: "number/parse-float" }, + parseInt: { stable: true, path: "number/parse-int" }, + }, + + Object: { + assign: { stable: true, path: "object/assign" }, + create: { stable: true, path: "object/create" }, + defineProperties: { stable: true, path: "object/define-properties" }, + defineProperty: { stable: true, path: "object/define-property" }, + entries: { stable: true, path: "object/entries" }, + freeze: { stable: true, path: "object/freeze" }, + fromEntries: { stable: true, path: "object/from-entries" }, + getOwnPropertyDescriptor: { + stable: true, + path: "object/get-own-property-descriptor", + }, + getOwnPropertyDescriptors: { + stable: true, + path: "object/get-own-property-descriptors", + }, + getOwnPropertyNames: { + stable: true, + path: "object/get-own-property-names", + }, + getOwnPropertySymbols: { + stable: true, + path: "object/get-own-property-symbols", + }, + getPrototypeOf: { stable: true, path: "object/get-prototype-of" }, + isExtensible: { stable: true, path: "object/is-extensible" }, + isFrozen: { stable: true, path: "object/is-frozen" }, + isSealed: { stable: true, path: "object/is-sealed" }, + is: { stable: true, path: "object/is" }, + keys: { stable: true, path: "object/keys" }, + preventExtensions: { stable: true, path: "object/prevent-extensions" }, + seal: { stable: true, path: "object/seal" }, + setPrototypeOf: { stable: true, path: "object/set-prototype-of" }, + values: { stable: true, path: "object/values" }, + }, + + Reflect: { + apply: { stable: true, path: "reflect/apply" }, + construct: { stable: true, path: "reflect/construct" }, + defineMetadata: { stable: false, path: "reflect/define-metadata" }, + defineProperty: { stable: true, path: "reflect/define-property" }, + deleteMetadata: { stable: false, path: "reflect/delete-metadata" }, + deleteProperty: { stable: true, path: "reflect/delete-property" }, + getMetadata: { stable: false, path: "reflect/get-metadata" }, + getMetadataKeys: { stable: false, path: "reflect/get-metadata-keys" }, + getOwnMetadata: { stable: false, path: "reflect/get-own-metadata" }, + getOwnMetadataKeys: { + stable: false, + path: "reflect/get-own-metadata-keys", + }, + getOwnPropertyDescriptor: { + stable: true, + path: "reflect/get-own-property-descriptor", + }, + getPrototypeOf: { stable: true, path: "reflect/get-prototype-of" }, + get: { stable: true, path: "reflect/get" }, + has: { stable: true, path: "reflect/has" }, + hasMetadata: { stable: false, path: "reflect/has-metadata" }, + hasOwnMetadata: { stable: false, path: "reflect/has-own-metadata" }, + isExtensible: { stable: true, path: "reflect/is-extensible" }, + metadata: { stable: false, path: "reflect/metadata" }, + ownKeys: { stable: true, path: "reflect/own-keys" }, + preventExtensions: { stable: true, path: "reflect/prevent-extensions" }, + set: { stable: true, path: "reflect/set" }, + setPrototypeOf: { stable: true, path: "reflect/set-prototype-of" }, + }, + + String: { + fromCodePoint: { stable: true, path: "string/from-code-point" }, + raw: { stable: true, path: "string/raw" }, + }, + + Symbol: { + asyncIterator: { stable: true, path: "symbol/async-iterator" }, + dispose: { stable: false, path: "symbol/dispose" }, + for: { stable: true, path: "symbol/for" }, + hasInstance: { stable: true, path: "symbol/has-instance" }, + isConcatSpreadable: { + stable: true, + path: "symbol/is-concat-spreadable", + }, + iterator: { stable: true, path: "symbol/iterator" }, + keyFor: { stable: true, path: "symbol/key-for" }, + match: { stable: true, path: "symbol/match" }, + observable: { stable: false, path: "symbol/observable" }, + patternMatch: { stable: false, path: "symbol/pattern-match" }, + replace: { stable: true, path: "symbol/replace" }, + search: { stable: true, path: "symbol/search" }, + species: { stable: true, path: "symbol/species" }, + split: { stable: true, path: "symbol/split" }, + toPrimitive: { stable: true, path: "symbol/to-primitive" }, + toStringTag: { stable: true, path: "symbol/to-string-tag" }, + unscopables: { stable: true, path: "symbol/unscopables" }, + }, + }, + + InstanceProperties: { + at: { stable: false, path: "at" }, + bind: { stable: true, path: "bind" }, + codePointAt: { stable: true, path: "code-point-at" }, + codePoints: { stable: false, path: "code-points" }, + concat: { stable: true, path: "concat" }, + copyWithin: { stable: true, path: "copy-within" }, + endsWith: { stable: true, path: "ends-with" }, + entries: { stable: true, path: "entries" }, + every: { stable: true, path: "every" }, + fill: { stable: true, path: "fill" }, + filter: { stable: true, path: "filter" }, + find: { stable: true, path: "find" }, + findIndex: { stable: true, path: "find-index" }, + flags: { stable: true, path: "flags" }, + flatMap: { stable: true, path: "flat-map" }, + flat: { stable: true, path: "flat" }, + forEach: { stable: true, path: "for-each" }, + includes: { stable: true, path: "includes" }, + indexOf: { stable: true, path: "index-of" }, + keys: { stable: true, path: "keys" }, + lastIndexOf: { stable: true, path: "last-index-of" }, + map: { stable: true, path: "map" }, + matchAll: { stable: false, path: "match-all" }, + padEnd: { stable: true, path: "pad-end" }, + padStart: { stable: true, path: "pad-start" }, + reduce: { stable: true, path: "reduce" }, + reduceRight: { stable: true, path: "reduce-right" }, + repeat: { stable: true, path: "repeat" }, + replaceAll: { stable: false, path: "replace-all" }, + reverse: { stable: true, path: "reverse" }, + slice: { stable: true, path: "slice" }, + some: { stable: true, path: "some" }, + sort: { stable: true, path: "sort" }, + splice: { stable: true, path: "splice" }, + startsWith: { stable: true, path: "starts-with" }, + trim: { stable: true, path: "trim" }, + trimEnd: { stable: true, path: "trim-end" }, + trimLeft: { stable: true, path: "trim-left" }, + trimRight: { stable: true, path: "trim-right" }, + trimStart: { stable: true, path: "trim-start" }, + values: { stable: true, path: "values" }, + }, + }; +}; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/output.js index d7ece9528b..c3eab7f58e 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/output.js @@ -2,11 +2,11 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault"); -var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property"); - var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys"); -Object.defineProperty(exports, "__esModule", { +var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property"); + +_Object$defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/input.js new file mode 100644 index 0000000000..b7c61b92b0 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/input.js @@ -0,0 +1,7 @@ +obj.constructor === Object; +obj.constructor === Promise; + +Symbol(); +Symbol("test"); + +new Map(); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/options.json new file mode 100644 index 0000000000..e41c386f01 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/output.js new file mode 100644 index 0000000000..45bcce8ebc --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/aliased-constructors/output.js @@ -0,0 +1,14 @@ +var _Map = require("@babel/runtime-corejs3/core-js-stable/map"); + +var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol"); + +var _Promise = require("@babel/runtime-corejs3/core-js-stable/promise"); + +obj.constructor === Object; +obj.constructor === _Promise; + +_Symbol(); + +_Symbol("test"); + +new _Map(); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/input.js new file mode 100644 index 0000000000..a9c0ca44e5 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/input.js @@ -0,0 +1,33 @@ +AggregateError +Map +Observable +Promise +Set +Symbol +URL +URLSearchParams +WeakMap +WeakSet +clearImmediate +compositeKey +compositeSymbol +globalThis +parseFloat +parseInt +queueMicrotask +setImmediate +setInterval +setTimeout + +Array +Boolean +Date +Infinity +JSON +NaN +Number +Object +clearInterval +clearTimeout + +something diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/options.json new file mode 100644 index 0000000000..1e8ea7d113 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": { "version": 3, "proposals": true } }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/output.js new file mode 100644 index 0000000000..90766b4cd4 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals-proposals/output.js @@ -0,0 +1,71 @@ +var _setTimeout = require("@babel/runtime-corejs3/core-js/set-timeout"); + +var _setInterval = require("@babel/runtime-corejs3/core-js/set-interval"); + +var _setImmediate = require("@babel/runtime-corejs3/core-js/set-immediate"); + +var _queueMicrotask = require("@babel/runtime-corejs3/core-js/queue-microtask"); + +var _parseInt = require("@babel/runtime-corejs3/core-js/parse-int"); + +var _parseFloat = require("@babel/runtime-corejs3/core-js/parse-float"); + +var _globalThis = require("@babel/runtime-corejs3/core-js/global-this"); + +var _compositeSymbol = require("@babel/runtime-corejs3/core-js/composite-symbol"); + +var _compositeKey = require("@babel/runtime-corejs3/core-js/composite-key"); + +var _clearImmediate = require("@babel/runtime-corejs3/core-js/clear-immediate"); + +var _WeakSet = require("@babel/runtime-corejs3/core-js/weak-set"); + +var _WeakMap = require("@babel/runtime-corejs3/core-js/weak-map"); + +var _URLSearchParams = require("@babel/runtime-corejs3/core-js/url-search-params"); + +var _URL = require("@babel/runtime-corejs3/core-js/url"); + +var _Symbol = require("@babel/runtime-corejs3/core-js/symbol"); + +var _Set = require("@babel/runtime-corejs3/core-js/set"); + +var _Promise = require("@babel/runtime-corejs3/core-js/promise"); + +var _Observable = require("@babel/runtime-corejs3/core-js/observable"); + +var _Map = require("@babel/runtime-corejs3/core-js/map"); + +var _AggregateError = require("@babel/runtime-corejs3/core-js/aggregate-error"); + +_AggregateError; +_Map; +_Observable; +_Promise; +_Set; +_Symbol; +_URL; +_URLSearchParams; +_WeakMap; +_WeakSet; +_clearImmediate; +_compositeKey; +_compositeSymbol; +_globalThis; +_parseFloat; +_parseInt; +_queueMicrotask; +_setImmediate; +_setInterval; +_setTimeout; +Array; +Boolean; +Date; +Infinity; +JSON; +NaN; +Number; +Object; +clearInterval; +clearTimeout; +something; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/input.js new file mode 100644 index 0000000000..a9c0ca44e5 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/input.js @@ -0,0 +1,33 @@ +AggregateError +Map +Observable +Promise +Set +Symbol +URL +URLSearchParams +WeakMap +WeakSet +clearImmediate +compositeKey +compositeSymbol +globalThis +parseFloat +parseInt +queueMicrotask +setImmediate +setInterval +setTimeout + +Array +Boolean +Date +Infinity +JSON +NaN +Number +Object +clearInterval +clearTimeout + +something diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/options.json new file mode 100644 index 0000000000..ea8bb9c3aa --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/output.js new file mode 100644 index 0000000000..dc1abb2135 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-globals/output.js @@ -0,0 +1,61 @@ +var _setTimeout = require("@babel/runtime-corejs3/core-js-stable/set-timeout"); + +var _setInterval = require("@babel/runtime-corejs3/core-js-stable/set-interval"); + +var _setImmediate = require("@babel/runtime-corejs3/core-js-stable/set-immediate"); + +var _queueMicrotask = require("@babel/runtime-corejs3/core-js-stable/queue-microtask"); + +var _parseInt = require("@babel/runtime-corejs3/core-js-stable/parse-int"); + +var _parseFloat = require("@babel/runtime-corejs3/core-js-stable/parse-float"); + +var _clearImmediate = require("@babel/runtime-corejs3/core-js-stable/clear-immediate"); + +var _WeakSet = require("@babel/runtime-corejs3/core-js-stable/weak-set"); + +var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map"); + +var _URLSearchParams = require("@babel/runtime-corejs3/core-js-stable/url-search-params"); + +var _URL = require("@babel/runtime-corejs3/core-js-stable/url"); + +var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol"); + +var _Set = require("@babel/runtime-corejs3/core-js-stable/set"); + +var _Promise = require("@babel/runtime-corejs3/core-js-stable/promise"); + +var _Map = require("@babel/runtime-corejs3/core-js-stable/map"); + +AggregateError; +_Map; +Observable; +_Promise; +_Set; +_Symbol; +_URL; +_URLSearchParams; +_WeakMap; +_WeakSet; +_clearImmediate; +compositeKey; +compositeSymbol; +globalThis; +_parseFloat; +_parseInt; +_queueMicrotask; +_setImmediate; +_setInterval; +_setTimeout; +Array; +Boolean; +Date; +Infinity; +JSON; +NaN; +Number; +Object; +clearInterval; +clearTimeout; +something; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/input.js new file mode 100644 index 0000000000..acc2a7ea7a --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/input.js @@ -0,0 +1,88 @@ +object.at; +object.bind; +object.codePointAt; +object.codePoints; +object.concat; +object.copyWithin; +object.endsWith; +object.entries; +object.every; +object.fill; +object.filter; +object.find; +object.findIndex; +object.flags; +object.flatMap; +object.flat; +object.forEach; +object.includes; +object.indexOf; +object.keys; +object.lastIndexOf; +object.map; +object.matchAll; +object.padEnd; +object.padStart; +object.reduce; +object.reduceRight; +object.repeat; +object.replaceAll; +object.reverse; +object.slice; +object.some; +object.sort; +object.splice; +object.startsWith; +object.trim; +object.trimEnd; +object.trimLeft; +object.trimRight; +object.trimStart; +object.values; +object.something; + +object.at(arg); +object.bind(arg); +object.codePointAt(arg); +object.codePoints(arg); +object.concat(arg); +object.copyWithin(arg); +object.endsWith(arg); +object.entries(arg); +object.every(arg); +object.fill(arg); +object.filter(arg); +object.find(arg); +object.findIndex(arg); +object.flags(arg); +object.flatMap(arg); +object.flat(arg); +object.forEach(arg); +object.includes(arg); +object.indexOf(arg); +object.keys(arg); +object.lastIndexOf(arg); +object.map(arg); +object.matchAll(arg); +object.padEnd(arg); +object.padStart(arg); +object.reduce(arg); +object.reduceRight(arg); +object.repeat(arg); +object.replaceAll(arg); +object.reverse(arg); +object.slice(arg); +object.some(arg); +object.sort(arg); +object.splice(arg); +object.startsWith(arg); +object.trim(arg); +object.trimEnd(arg); +object.trimLeft(arg); +object.trimRight(arg); +object.trimStart(arg); +object.values(arg); + +Function.bind + +object.something(arg); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/options.json new file mode 100644 index 0000000000..1e8ea7d113 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": { "version": 3, "proposals": true } }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/output.js new file mode 100644 index 0000000000..3b89460c51 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods-proposals/output.js @@ -0,0 +1,251 @@ +var _valuesInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/values"); + +var _trimStartInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim-start"); + +var _trimRightInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim-right"); + +var _trimLeftInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim-left"); + +var _trimEndInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim-end"); + +var _trimInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim"); + +var _startsWithInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/starts-with"); + +var _spliceInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/splice"); + +var _sortInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/sort"); + +var _someInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/some"); + +var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/slice"); + +var _reverseInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/reverse"); + +var _replaceAllInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/replace-all"); + +var _repeatInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/repeat"); + +var _reduceRightInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/reduce-right"); + +var _reduceInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/reduce"); + +var _padStartInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/pad-start"); + +var _padEndInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/pad-end"); + +var _matchAllInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/match-all"); + +var _mapInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/map"); + +var _lastIndexOfInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/last-index-of"); + +var _keysInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/keys"); + +var _indexOfInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/index-of"); + +var _includesInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/includes"); + +var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/for-each"); + +var _flatInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/flat"); + +var _flatMapInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/flat-map"); + +var _flagsInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/flags"); + +var _findIndexInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/find-index"); + +var _findInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/find"); + +var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/filter"); + +var _fillInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/fill"); + +var _everyInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/every"); + +var _entriesInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/entries"); + +var _endsWithInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/ends-with"); + +var _copyWithinInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/copy-within"); + +var _concatInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/concat"); + +var _codePointsInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/code-points"); + +var _codePointAtInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/code-point-at"); + +var _bindInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/bind"); + +var _atInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/at"); + +_atInstanceProperty(object); + +_bindInstanceProperty(object); + +_codePointAtInstanceProperty(object); + +_codePointsInstanceProperty(object); + +_concatInstanceProperty(object); + +_copyWithinInstanceProperty(object); + +_endsWithInstanceProperty(object); + +_entriesInstanceProperty(object); + +_everyInstanceProperty(object); + +_fillInstanceProperty(object); + +_filterInstanceProperty(object); + +_findInstanceProperty(object); + +_findIndexInstanceProperty(object); + +_flagsInstanceProperty(object); + +_flatMapInstanceProperty(object); + +_flatInstanceProperty(object); + +_forEachInstanceProperty(object); + +_includesInstanceProperty(object); + +_indexOfInstanceProperty(object); + +_keysInstanceProperty(object); + +_lastIndexOfInstanceProperty(object); + +_mapInstanceProperty(object); + +_matchAllInstanceProperty(object); + +_padEndInstanceProperty(object); + +_padStartInstanceProperty(object); + +_reduceInstanceProperty(object); + +_reduceRightInstanceProperty(object); + +_repeatInstanceProperty(object); + +_replaceAllInstanceProperty(object); + +_reverseInstanceProperty(object); + +_sliceInstanceProperty(object); + +_someInstanceProperty(object); + +_sortInstanceProperty(object); + +_spliceInstanceProperty(object); + +_startsWithInstanceProperty(object); + +_trimInstanceProperty(object); + +_trimEndInstanceProperty(object); + +_trimLeftInstanceProperty(object); + +_trimRightInstanceProperty(object); + +_trimStartInstanceProperty(object); + +_valuesInstanceProperty(object); + +object.something; + +_atInstanceProperty(object).call(object, arg); + +_bindInstanceProperty(object).call(object, arg); + +_codePointAtInstanceProperty(object).call(object, arg); + +_codePointsInstanceProperty(object).call(object, arg); + +_concatInstanceProperty(object).call(object, arg); + +_copyWithinInstanceProperty(object).call(object, arg); + +_endsWithInstanceProperty(object).call(object, arg); + +_entriesInstanceProperty(object).call(object, arg); + +_everyInstanceProperty(object).call(object, arg); + +_fillInstanceProperty(object).call(object, arg); + +_filterInstanceProperty(object).call(object, arg); + +_findInstanceProperty(object).call(object, arg); + +_findIndexInstanceProperty(object).call(object, arg); + +_flagsInstanceProperty(object).call(object, arg); + +_flatMapInstanceProperty(object).call(object, arg); + +_flatInstanceProperty(object).call(object, arg); + +_forEachInstanceProperty(object).call(object, arg); + +_includesInstanceProperty(object).call(object, arg); + +_indexOfInstanceProperty(object).call(object, arg); + +_keysInstanceProperty(object).call(object, arg); + +_lastIndexOfInstanceProperty(object).call(object, arg); + +_mapInstanceProperty(object).call(object, arg); + +_matchAllInstanceProperty(object).call(object, arg); + +_padEndInstanceProperty(object).call(object, arg); + +_padStartInstanceProperty(object).call(object, arg); + +_reduceInstanceProperty(object).call(object, arg); + +_reduceRightInstanceProperty(object).call(object, arg); + +_repeatInstanceProperty(object).call(object, arg); + +_replaceAllInstanceProperty(object).call(object, arg); + +_reverseInstanceProperty(object).call(object, arg); + +_sliceInstanceProperty(object).call(object, arg); + +_someInstanceProperty(object).call(object, arg); + +_sortInstanceProperty(object).call(object, arg); + +_spliceInstanceProperty(object).call(object, arg); + +_startsWithInstanceProperty(object).call(object, arg); + +_trimInstanceProperty(object).call(object, arg); + +_trimEndInstanceProperty(object).call(object, arg); + +_trimLeftInstanceProperty(object).call(object, arg); + +_trimRightInstanceProperty(object).call(object, arg); + +_trimStartInstanceProperty(object).call(object, arg); + +_valuesInstanceProperty(object).call(object, arg); + +_bindInstanceProperty(Function); + +object.something(arg); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/input.js new file mode 100644 index 0000000000..acc2a7ea7a --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/input.js @@ -0,0 +1,88 @@ +object.at; +object.bind; +object.codePointAt; +object.codePoints; +object.concat; +object.copyWithin; +object.endsWith; +object.entries; +object.every; +object.fill; +object.filter; +object.find; +object.findIndex; +object.flags; +object.flatMap; +object.flat; +object.forEach; +object.includes; +object.indexOf; +object.keys; +object.lastIndexOf; +object.map; +object.matchAll; +object.padEnd; +object.padStart; +object.reduce; +object.reduceRight; +object.repeat; +object.replaceAll; +object.reverse; +object.slice; +object.some; +object.sort; +object.splice; +object.startsWith; +object.trim; +object.trimEnd; +object.trimLeft; +object.trimRight; +object.trimStart; +object.values; +object.something; + +object.at(arg); +object.bind(arg); +object.codePointAt(arg); +object.codePoints(arg); +object.concat(arg); +object.copyWithin(arg); +object.endsWith(arg); +object.entries(arg); +object.every(arg); +object.fill(arg); +object.filter(arg); +object.find(arg); +object.findIndex(arg); +object.flags(arg); +object.flatMap(arg); +object.flat(arg); +object.forEach(arg); +object.includes(arg); +object.indexOf(arg); +object.keys(arg); +object.lastIndexOf(arg); +object.map(arg); +object.matchAll(arg); +object.padEnd(arg); +object.padStart(arg); +object.reduce(arg); +object.reduceRight(arg); +object.repeat(arg); +object.replaceAll(arg); +object.reverse(arg); +object.slice(arg); +object.some(arg); +object.sort(arg); +object.splice(arg); +object.startsWith(arg); +object.trim(arg); +object.trimEnd(arg); +object.trimLeft(arg); +object.trimRight(arg); +object.trimStart(arg); +object.values(arg); + +Function.bind + +object.something(arg); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/options.json new file mode 100644 index 0000000000..ea8bb9c3aa --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/output.js new file mode 100644 index 0000000000..8afcf57149 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-instance-methods/output.js @@ -0,0 +1,242 @@ +var _valuesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/values"); + +var _trimStartInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim-start"); + +var _trimRightInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim-right"); + +var _trimLeftInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim-left"); + +var _trimEndInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim-end"); + +var _trimInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim"); + +var _startsWithInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"); + +var _spliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/splice"); + +var _sortInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/sort"); + +var _someInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/some"); + +var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/slice"); + +var _reverseInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/reverse"); + +var _repeatInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/repeat"); + +var _reduceRightInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/reduce-right"); + +var _reduceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/reduce"); + +var _padStartInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/pad-start"); + +var _padEndInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/pad-end"); + +var _mapInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/map"); + +var _lastIndexOfInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/last-index-of"); + +var _keysInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/keys"); + +var _indexOfInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/index-of"); + +var _includesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/includes"); + +var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each"); + +var _flatInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/flat"); + +var _flatMapInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/flat-map"); + +var _flagsInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/flags"); + +var _findIndexInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/find-index"); + +var _findInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/find"); + +var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter"); + +var _fillInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/fill"); + +var _everyInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/every"); + +var _entriesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/entries"); + +var _endsWithInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/ends-with"); + +var _copyWithinInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/copy-within"); + +var _concatInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/concat"); + +var _codePointAtInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/code-point-at"); + +var _bindInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/bind"); + +object.at; + +_bindInstanceProperty(object); + +_codePointAtInstanceProperty(object); + +object.codePoints; + +_concatInstanceProperty(object); + +_copyWithinInstanceProperty(object); + +_endsWithInstanceProperty(object); + +_entriesInstanceProperty(object); + +_everyInstanceProperty(object); + +_fillInstanceProperty(object); + +_filterInstanceProperty(object); + +_findInstanceProperty(object); + +_findIndexInstanceProperty(object); + +_flagsInstanceProperty(object); + +_flatMapInstanceProperty(object); + +_flatInstanceProperty(object); + +_forEachInstanceProperty(object); + +_includesInstanceProperty(object); + +_indexOfInstanceProperty(object); + +_keysInstanceProperty(object); + +_lastIndexOfInstanceProperty(object); + +_mapInstanceProperty(object); + +object.matchAll; + +_padEndInstanceProperty(object); + +_padStartInstanceProperty(object); + +_reduceInstanceProperty(object); + +_reduceRightInstanceProperty(object); + +_repeatInstanceProperty(object); + +object.replaceAll; + +_reverseInstanceProperty(object); + +_sliceInstanceProperty(object); + +_someInstanceProperty(object); + +_sortInstanceProperty(object); + +_spliceInstanceProperty(object); + +_startsWithInstanceProperty(object); + +_trimInstanceProperty(object); + +_trimEndInstanceProperty(object); + +_trimLeftInstanceProperty(object); + +_trimRightInstanceProperty(object); + +_trimStartInstanceProperty(object); + +_valuesInstanceProperty(object); + +object.something; +object.at(arg); + +_bindInstanceProperty(object).call(object, arg); + +_codePointAtInstanceProperty(object).call(object, arg); + +object.codePoints(arg); + +_concatInstanceProperty(object).call(object, arg); + +_copyWithinInstanceProperty(object).call(object, arg); + +_endsWithInstanceProperty(object).call(object, arg); + +_entriesInstanceProperty(object).call(object, arg); + +_everyInstanceProperty(object).call(object, arg); + +_fillInstanceProperty(object).call(object, arg); + +_filterInstanceProperty(object).call(object, arg); + +_findInstanceProperty(object).call(object, arg); + +_findIndexInstanceProperty(object).call(object, arg); + +_flagsInstanceProperty(object).call(object, arg); + +_flatMapInstanceProperty(object).call(object, arg); + +_flatInstanceProperty(object).call(object, arg); + +_forEachInstanceProperty(object).call(object, arg); + +_includesInstanceProperty(object).call(object, arg); + +_indexOfInstanceProperty(object).call(object, arg); + +_keysInstanceProperty(object).call(object, arg); + +_lastIndexOfInstanceProperty(object).call(object, arg); + +_mapInstanceProperty(object).call(object, arg); + +object.matchAll(arg); + +_padEndInstanceProperty(object).call(object, arg); + +_padStartInstanceProperty(object).call(object, arg); + +_reduceInstanceProperty(object).call(object, arg); + +_reduceRightInstanceProperty(object).call(object, arg); + +_repeatInstanceProperty(object).call(object, arg); + +object.replaceAll(arg); + +_reverseInstanceProperty(object).call(object, arg); + +_sliceInstanceProperty(object).call(object, arg); + +_someInstanceProperty(object).call(object, arg); + +_sortInstanceProperty(object).call(object, arg); + +_spliceInstanceProperty(object).call(object, arg); + +_startsWithInstanceProperty(object).call(object, arg); + +_trimInstanceProperty(object).call(object, arg); + +_trimEndInstanceProperty(object).call(object, arg); + +_trimLeftInstanceProperty(object).call(object, arg); + +_trimRightInstanceProperty(object).call(object, arg); + +_trimStartInstanceProperty(object).call(object, arg); + +_valuesInstanceProperty(object).call(object, arg); + +_bindInstanceProperty(Function); + +object.something(arg); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/input.js new file mode 100644 index 0000000000..3406e76937 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/input.js @@ -0,0 +1,123 @@ +Array.from +Array.isArray +Array.of + +Date.now + +JSON.stringify + +Math.DEG_PER_RAD +Math.RAD_PER_DEG +Math.acosh +Math.asinh +Math.atanh +Math.cbrt +Math.clamp +Math.clz32 +Math.cosh +Math.degrees +Math.expm1 +Math.fround +Math.fscale +Math.hypot +Math.iaddh +Math.imul +Math.imulh +Math.isubh +Math.log10 +Math.log1p +Math.log2 +Math.radians +Math.scale +Math.seededPRNG +Math.sign +Math.signbit +Math.sinh +Math.tanh +Math.trunc +Math.umulh + +Number.EPSILON +Number.MAX_SAFE_INTEGER +Number.MIN_SAFE_INTEGER +Number.fromString +Number.isFinite +Number.isInteger +Number.isNaN +Number.isSafeInteger +Number.parseFloat +Number.parseInt + +Object.assign +Object.create +Object.defineProperties +Object.defineProperty +Object.entries +Object.freeze +Object.fromEntries +Object.getOwnPropertyDescriptor +Object.getOwnPropertyDescriptors +Object.getOwnPropertyNames +Object.getOwnPropertySymbols +Object.getPrototypeOf +Object.isExtensible +Object.isFrozen +Object.isSealed +Object.is +Object.keys +Object.preventExtensions +Object.seal +Object.setPrototypeOf +Object.values + +Reflect.apply +Reflect.construct +Reflect.defineMetadata +Reflect.defineProperty +Reflect.deleteMetadata +Reflect.deleteProperty +Reflect.getMetadata +Reflect.getMetadataKeys +Reflect.getOwnMetadata +Reflect.getOwnMetadataKeys +Reflect.getOwnPropertyDescriptor +Reflect.getPrototypeOf +Reflect.get +Reflect.has +Reflect.hasMetadata +Reflect.hasOwnMetadata +Reflect.isExtensible +Reflect.metadata +Reflect.ownKeys +Reflect.preventExtensions +Reflect.set +Reflect.setPrototypeOf + +String.fromCodePoint +String.raw + +Symbol.asyncIterator +Symbol.dispose +Symbol.for +Symbol.hasInstance +Symbol.isConcatSpreadable +Symbol.iterator +Symbol.keyFor +Symbol.match +Symbol.observable +Symbol.patternMatch +Symbol.replace +Symbol.search +Symbol.species +Symbol.split +Symbol.toPrimitive +Symbol.toStringTag +Symbol.unscopables + +Foo.bar +Array.something +Date.something +JSON.parse +Math.pow + +Symbol.something diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/options.json new file mode 100644 index 0000000000..1e8ea7d113 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": { "version": 3, "proposals": true } }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/output.js new file mode 100644 index 0000000000..179e6e640e --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods-proposals/output.js @@ -0,0 +1,329 @@ +var _Symbol = require("@babel/runtime-corejs3/core-js/symbol"); + +var _Symbol$unscopables = require("@babel/runtime-corejs3/core-js/symbol/unscopables"); + +var _Symbol$toStringTag = require("@babel/runtime-corejs3/core-js/symbol/to-string-tag"); + +var _Symbol$toPrimitive = require("@babel/runtime-corejs3/core-js/symbol/to-primitive"); + +var _Symbol$split = require("@babel/runtime-corejs3/core-js/symbol/split"); + +var _Symbol$species = require("@babel/runtime-corejs3/core-js/symbol/species"); + +var _Symbol$search = require("@babel/runtime-corejs3/core-js/symbol/search"); + +var _Symbol$replace = require("@babel/runtime-corejs3/core-js/symbol/replace"); + +var _Symbol$patternMatch = require("@babel/runtime-corejs3/core-js/symbol/pattern-match"); + +var _Symbol$observable = require("@babel/runtime-corejs3/core-js/symbol/observable"); + +var _Symbol$match = require("@babel/runtime-corejs3/core-js/symbol/match"); + +var _Symbol$keyFor = require("@babel/runtime-corejs3/core-js/symbol/key-for"); + +var _Symbol$iterator = require("@babel/runtime-corejs3/core-js/symbol/iterator"); + +var _Symbol$isConcatSpreadable = require("@babel/runtime-corejs3/core-js/symbol/is-concat-spreadable"); + +var _Symbol$hasInstance = require("@babel/runtime-corejs3/core-js/symbol/has-instance"); + +var _Symbol$for = require("@babel/runtime-corejs3/core-js/symbol/for"); + +var _Symbol$dispose = require("@babel/runtime-corejs3/core-js/symbol/dispose"); + +var _Symbol$asyncIterator = require("@babel/runtime-corejs3/core-js/symbol/async-iterator"); + +var _String$raw = require("@babel/runtime-corejs3/core-js/string/raw"); + +var _String$fromCodePoint = require("@babel/runtime-corejs3/core-js/string/from-code-point"); + +var _Reflect$setPrototypeOf = require("@babel/runtime-corejs3/core-js/reflect/set-prototype-of"); + +var _Reflect$set = require("@babel/runtime-corejs3/core-js/reflect/set"); + +var _Reflect$preventExtensions = require("@babel/runtime-corejs3/core-js/reflect/prevent-extensions"); + +var _Reflect$ownKeys = require("@babel/runtime-corejs3/core-js/reflect/own-keys"); + +var _Reflect$metadata = require("@babel/runtime-corejs3/core-js/reflect/metadata"); + +var _Reflect$isExtensible = require("@babel/runtime-corejs3/core-js/reflect/is-extensible"); + +var _Reflect$hasOwnMetadata = require("@babel/runtime-corejs3/core-js/reflect/has-own-metadata"); + +var _Reflect$hasMetadata = require("@babel/runtime-corejs3/core-js/reflect/has-metadata"); + +var _Reflect$has = require("@babel/runtime-corejs3/core-js/reflect/has"); + +var _Reflect$get = require("@babel/runtime-corejs3/core-js/reflect/get"); + +var _Reflect$getPrototypeOf = require("@babel/runtime-corejs3/core-js/reflect/get-prototype-of"); + +var _Reflect$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js/reflect/get-own-property-descriptor"); + +var _Reflect$getOwnMetadataKeys = require("@babel/runtime-corejs3/core-js/reflect/get-own-metadata-keys"); + +var _Reflect$getOwnMetadata = require("@babel/runtime-corejs3/core-js/reflect/get-own-metadata"); + +var _Reflect$getMetadataKeys = require("@babel/runtime-corejs3/core-js/reflect/get-metadata-keys"); + +var _Reflect$getMetadata = require("@babel/runtime-corejs3/core-js/reflect/get-metadata"); + +var _Reflect$deleteProperty = require("@babel/runtime-corejs3/core-js/reflect/delete-property"); + +var _Reflect$deleteMetadata = require("@babel/runtime-corejs3/core-js/reflect/delete-metadata"); + +var _Reflect$defineProperty = require("@babel/runtime-corejs3/core-js/reflect/define-property"); + +var _Reflect$defineMetadata = require("@babel/runtime-corejs3/core-js/reflect/define-metadata"); + +var _Reflect$construct = require("@babel/runtime-corejs3/core-js/reflect/construct"); + +var _Reflect$apply = require("@babel/runtime-corejs3/core-js/reflect/apply"); + +var _Object$values = require("@babel/runtime-corejs3/core-js/object/values"); + +var _Object$setPrototypeOf = require("@babel/runtime-corejs3/core-js/object/set-prototype-of"); + +var _Object$seal = require("@babel/runtime-corejs3/core-js/object/seal"); + +var _Object$preventExtensions = require("@babel/runtime-corejs3/core-js/object/prevent-extensions"); + +var _Object$keys = require("@babel/runtime-corejs3/core-js/object/keys"); + +var _Object$is = require("@babel/runtime-corejs3/core-js/object/is"); + +var _Object$isSealed = require("@babel/runtime-corejs3/core-js/object/is-sealed"); + +var _Object$isFrozen = require("@babel/runtime-corejs3/core-js/object/is-frozen"); + +var _Object$isExtensible = require("@babel/runtime-corejs3/core-js/object/is-extensible"); + +var _Object$getPrototypeOf = require("@babel/runtime-corejs3/core-js/object/get-prototype-of"); + +var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js/object/get-own-property-symbols"); + +var _Object$getOwnPropertyNames = require("@babel/runtime-corejs3/core-js/object/get-own-property-names"); + +var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js/object/get-own-property-descriptors"); + +var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js/object/get-own-property-descriptor"); + +var _Object$fromEntries = require("@babel/runtime-corejs3/core-js/object/from-entries"); + +var _Object$freeze = require("@babel/runtime-corejs3/core-js/object/freeze"); + +var _Object$entries = require("@babel/runtime-corejs3/core-js/object/entries"); + +var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property"); + +var _Object$defineProperties = require("@babel/runtime-corejs3/core-js/object/define-properties"); + +var _Object$create = require("@babel/runtime-corejs3/core-js/object/create"); + +var _Object$assign = require("@babel/runtime-corejs3/core-js/object/assign"); + +var _Number$parseInt = require("@babel/runtime-corejs3/core-js/number/parse-int"); + +var _Number$parseFloat = require("@babel/runtime-corejs3/core-js/number/parse-float"); + +var _Number$isSafeInteger = require("@babel/runtime-corejs3/core-js/number/is-safe-integer"); + +var _Number$isNaN = require("@babel/runtime-corejs3/core-js/number/is-nan"); + +var _Number$isInteger = require("@babel/runtime-corejs3/core-js/number/is-integer"); + +var _Number$isFinite = require("@babel/runtime-corejs3/core-js/number/is-finite"); + +var _Number$fromString = require("@babel/runtime-corejs3/core-js/number/from-string"); + +var _Number$MIN_SAFE_INTEGER = require("@babel/runtime-corejs3/core-js/number/min-safe-integer"); + +var _Number$MAX_SAFE_INTEGER = require("@babel/runtime-corejs3/core-js/number/max-safe-integer"); + +var _Number$EPSILON = require("@babel/runtime-corejs3/core-js/number/epsilon"); + +var _Math$umulh = require("@babel/runtime-corejs3/core-js/math/umulh"); + +var _Math$trunc = require("@babel/runtime-corejs3/core-js/math/trunc"); + +var _Math$tanh = require("@babel/runtime-corejs3/core-js/math/tanh"); + +var _Math$sinh = require("@babel/runtime-corejs3/core-js/math/sinh"); + +var _Math$signbit = require("@babel/runtime-corejs3/core-js/math/signbit"); + +var _Math$sign = require("@babel/runtime-corejs3/core-js/math/sign"); + +var _Math$seededPRNG = require("@babel/runtime-corejs3/core-js/math/seeded-prng"); + +var _Math$scale = require("@babel/runtime-corejs3/core-js/math/scale"); + +var _Math$radians = require("@babel/runtime-corejs3/core-js/math/radians"); + +var _Math$log2 = require("@babel/runtime-corejs3/core-js/math/log2"); + +var _Math$log1p = require("@babel/runtime-corejs3/core-js/math/log1p"); + +var _Math$log = require("@babel/runtime-corejs3/core-js/math/log10"); + +var _Math$isubh = require("@babel/runtime-corejs3/core-js/math/isubh"); + +var _Math$imulh = require("@babel/runtime-corejs3/core-js/math/imulh"); + +var _Math$imul = require("@babel/runtime-corejs3/core-js/math/imul"); + +var _Math$iaddh = require("@babel/runtime-corejs3/core-js/math/iaddh"); + +var _Math$hypot = require("@babel/runtime-corejs3/core-js/math/hypot"); + +var _Math$fscale = require("@babel/runtime-corejs3/core-js/math/fscale"); + +var _Math$fround = require("@babel/runtime-corejs3/core-js/math/fround"); + +var _Math$expm = require("@babel/runtime-corejs3/core-js/math/expm1"); + +var _Math$degrees = require("@babel/runtime-corejs3/core-js/math/degrees"); + +var _Math$cosh = require("@babel/runtime-corejs3/core-js/math/cosh"); + +var _Math$clz = require("@babel/runtime-corejs3/core-js/math/clz32"); + +var _Math$clamp = require("@babel/runtime-corejs3/core-js/math/clamp"); + +var _Math$cbrt = require("@babel/runtime-corejs3/core-js/math/cbrt"); + +var _Math$atanh = require("@babel/runtime-corejs3/core-js/math/atanh"); + +var _Math$asinh = require("@babel/runtime-corejs3/core-js/math/asinh"); + +var _Math$acosh = require("@babel/runtime-corejs3/core-js/math/acosh"); + +var _Math$RAD_PER_DEG = require("@babel/runtime-corejs3/core-js/math/rad-per-deg"); + +var _Math$DEG_PER_RAD = require("@babel/runtime-corejs3/core-js/math/deg-per-rad"); + +var _JSON$stringify = require("@babel/runtime-corejs3/core-js/json/stringify"); + +var _Date$now = require("@babel/runtime-corejs3/core-js/date/now"); + +var _Array$of = require("@babel/runtime-corejs3/core-js/array/of"); + +var _Array$isArray = require("@babel/runtime-corejs3/core-js/array/is-array"); + +var _Array$from = require("@babel/runtime-corejs3/core-js/array/from"); + +_Array$from; +_Array$isArray; +_Array$of; +_Date$now; +_JSON$stringify; +_Math$DEG_PER_RAD; +_Math$RAD_PER_DEG; +_Math$acosh; +_Math$asinh; +_Math$atanh; +_Math$cbrt; +_Math$clamp; +_Math$clz; +_Math$cosh; +_Math$degrees; +_Math$expm; +_Math$fround; +_Math$fscale; +_Math$hypot; +_Math$iaddh; +_Math$imul; +_Math$imulh; +_Math$isubh; +_Math$log; +_Math$log1p; +_Math$log2; +_Math$radians; +_Math$scale; +_Math$seededPRNG; +_Math$sign; +_Math$signbit; +_Math$sinh; +_Math$tanh; +_Math$trunc; +_Math$umulh; +_Number$EPSILON; +_Number$MAX_SAFE_INTEGER; +_Number$MIN_SAFE_INTEGER; +_Number$fromString; +_Number$isFinite; +_Number$isInteger; +_Number$isNaN; +_Number$isSafeInteger; +_Number$parseFloat; +_Number$parseInt; +_Object$assign; +_Object$create; +_Object$defineProperties; +_Object$defineProperty; +_Object$entries; +_Object$freeze; +_Object$fromEntries; +_Object$getOwnPropertyDescriptor; +_Object$getOwnPropertyDescriptors; +_Object$getOwnPropertyNames; +_Object$getOwnPropertySymbols; +_Object$getPrototypeOf; +_Object$isExtensible; +_Object$isFrozen; +_Object$isSealed; +_Object$is; +_Object$keys; +_Object$preventExtensions; +_Object$seal; +_Object$setPrototypeOf; +_Object$values; +_Reflect$apply; +_Reflect$construct; +_Reflect$defineMetadata; +_Reflect$defineProperty; +_Reflect$deleteMetadata; +_Reflect$deleteProperty; +_Reflect$getMetadata; +_Reflect$getMetadataKeys; +_Reflect$getOwnMetadata; +_Reflect$getOwnMetadataKeys; +_Reflect$getOwnPropertyDescriptor; +_Reflect$getPrototypeOf; +_Reflect$get; +_Reflect$has; +_Reflect$hasMetadata; +_Reflect$hasOwnMetadata; +_Reflect$isExtensible; +_Reflect$metadata; +_Reflect$ownKeys; +_Reflect$preventExtensions; +_Reflect$set; +_Reflect$setPrototypeOf; +_String$fromCodePoint; +_String$raw; +_Symbol$asyncIterator; +_Symbol$dispose; +_Symbol$for; +_Symbol$hasInstance; +_Symbol$isConcatSpreadable; +_Symbol$iterator; +_Symbol$keyFor; +_Symbol$match; +_Symbol$observable; +_Symbol$patternMatch; +_Symbol$replace; +_Symbol$search; +_Symbol$species; +_Symbol$split; +_Symbol$toPrimitive; +_Symbol$toStringTag; +_Symbol$unscopables; +Foo.bar; +Array.something; +Date.something; +JSON.parse; +Math.pow; +_Symbol.something; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/input.js new file mode 100644 index 0000000000..3406e76937 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/input.js @@ -0,0 +1,123 @@ +Array.from +Array.isArray +Array.of + +Date.now + +JSON.stringify + +Math.DEG_PER_RAD +Math.RAD_PER_DEG +Math.acosh +Math.asinh +Math.atanh +Math.cbrt +Math.clamp +Math.clz32 +Math.cosh +Math.degrees +Math.expm1 +Math.fround +Math.fscale +Math.hypot +Math.iaddh +Math.imul +Math.imulh +Math.isubh +Math.log10 +Math.log1p +Math.log2 +Math.radians +Math.scale +Math.seededPRNG +Math.sign +Math.signbit +Math.sinh +Math.tanh +Math.trunc +Math.umulh + +Number.EPSILON +Number.MAX_SAFE_INTEGER +Number.MIN_SAFE_INTEGER +Number.fromString +Number.isFinite +Number.isInteger +Number.isNaN +Number.isSafeInteger +Number.parseFloat +Number.parseInt + +Object.assign +Object.create +Object.defineProperties +Object.defineProperty +Object.entries +Object.freeze +Object.fromEntries +Object.getOwnPropertyDescriptor +Object.getOwnPropertyDescriptors +Object.getOwnPropertyNames +Object.getOwnPropertySymbols +Object.getPrototypeOf +Object.isExtensible +Object.isFrozen +Object.isSealed +Object.is +Object.keys +Object.preventExtensions +Object.seal +Object.setPrototypeOf +Object.values + +Reflect.apply +Reflect.construct +Reflect.defineMetadata +Reflect.defineProperty +Reflect.deleteMetadata +Reflect.deleteProperty +Reflect.getMetadata +Reflect.getMetadataKeys +Reflect.getOwnMetadata +Reflect.getOwnMetadataKeys +Reflect.getOwnPropertyDescriptor +Reflect.getPrototypeOf +Reflect.get +Reflect.has +Reflect.hasMetadata +Reflect.hasOwnMetadata +Reflect.isExtensible +Reflect.metadata +Reflect.ownKeys +Reflect.preventExtensions +Reflect.set +Reflect.setPrototypeOf + +String.fromCodePoint +String.raw + +Symbol.asyncIterator +Symbol.dispose +Symbol.for +Symbol.hasInstance +Symbol.isConcatSpreadable +Symbol.iterator +Symbol.keyFor +Symbol.match +Symbol.observable +Symbol.patternMatch +Symbol.replace +Symbol.search +Symbol.species +Symbol.split +Symbol.toPrimitive +Symbol.toStringTag +Symbol.unscopables + +Foo.bar +Array.something +Date.something +JSON.parse +Math.pow + +Symbol.something diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/options.json new file mode 100644 index 0000000000..ea8bb9c3aa --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/output.js new file mode 100644 index 0000000000..28156f8a6e --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/built-in-static-methods/output.js @@ -0,0 +1,277 @@ +var _Symbol$unscopables = require("@babel/runtime-corejs3/core-js-stable/symbol/unscopables"); + +var _Symbol$toStringTag = require("@babel/runtime-corejs3/core-js-stable/symbol/to-string-tag"); + +var _Symbol$toPrimitive = require("@babel/runtime-corejs3/core-js-stable/symbol/to-primitive"); + +var _Symbol$split = require("@babel/runtime-corejs3/core-js-stable/symbol/split"); + +var _Symbol$species = require("@babel/runtime-corejs3/core-js-stable/symbol/species"); + +var _Symbol$search = require("@babel/runtime-corejs3/core-js-stable/symbol/search"); + +var _Symbol$replace = require("@babel/runtime-corejs3/core-js-stable/symbol/replace"); + +var _Symbol$match = require("@babel/runtime-corejs3/core-js-stable/symbol/match"); + +var _Symbol$keyFor = require("@babel/runtime-corejs3/core-js-stable/symbol/key-for"); + +var _Symbol$iterator = require("@babel/runtime-corejs3/core-js-stable/symbol/iterator"); + +var _Symbol$isConcatSpreadable = require("@babel/runtime-corejs3/core-js-stable/symbol/is-concat-spreadable"); + +var _Symbol$hasInstance = require("@babel/runtime-corejs3/core-js-stable/symbol/has-instance"); + +var _Symbol$for = require("@babel/runtime-corejs3/core-js-stable/symbol/for"); + +var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol"); + +var _Symbol$asyncIterator = require("@babel/runtime-corejs3/core-js-stable/symbol/async-iterator"); + +var _String$raw = require("@babel/runtime-corejs3/core-js-stable/string/raw"); + +var _String$fromCodePoint = require("@babel/runtime-corejs3/core-js-stable/string/from-code-point"); + +var _Reflect$setPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/reflect/set-prototype-of"); + +var _Reflect$set = require("@babel/runtime-corejs3/core-js-stable/reflect/set"); + +var _Reflect$preventExtensions = require("@babel/runtime-corejs3/core-js-stable/reflect/prevent-extensions"); + +var _Reflect$ownKeys = require("@babel/runtime-corejs3/core-js-stable/reflect/own-keys"); + +var _Reflect$isExtensible = require("@babel/runtime-corejs3/core-js-stable/reflect/is-extensible"); + +var _Reflect$has = require("@babel/runtime-corejs3/core-js-stable/reflect/has"); + +var _Reflect$get = require("@babel/runtime-corejs3/core-js-stable/reflect/get"); + +var _Reflect$getPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/reflect/get-prototype-of"); + +var _Reflect$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/reflect/get-own-property-descriptor"); + +var _Reflect$deleteProperty = require("@babel/runtime-corejs3/core-js-stable/reflect/delete-property"); + +var _Reflect$defineProperty = require("@babel/runtime-corejs3/core-js-stable/reflect/define-property"); + +var _Reflect$construct = require("@babel/runtime-corejs3/core-js-stable/reflect/construct"); + +var _Reflect$apply = require("@babel/runtime-corejs3/core-js-stable/reflect/apply"); + +var _Object$values = require("@babel/runtime-corejs3/core-js-stable/object/values"); + +var _Object$setPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/object/set-prototype-of"); + +var _Object$seal = require("@babel/runtime-corejs3/core-js-stable/object/seal"); + +var _Object$preventExtensions = require("@babel/runtime-corejs3/core-js-stable/object/prevent-extensions"); + +var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys"); + +var _Object$is = require("@babel/runtime-corejs3/core-js-stable/object/is"); + +var _Object$isSealed = require("@babel/runtime-corejs3/core-js-stable/object/is-sealed"); + +var _Object$isFrozen = require("@babel/runtime-corejs3/core-js-stable/object/is-frozen"); + +var _Object$isExtensible = require("@babel/runtime-corejs3/core-js-stable/object/is-extensible"); + +var _Object$getPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/object/get-prototype-of"); + +var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"); + +var _Object$getOwnPropertyNames = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-names"); + +var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors"); + +var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor"); + +var _Object$fromEntries = require("@babel/runtime-corejs3/core-js-stable/object/from-entries"); + +var _Object$freeze = require("@babel/runtime-corejs3/core-js-stable/object/freeze"); + +var _Object$entries = require("@babel/runtime-corejs3/core-js-stable/object/entries"); + +var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); + +var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties"); + +var _Object$create = require("@babel/runtime-corejs3/core-js-stable/object/create"); + +var _Object$assign = require("@babel/runtime-corejs3/core-js-stable/object/assign"); + +var _Number$parseInt = require("@babel/runtime-corejs3/core-js-stable/number/parse-int"); + +var _Number$parseFloat = require("@babel/runtime-corejs3/core-js-stable/number/parse-float"); + +var _Number$isSafeInteger = require("@babel/runtime-corejs3/core-js-stable/number/is-safe-integer"); + +var _Number$isNaN = require("@babel/runtime-corejs3/core-js-stable/number/is-nan"); + +var _Number$isInteger = require("@babel/runtime-corejs3/core-js-stable/number/is-integer"); + +var _Number$isFinite = require("@babel/runtime-corejs3/core-js-stable/number/is-finite"); + +var _Number$MIN_SAFE_INTEGER = require("@babel/runtime-corejs3/core-js-stable/number/min-safe-integer"); + +var _Number$MAX_SAFE_INTEGER = require("@babel/runtime-corejs3/core-js-stable/number/max-safe-integer"); + +var _Number$EPSILON = require("@babel/runtime-corejs3/core-js-stable/number/epsilon"); + +var _Math$trunc = require("@babel/runtime-corejs3/core-js-stable/math/trunc"); + +var _Math$tanh = require("@babel/runtime-corejs3/core-js-stable/math/tanh"); + +var _Math$sinh = require("@babel/runtime-corejs3/core-js-stable/math/sinh"); + +var _Math$sign = require("@babel/runtime-corejs3/core-js-stable/math/sign"); + +var _Math$log2 = require("@babel/runtime-corejs3/core-js-stable/math/log2"); + +var _Math$log1p = require("@babel/runtime-corejs3/core-js-stable/math/log1p"); + +var _Math$log = require("@babel/runtime-corejs3/core-js-stable/math/log10"); + +var _Math$imul = require("@babel/runtime-corejs3/core-js-stable/math/imul"); + +var _Math$hypot = require("@babel/runtime-corejs3/core-js-stable/math/hypot"); + +var _Math$fround = require("@babel/runtime-corejs3/core-js-stable/math/fround"); + +var _Math$expm = require("@babel/runtime-corejs3/core-js-stable/math/expm1"); + +var _Math$cosh = require("@babel/runtime-corejs3/core-js-stable/math/cosh"); + +var _Math$clz = require("@babel/runtime-corejs3/core-js-stable/math/clz32"); + +var _Math$cbrt = require("@babel/runtime-corejs3/core-js-stable/math/cbrt"); + +var _Math$atanh = require("@babel/runtime-corejs3/core-js-stable/math/atanh"); + +var _Math$asinh = require("@babel/runtime-corejs3/core-js-stable/math/asinh"); + +var _Math$acosh = require("@babel/runtime-corejs3/core-js-stable/math/acosh"); + +var _JSON$stringify = require("@babel/runtime-corejs3/core-js-stable/json/stringify"); + +var _Date$now = require("@babel/runtime-corejs3/core-js-stable/date/now"); + +var _Array$of = require("@babel/runtime-corejs3/core-js-stable/array/of"); + +var _Array$isArray = require("@babel/runtime-corejs3/core-js-stable/array/is-array"); + +var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from"); + +_Array$from; +_Array$isArray; +_Array$of; +_Date$now; +_JSON$stringify; +Math.DEG_PER_RAD; +Math.RAD_PER_DEG; +_Math$acosh; +_Math$asinh; +_Math$atanh; +_Math$cbrt; +Math.clamp; +_Math$clz; +_Math$cosh; +Math.degrees; +_Math$expm; +_Math$fround; +Math.fscale; +_Math$hypot; +Math.iaddh; +_Math$imul; +Math.imulh; +Math.isubh; +_Math$log; +_Math$log1p; +_Math$log2; +Math.radians; +Math.scale; +Math.seededPRNG; +_Math$sign; +Math.signbit; +_Math$sinh; +_Math$tanh; +_Math$trunc; +Math.umulh; +_Number$EPSILON; +_Number$MAX_SAFE_INTEGER; +_Number$MIN_SAFE_INTEGER; +Number.fromString; +_Number$isFinite; +_Number$isInteger; +_Number$isNaN; +_Number$isSafeInteger; +_Number$parseFloat; +_Number$parseInt; +_Object$assign; +_Object$create; +_Object$defineProperties; +_Object$defineProperty; +_Object$entries; +_Object$freeze; +_Object$fromEntries; +_Object$getOwnPropertyDescriptor; +_Object$getOwnPropertyDescriptors; +_Object$getOwnPropertyNames; +_Object$getOwnPropertySymbols; +_Object$getPrototypeOf; +_Object$isExtensible; +_Object$isFrozen; +_Object$isSealed; +_Object$is; +_Object$keys; +_Object$preventExtensions; +_Object$seal; +_Object$setPrototypeOf; +_Object$values; +_Reflect$apply; +_Reflect$construct; +Reflect.defineMetadata; +_Reflect$defineProperty; +Reflect.deleteMetadata; +_Reflect$deleteProperty; +Reflect.getMetadata; +Reflect.getMetadataKeys; +Reflect.getOwnMetadata; +Reflect.getOwnMetadataKeys; +_Reflect$getOwnPropertyDescriptor; +_Reflect$getPrototypeOf; +_Reflect$get; +_Reflect$has; +Reflect.hasMetadata; +Reflect.hasOwnMetadata; +_Reflect$isExtensible; +Reflect.metadata; +_Reflect$ownKeys; +_Reflect$preventExtensions; +_Reflect$set; +_Reflect$setPrototypeOf; +_String$fromCodePoint; +_String$raw; +_Symbol$asyncIterator; +_Symbol.dispose; +_Symbol$for; +_Symbol$hasInstance; +_Symbol$isConcatSpreadable; +_Symbol$iterator; +_Symbol$keyFor; +_Symbol$match; +_Symbol.observable; +_Symbol.patternMatch; +_Symbol$replace; +_Symbol$search; +_Symbol$species; +_Symbol$split; +_Symbol$toPrimitive; +_Symbol$toStringTag; +_Symbol$unscopables; +Foo.bar; +Array.something; +Date.something; +JSON.parse; +Math.pow; +_Symbol.something; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/input.js new file mode 100644 index 0000000000..8e9b315294 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/input.js @@ -0,0 +1 @@ +Promise.resolve; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/options.json new file mode 100644 index 0000000000..e41c386f01 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/output.js new file mode 100644 index 0000000000..5e5d7dce02 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/catch-all/output.js @@ -0,0 +1,3 @@ +var _Promise = require("@babel/runtime-corejs3/core-js-stable/promise"); + +_Promise.resolve; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/input.js new file mode 100644 index 0000000000..4e6a6de653 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/input.js @@ -0,0 +1 @@ +class Foo {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/options.json new file mode 100644 index 0000000000..e7b25dd45e --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }], "transform-classes"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/output.js new file mode 100644 index 0000000000..093be2446f --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/class/output.js @@ -0,0 +1,7 @@ +var _classCallCheck = require("@babel/runtime-corejs3/helpers/classCallCheck"); + +let Foo = function Foo() { + "use strict"; + + _classCallCheck(this, Foo); +}; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/input.js new file mode 100644 index 0000000000..48e5f59b2c --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/input.js @@ -0,0 +1,3 @@ +for (var i of arr) { + +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/options.json new file mode 100644 index 0000000000..79f4e0ec10 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-for-of", ["transform-runtime", { "corejs": 3 }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/output.js new file mode 100644 index 0000000000..2bb4ba66cb --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/es6-for-of/output.js @@ -0,0 +1,24 @@ +var _getIterator = require("@babel/runtime-corejs3/core-js/get-iterator"); + +var _iteratorNormalCompletion = true; +var _didIteratorError = false; +var _iteratorError = undefined; + +try { + for (var _iterator = _getIterator(arr), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var i = _step.value; + } +} catch (err) { + _didIteratorError = true; + _iteratorError = err; +} finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/input.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/input.mjs new file mode 100644 index 0000000000..0340999129 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/input.mjs @@ -0,0 +1,9 @@ +import foo, * as bar from "someModule"; + +export const myWord = Symbol("abc"); +export function* giveWord () { + yield myWord; +} + +foo; +bar; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/options.json new file mode 100644 index 0000000000..e41c386f01 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/output.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/output.mjs new file mode 100644 index 0000000000..e0183d2e2a --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/full/output.mjs @@ -0,0 +1,24 @@ +import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator"; +import _Symbol from "@babel/runtime-corejs3/core-js-stable/symbol"; + +var _marked = +/*#__PURE__*/ +_regeneratorRuntime.mark(giveWord); + +import foo, * as bar from "someModule"; +export const myWord = _Symbol("abc"); +export function giveWord() { + return _regeneratorRuntime.wrap(function giveWord$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return myWord; + + case 2: + case "end": + return _context.stop(); + } + }, _marked); +} +foo; +bar; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/input.js new file mode 100644 index 0000000000..ba560a3e3e --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/input.js @@ -0,0 +1,7 @@ +foo.includes(1, 2, 3, 4); + +[1, 2, 3, 4].includes(1); + +'1234'.includes('1'); + +keys(bar).includes(1, 2); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/options.json new file mode 100644 index 0000000000..ea8bb9c3aa --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/output.js new file mode 100644 index 0000000000..36aa68a819 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-call/output.js @@ -0,0 +1,11 @@ +var _includesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/includes"); + +var _context, _context2, _context3; + +_includesInstanceProperty(foo).call(foo, 1, 2, 3, 4); + +_includesInstanceProperty(_context = [1, 2, 3, 4]).call(_context, 1); + +_includesInstanceProperty(_context2 = '1234').call(_context2, '1'); + +_includesInstanceProperty(_context3 = keys(bar)).call(_context3, 1, 2); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/input.js new file mode 100644 index 0000000000..058b73e37a --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/input.js @@ -0,0 +1,7 @@ +foo.includes; + +keys(bar).includes; + +foo.includes.apply(bar, [1, 2]); + +foo.includes = 42; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/options.json new file mode 100644 index 0000000000..ea8bb9c3aa --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/output.js new file mode 100644 index 0000000000..ae165e25b1 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/instance-get/output.js @@ -0,0 +1,9 @@ +var _includesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/includes"); + +_includesInstanceProperty(foo); + +_includesInstanceProperty(keys(bar)); + +_includesInstanceProperty(foo).apply(bar, [1, 2]); + +foo.includes = 42; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/input.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/input.mjs new file mode 100644 index 0000000000..368b106310 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/input.mjs @@ -0,0 +1,5 @@ +import foo from "foo"; + +class Example { + method() {} +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/options.json new file mode 100644 index 0000000000..364602872e --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/options.json @@ -0,0 +1,7 @@ +{ + "plugins": [ + ["transform-runtime", { "corejs": 3 }], + "transform-modules-commonjs", + "transform-classes" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/output.js new file mode 100644 index 0000000000..cef08c661a --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-helpers/output.js @@ -0,0 +1,23 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass")); + +var _foo = _interopRequireDefault(require("foo")); + +let Example = +/*#__PURE__*/ +function () { + function Example() { + (0, _classCallCheck2.default)(this, Example); + } + + (0, _createClass2.default)(Example, [{ + key: "method", + value: function method() {} + }]); + return Example; +}(); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/input.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/input.mjs new file mode 100644 index 0000000000..95dcac89ee --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/input.mjs @@ -0,0 +1,5 @@ +import foo from "bar"; +import { baz } from "fuz"; + +export const exp = foo + baz; +export * from "mod"; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/options.json new file mode 100644 index 0000000000..259d5d9651 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + ["transform-runtime", { "corejs": 3 }], + ["transform-modules-commonjs", { "loose": true }] + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/output.js new file mode 100644 index 0000000000..2a1a8fe7aa --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules-loose/output.js @@ -0,0 +1,30 @@ +"use strict"; + +var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys"); + +var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each"); + +var _context; + +var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); + +exports.__esModule = true; +var _exportNames = { + exp: true +}; +exports.exp = void 0; + +var _bar = _interopRequireDefault(require("bar")); + +var _fuz = require("fuz"); + +var _mod = require("mod"); + +_forEachInstanceProperty(_context = _Object$keys(_mod)).call(_context, function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + exports[key] = _mod[key]; +}); + +const exp = _bar.default + _fuz.baz; +exports.exp = exp; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/input.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/input.mjs new file mode 100644 index 0000000000..55ed3b8abc --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/input.mjs @@ -0,0 +1,5 @@ +import foo from "bar"; +import { baz } from "fuz"; + +export const exp = foo + baz; +export * from "mod"; \ No newline at end of file diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/options.json new file mode 100644 index 0000000000..35b3816c5f --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + ["transform-runtime", { "corejs": 3 }], + "transform-modules-commonjs" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/output.js new file mode 100644 index 0000000000..75793607c4 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/modules/output.js @@ -0,0 +1,41 @@ +"use strict"; + +var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys"); + +var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each"); + +var _context; + +var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); + +var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); + +_Object$defineProperty(exports, "__esModule", { + value: true +}); + +var _exportNames = { + exp: true +}; +exports.exp = void 0; + +var _bar = _interopRequireDefault(require("bar")); + +var _fuz = require("fuz"); + +var _mod = require("mod"); + +_forEachInstanceProperty(_context = _Object$keys(_mod)).call(_context, function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + + _Object$defineProperty(exports, key, { + enumerable: true, + get: function () { + return _mod[key]; + } + }); +}); + +const exp = _bar.default + _fuz.baz; +exports.exp = exp; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/input.js new file mode 100644 index 0000000000..4e6a6de653 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/input.js @@ -0,0 +1 @@ +class Foo {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/options.json new file mode 100644 index 0000000000..9a112ff067 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + ["transform-runtime", { "helpers": false, "corejs": 3 }], + "transform-classes" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/output.js new file mode 100644 index 0000000000..b8dfb31983 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/no-helpers/output.js @@ -0,0 +1,7 @@ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +let Foo = function Foo() { + "use strict"; + + _classCallCheck(this, Foo); +}; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/input.js new file mode 100644 index 0000000000..ae6cc4d8c8 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/input.js @@ -0,0 +1,2 @@ +void function* () { +}; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/options.json new file mode 100644 index 0000000000..e41c386f01 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/output.js new file mode 100644 index 0000000000..217ed8f6dc --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/regenerator-runtime/output.js @@ -0,0 +1,13 @@ +var _regeneratorRuntime = require("@babel/runtime-corejs3/regenerator"); + +void +/*#__PURE__*/ +_regeneratorRuntime.mark(function _callee() { + return _regeneratorRuntime.wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + case "end": + return _context.stop(); + } + }, _callee); +}); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/input.js new file mode 100644 index 0000000000..7bb9c5a936 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/input.js @@ -0,0 +1 @@ +const method = array[Symbol.iterator]; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/options.json new file mode 100644 index 0000000000..e41c386f01 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/output.js new file mode 100644 index 0000000000..4b9498983c --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get-method/output.js @@ -0,0 +1,3 @@ +var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method"); + +const method = _getIteratorMethod(array); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/input.js new file mode 100644 index 0000000000..7064b69069 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/input.js @@ -0,0 +1 @@ +const iterator = array[Symbol.iterator](); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/options.json new file mode 100644 index 0000000000..e41c386f01 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/output.js new file mode 100644 index 0000000000..2627981407 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-get/output.js @@ -0,0 +1,3 @@ +var _getIterator = require("@babel/runtime-corejs3/core-js/get-iterator"); + +const iterator = _getIterator(array); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/input.js new file mode 100644 index 0000000000..49e71aa52d --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/input.js @@ -0,0 +1 @@ +Symbol.iterator in Object(arr); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/options.json new file mode 100644 index 0000000000..e41c386f01 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/output.js new file mode 100644 index 0000000000..42b70766ac --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator-in/output.js @@ -0,0 +1,3 @@ +var _isIterable = require("@babel/runtime-corejs3/core-js/is-iterable"); + +_isIterable(Object(arr)); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/input.js new file mode 100644 index 0000000000..ae1f0b9df5 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/input.js @@ -0,0 +1 @@ +Symbol.iterator; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/options.json new file mode 100644 index 0000000000..e41c386f01 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/output.js new file mode 100644 index 0000000000..936e448575 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs3/symbol-iterator/output.js @@ -0,0 +1,3 @@ +var _Symbol$iterator = require("@babel/runtime-corejs3/core-js-stable/symbol/iterator"); + +_Symbol$iterator; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/abstract-class-decorated-method/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/class/abstract-class-decorated-method/output.mjs index e3ef6d9da4..ab375fbe48 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/abstract-class-decorated-method/output.mjs +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/abstract-class-decorated-method/output.mjs @@ -1,6 +1,6 @@ var _class; -function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; } import { computed } from 'mobx'; let Foo = (_class = class Foo { diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/abstract-class-decorated-parameter/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/class/abstract-class-decorated-parameter/output.mjs index f595936988..e8982550ef 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/abstract-class-decorated-parameter/output.mjs +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/abstract-class-decorated-parameter/output.mjs @@ -1,6 +1,6 @@ var _class, _descriptor; -function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.'); } diff --git a/packages/babel-polyfill/README.md b/packages/babel-polyfill/README.md index 5b1b77aaa1..b02409f27f 100644 --- a/packages/babel-polyfill/README.md +++ b/packages/babel-polyfill/README.md @@ -2,6 +2,9 @@ > Provides polyfills necessary for a full ES2015+ environment + +**This package has been deprecated in favor of separate inclusion of required parts of [`core-js`](https://github.com/zloirock/core-js) and [`regenerator-runtime`](https://www.npmjs.com/package/regenerator-runtime). See our website [@babel/polyfill](https://babeljs.io/docs/en/next/babel-polyfill.html) for more information.** + See our website [@babel/polyfill](https://babeljs.io/docs/en/next/babel-polyfill.html) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20polyfill%22+is%3Aopen) associated with this package. ## Install @@ -16,4 +19,4 @@ or using yarn: ```sh yarn add @babel/polyfill -``` +``` \ No newline at end of file diff --git a/packages/babel-polyfill/package.json b/packages/babel-polyfill/package.json index be64ebd670..0e4c219b15 100644 --- a/packages/babel-polyfill/package.json +++ b/packages/babel-polyfill/package.json @@ -11,7 +11,7 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-polyfill", "main": "lib/index.js", "dependencies": { - "core-js": "^2.5.7", + "core-js": "^2.6.5", "regenerator-runtime": "^0.13.2" } } diff --git a/packages/babel-polyfill/src/index.js b/packages/babel-polyfill/src/index.js index d2bea4df33..18aceda25e 100644 --- a/packages/babel-polyfill/src/index.js +++ b/packages/babel-polyfill/src/index.js @@ -3,8 +3,11 @@ import "core-js/es6"; // Standard now import "core-js/fn/array/includes"; +import "core-js/fn/array/flat-map"; import "core-js/fn/string/pad-start"; import "core-js/fn/string/pad-end"; +import "core-js/fn/string/trim-start"; +import "core-js/fn/string/trim-end"; import "core-js/fn/symbol/async-iterator"; import "core-js/fn/object/get-own-property-descriptors"; import "core-js/fn/object/values"; diff --git a/packages/babel-preset-env/CONTRIBUTING.md b/packages/babel-preset-env/CONTRIBUTING.md index 5b485a6935..de861d996e 100644 --- a/packages/babel-preset-env/CONTRIBUTING.md +++ b/packages/babel-preset-env/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -## Adding a new plugin to support (when approved in the next ECMAScript version) +## Adding a new plugin or polyfill to support (when approved in the next ECMAScript version) ### Update [`plugin-features.js`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/plugin-features.js) @@ -27,7 +27,7 @@ And add them in this structure: }, ``` -### Update [`built-in-features.js`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/built-in-features.js) +### Update data for `core-js@2` polyfilling *Example:* @@ -38,19 +38,29 @@ and split it with `/`: `Object static methods / Object.values` -Find the corresponding module on [core-js](https://github.com/zloirock/core-js/tree/master/modules): +Find the corresponding module on [`core-js@2`](https://github.com/zloirock/core-js/tree/v2/modules): `es7.object.values.js` -Find required ES version in [`built-in-features.js`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/built-in-features.js) and add the new feature: +Find required ES version in [`corejs2-built-in-features.js`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/corejs2-built-in-features.js) and add the new feature: ```js -const es2017 = { +const es = { //... "es7.object.values": "Object static methods / Object.values" } ``` +If you wan to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related `core-js` modules to [this file](https://github.com/babel/babel/blob/master/packages/babel-preset-env/polyfills/corejs2/built-in-definitions.js). + +### Update data for `core-js@3` polyfilling + +Just update the version of [`core-js-compat`](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) in dependencies. + +If you wan to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related [`core-js`](https://github.com/zloirock/core-js/tree/master/packages/core-js/modules) modules to [this file](https://github.com/babel/babel/blob/master/packages/babel-preset-env/polyfills/corejs3/built-in-definitions.js). + +If you want to mark a new proposal as shipped, add it to [this list](https://github.com/babel/babel/blob/master/packages/babel-preset-env/polyfills/corejs3/shipped-proposals.js). + ### Update [`plugins.json`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/plugins.json) Until `compat-table` is a standalone npm module for data we are using the git url diff --git a/packages/babel-preset-env/data/built-in-features.js b/packages/babel-preset-env/data/corejs2-built-in-features.js similarity index 98% rename from packages/babel-preset-env/data/built-in-features.js rename to packages/babel-preset-env/data/corejs2-built-in-features.js index b8672b091e..f18244b4c9 100644 --- a/packages/babel-preset-env/data/built-in-features.js +++ b/packages/babel-preset-env/data/corejs2-built-in-features.js @@ -46,6 +46,7 @@ const es = { }, "es6.array.find": "Array.prototype methods / Array.prototype.find", "es6.array.find-index": "Array.prototype methods / Array.prototype.findIndex", + "es7.array.flat-map": "Array.prototype.{flat, flatMap} / Array.prototype.flatMap", "es6.array.for-each": "Array methods / Array.prototype.forEach", "es6.array.from": "Array static methods / Array.from", "es7.array.includes": "Array.prototype.includes", @@ -175,6 +176,7 @@ const es = { ], }, "es6.object.prevent-extensions": "Object static methods accept primitives / Object.preventExtensions", + "es6.object.to-string": "well-known symbols / Symbol.toStringTag", "es6.object.is": "Object static methods / Object.is", "es6.object.is-frozen": "Object static methods accept primitives / Object.isFrozen", "es6.object.is-sealed": "Object static methods accept primitives / Object.isSealed", @@ -290,6 +292,8 @@ const es = { "es6.string.sub": "String.prototype HTML methods", "es6.string.sup": "String.prototype HTML methods", "es6.string.trim": "String properties and methods / String.prototype.trim", + "es7.string.trim-left": "string trimming / String.prototype.trimStart", + "es7.string.trim-right": "string trimming / String.prototype.trimEnd", "es6.typed.array-buffer": "typed arrays / ArrayBuffer[Symbol.species]", "es6.typed.data-view": "typed arrays / DataView", diff --git a/packages/babel-preset-env/data/built-ins.json b/packages/babel-preset-env/data/corejs2-built-ins.json similarity index 88% rename from packages/babel-preset-env/data/built-ins.json rename to packages/babel-preset-env/data/corejs2-built-ins.json index d584df3367..2079f1c3d7 100644 --- a/packages/babel-preset-env/data/built-ins.json +++ b/packages/babel-preset-env/data/corejs2-built-ins.json @@ -6,6 +6,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "5", "opera": "32", "electron": "0.35" }, @@ -20,6 +21,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.fill": { @@ -29,6 +31,7 @@ "safari": "7.1", "node": "4", "ios": "8", + "samsung": "5", "opera": "32", "electron": "0.35" }, @@ -43,6 +46,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.find": { @@ -52,6 +56,7 @@ "safari": "7.1", "node": "4", "ios": "8", + "samsung": "5", "opera": "32", "electron": "0.35" }, @@ -62,9 +67,19 @@ "safari": "7.1", "node": "4", "ios": "8", + "samsung": "5", "opera": "32", "electron": "0.35" }, + "es7.array.flat-map": { + "chrome": "69", + "firefox": "62", + "safari": "12", + "node": "11", + "ios": "12", + "opera": "56", + "electron": "4" + }, "es6.array.for-each": { "chrome": "5", "opera": "10.10", @@ -76,6 +91,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.from": { @@ -85,6 +101,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -95,6 +112,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "34", "electron": "0.36" }, @@ -109,6 +127,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.is-array": { @@ -122,6 +141,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.iterator": { @@ -131,6 +151,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -145,6 +166,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.map": { @@ -158,6 +180,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.of": { @@ -167,6 +190,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "5", "opera": "32", "electron": "0.35" }, @@ -181,6 +205,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.reduce-right": { @@ -194,6 +219,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.some": { @@ -207,6 +233,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.array.sort": { @@ -218,6 +245,7 @@ "node": "10", "ie": "9", "ios": "12", + "samsung": "8.2", "electron": "3.1" }, "es6.array.species": { @@ -227,6 +255,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -241,6 +270,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.date.to-iso-string": { @@ -254,6 +284,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.date.to-json": { @@ -266,6 +297,7 @@ "ie": "9", "android": "4", "ios": "10", + "samsung": "2.1", "electron": "1.1" }, "es6.date.to-primitive": { @@ -275,6 +307,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "34", "electron": "0.36" }, @@ -289,6 +322,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.function.bind": { @@ -302,6 +336,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "5" }, "es6.function.has-instance": { @@ -311,6 +346,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -324,6 +360,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.map": { @@ -333,6 +370,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -343,6 +381,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -353,6 +392,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -363,6 +403,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -373,6 +414,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -383,6 +425,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -393,6 +436,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -403,6 +447,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -413,6 +458,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -423,6 +469,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -434,6 +481,7 @@ "node": "0.12", "android": "4.4", "ios": "7", + "samsung": "2.1", "opera": "17", "electron": "0.2" }, @@ -444,6 +492,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -454,6 +503,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -464,6 +514,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -474,6 +525,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -484,6 +536,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -494,6 +547,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -504,6 +558,7 @@ "safari": "7.1", "node": "0.12", "ios": "8", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -514,6 +569,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -524,6 +580,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "2.1", "opera": "21", "electron": "0.2" }, @@ -535,6 +592,7 @@ "node": "0.12", "android": "4.1", "ios": "9", + "samsung": "2.1", "electron": "0.2" }, "es6.number.is-integer": { @@ -544,6 +602,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "2.1", "opera": "21", "electron": "0.2" }, @@ -555,6 +614,7 @@ "node": "0.12", "android": "4.1", "ios": "9", + "samsung": "2.1", "electron": "0.2" }, "es6.number.is-safe-integer": { @@ -564,6 +624,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "2.1", "opera": "21", "electron": "0.2" }, @@ -574,6 +635,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "2.1", "opera": "21", "electron": "0.2" }, @@ -584,6 +646,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "2.1", "opera": "21", "electron": "0.2" }, @@ -594,6 +657,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "2.1", "opera": "21", "electron": "0.2" }, @@ -604,6 +668,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "2.1", "opera": "21", "electron": "0.2" }, @@ -614,6 +679,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -628,6 +694,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es7.object.define-getter": { @@ -637,6 +704,7 @@ "safari": "9", "node": "8.10", "ios": "9", + "samsung": "8.2", "opera": "49", "electron": "3.1" }, @@ -647,6 +715,7 @@ "safari": "9", "node": "8.10", "ios": "9", + "samsung": "8.2", "opera": "49", "electron": "3.1" }, @@ -661,6 +730,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.object.define-properties": { @@ -674,6 +744,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es7.object.entries": { @@ -683,6 +754,7 @@ "safari": "10.1", "node": "7", "ios": "10.3", + "samsung": "6.2", "opera": "41", "electron": "1.5" }, @@ -693,6 +765,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "31", "electron": "0.31" }, @@ -703,6 +776,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "31", "electron": "0.31" }, @@ -713,6 +787,7 @@ "safari": "10.1", "node": "7", "ios": "10.3", + "samsung": "6.2", "opera": "41", "electron": "1.5" }, @@ -723,6 +798,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "27", "electron": "0.21" }, @@ -733,6 +809,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "31", "electron": "0.31" }, @@ -742,6 +819,7 @@ "safari": "9", "node": "8.10", "ios": "9", + "samsung": "8.2", "opera": "49", "electron": "3.1" }, @@ -751,6 +829,7 @@ "safari": "9", "node": "8.10", "ios": "9", + "samsung": "8.2", "opera": "49", "electron": "3.1" }, @@ -761,9 +840,21 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "31", "electron": "0.31" }, + "es6.object.to-string": { + "chrome": "57", + "edge": "15", + "firefox": "51", + "safari": "10", + "node": "8", + "ios": "10", + "samsung": "7.2", + "opera": "44", + "electron": "1.7" + }, "es6.object.is": { "chrome": "19", "edge": "12", @@ -772,6 +863,7 @@ "node": "0.12", "android": "4.1", "ios": "9", + "samsung": "2.1", "electron": "0.2" }, "es6.object.is-frozen": { @@ -781,6 +873,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "31", "electron": "0.31" }, @@ -791,6 +884,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "31", "electron": "0.31" }, @@ -801,6 +895,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "31", "electron": "0.31" }, @@ -811,6 +906,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "27", "electron": "0.21" }, @@ -821,6 +917,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "31", "electron": "0.31" }, @@ -832,6 +929,7 @@ "node": "0.12", "ie": "11", "ios": "9", + "samsung": "2.1", "opera": "21", "electron": "0.2" }, @@ -842,6 +940,7 @@ "safari": "10.1", "node": "7", "ios": "10.3", + "samsung": "6.2", "opera": "41", "electron": "1.5" }, @@ -852,6 +951,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -862,6 +962,7 @@ "safari": "11.1", "node": "10", "ios": "11.3", + "samsung": "8.2", "opera": "50", "electron": "3.1" }, @@ -872,16 +973,18 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, "es6.reflect.construct": { "chrome": "49", "edge": "13", - "firefox": "44", + "firefox": "49", "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -892,6 +995,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -902,6 +1006,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -912,6 +1017,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -922,6 +1028,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -932,6 +1039,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -942,6 +1050,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -952,6 +1061,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -962,6 +1072,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -972,6 +1083,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -982,6 +1094,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -992,6 +1105,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -1001,6 +1115,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "37", "electron": "1.1" }, @@ -1010,6 +1125,7 @@ "safari": "9", "node": "6", "ios": "9", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -1019,6 +1135,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "37", "electron": "1.1" }, @@ -1028,6 +1145,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "37", "electron": "1.1" }, @@ -1037,6 +1155,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "37", "electron": "1.1" }, @@ -1046,6 +1165,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "37", "electron": "1.1" }, @@ -1055,6 +1175,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "37", "electron": "1.1" }, @@ -1065,6 +1186,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1074,6 +1196,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1083,6 +1206,7 @@ "safari": "12", "node": "10", "ios": "12", + "samsung": "8.2", "opera": "50", "electron": "3.1" }, @@ -1095,6 +1219,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.big": { @@ -1106,6 +1231,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.blink": { @@ -1117,6 +1243,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.bold": { @@ -1128,6 +1255,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.code-point-at": { @@ -1137,6 +1265,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -1147,6 +1276,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -1159,6 +1289,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.fontcolor": { @@ -1170,6 +1301,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.fontsize": { @@ -1181,6 +1313,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.from-code-point": { @@ -1190,6 +1323,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -1200,6 +1334,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -1212,6 +1347,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.iterator": { @@ -1221,6 +1357,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -1233,6 +1370,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es7.string.pad-start": { @@ -1242,6 +1380,7 @@ "safari": "10", "node": "8", "ios": "10", + "samsung": "7.2", "opera": "44", "electron": "1.7" }, @@ -1252,6 +1391,7 @@ "safari": "10", "node": "8", "ios": "10", + "samsung": "7.2", "opera": "44", "electron": "1.7" }, @@ -1262,6 +1402,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -1272,6 +1413,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -1284,6 +1426,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.starts-with": { @@ -1293,6 +1436,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -1305,6 +1449,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.sub": { @@ -1316,6 +1461,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.sup": { @@ -1327,6 +1473,7 @@ "android": "4", "ios": "7", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.string.trim": { @@ -1340,8 +1487,27 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, + "es7.string.trim-left": { + "chrome": "66", + "firefox": "61", + "safari": "12", + "node": "10", + "ios": "12", + "opera": "53", + "electron": "3.1" + }, + "es7.string.trim-right": { + "chrome": "66", + "firefox": "61", + "safari": "12", + "node": "10", + "ios": "12", + "opera": "53", + "electron": "3.1" + }, "es6.typed.array-buffer": { "chrome": "51", "edge": "13", @@ -1349,6 +1515,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1363,6 +1530,7 @@ "android": "4", "ios": "6", "phantom": "2", + "samsung": "2.1", "electron": "1.1" }, "es6.typed.int8-array": { @@ -1372,6 +1540,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1382,6 +1551,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1392,6 +1562,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1402,6 +1573,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1412,6 +1584,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1422,6 +1595,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1432,6 +1606,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1442,6 +1617,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1452,6 +1628,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1462,6 +1639,7 @@ "safari": "9", "node": "6.5", "ios": "9", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -1472,16 +1650,8 @@ "safari": "9", "node": "6.5", "ios": "9", + "samsung": "5", "opera": "38", "electron": "1.2" - }, - "es7.array.flat-map": { - "chrome": "69", - "firefox": "62", - "safari": "12", - "node": "11", - "ios": "12", - "opera": "56", - "electron": "4" } } diff --git a/packages/babel-preset-env/data/plugins.json b/packages/babel-preset-env/data/plugins.json index a869f0bd21..fa636851f2 100644 --- a/packages/babel-preset-env/data/plugins.json +++ b/packages/babel-preset-env/data/plugins.json @@ -4,6 +4,7 @@ "edge": "13", "firefox": "34", "node": "4", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -14,6 +15,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "31", "electron": "0.31" }, @@ -23,6 +25,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -33,6 +36,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "34", "electron": "0.36" }, @@ -44,6 +48,7 @@ "node": "4", "ie": "11", "ios": "10", + "samsung": "3.4", "opera": "28", "electron": "0.24" }, @@ -54,6 +59,7 @@ "safari": "10", "node": "5", "ios": "10", + "samsung": "5", "opera": "33", "electron": "0.36" }, @@ -64,6 +70,7 @@ "safari": "10", "node": "5", "ios": "10", + "samsung": "5", "opera": "33", "electron": "0.36" }, @@ -74,6 +81,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "4", "opera": "30", "electron": "0.29" }, @@ -84,6 +92,7 @@ "safari": "9", "node": "4", "ios": "9", + "samsung": "3.4", "opera": "29", "electron": "0.27" }, @@ -94,6 +103,7 @@ "safari": "7.1", "node": "4", "ios": "8", + "samsung": "4", "opera": "31", "electron": "0.31" }, @@ -104,6 +114,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -114,6 +125,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -122,6 +134,7 @@ "safari": "11.1", "node": "8.10", "ios": "11.3", + "samsung": "8.2", "opera": "49", "electron": "3.1" }, @@ -132,6 +145,7 @@ "safari": "12", "node": "6", "ios": "12", + "samsung": "5", "opera": "37", "electron": "1.1" }, @@ -142,6 +156,7 @@ "safari": "10", "node": "5", "ios": "10", + "samsung": "5", "opera": "33", "electron": "0.36" }, @@ -152,6 +167,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -162,6 +178,7 @@ "safari": "10", "node": "6.5", "ios": "10", + "samsung": "5", "opera": "38", "electron": "1.2" }, @@ -172,6 +189,7 @@ "safari": "10.1", "node": "6", "ios": "10.3", + "samsung": "5", "opera": "36", "electron": "1" }, @@ -182,6 +200,7 @@ "safari": "9", "node": "0.12", "ios": "9", + "samsung": "3", "opera": "25", "electron": "0.2" }, @@ -192,6 +211,7 @@ "safari": "10", "node": "5", "ios": "10", + "samsung": "5", "opera": "33", "electron": "0.36" }, @@ -202,6 +222,7 @@ "safari": "10", "node": "6", "ios": "10", + "samsung": "5", "opera": "37", "electron": "1.1" }, @@ -212,6 +233,7 @@ "safari": "10.1", "node": "7", "ios": "10.3", + "samsung": "6.2", "opera": "39", "electron": "1.3" }, @@ -222,6 +244,7 @@ "safari": "11", "node": "7.6", "ios": "11", + "samsung": "6.2", "opera": "42", "electron": "1.6" }, @@ -231,6 +254,7 @@ "safari": "12", "node": "10", "ios": "12", + "samsung": "8.2", "opera": "50", "electron": "3.1" }, @@ -240,6 +264,7 @@ "safari": "11.1", "node": "8.3", "ios": "11.3", + "samsung": "8.2", "opera": "47", "electron": "2.1" }, diff --git a/packages/babel-preset-env/data/shipped-proposals.js b/packages/babel-preset-env/data/shipped-proposals.js index a5723716ca..90864b6c94 100644 --- a/packages/babel-preset-env/data/shipped-proposals.js +++ b/packages/babel-preset-env/data/shipped-proposals.js @@ -1,11 +1,7 @@ -// These mappings represent the builtin/feature proposals that have been +// These mappings represent the syntax proposals that have been // shipped by browsers, and are enabled by the `shippedProposals` option. -const builtIns = { - "es7.array.flat-map": "Array.prototype.{flat, flatMap} / Array.prototype.flatMap" -}; - -const features = {}; +const proposalPlugins = {}; const pluginSyntaxMap = new Map([ ["proposal-async-generator-functions", "syntax-async-generators"], @@ -15,4 +11,4 @@ const pluginSyntaxMap = new Map([ ["proposal-json-strings", "syntax-json-strings"], ]); -module.exports = { builtIns, features, pluginSyntaxMap }; +module.exports = { proposalPlugins, pluginSyntaxMap }; diff --git a/packages/babel-preset-env/package.json b/packages/babel-preset-env/package.json index d32592e328..ee9c786353 100644 --- a/packages/babel-preset-env/package.json +++ b/packages/babel-preset-env/package.json @@ -53,7 +53,9 @@ "@babel/plugin-transform-template-literals": "^7.2.0", "@babel/plugin-transform-typeof-symbol": "^7.2.0", "@babel/plugin-transform-unicode-regex": "^7.2.0", + "@babel/types": "^7.3.4", "browserslist": "^4.4.2", + "core-js-compat": "^3.0.0", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.3.0" @@ -66,6 +68,7 @@ "@babel/core": "^7.3.4", "@babel/helper-fixtures": "^7.2.0", "@babel/helper-plugin-test-runner": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", "caniuse-db": "1.0.30000938", "compat-table": "kangax/compat-table#6d012ba020fa7415e8a2d29e87924bab79b128a3", "electron-to-chromium": "1.3.113" diff --git a/packages/babel-preset-env/scripts/build-data.js b/packages/babel-preset-env/scripts/build-data.js index 28e80b1031..d4502ddaa9 100644 --- a/packages/babel-preset-env/scripts/build-data.js +++ b/packages/babel-preset-env/scripts/build-data.js @@ -132,6 +132,7 @@ const environments = [ "android", "ios", "phantom", + "samsung", ]; const compatibilityTests = flattenDeep( @@ -162,22 +163,16 @@ const getLowestImplementedVersion = ({ features }, env) => { ); }) .reduce((result, test) => { - const isBuiltIn = - test.category === "built-ins" || - test.category === "built-in extensions"; - if (!test.subtests) { result.push({ name: test.name, res: test.res, - isBuiltIn, }); } else { test.subtests.forEach(subtest => result.push({ name: `${test.name}/${subtest.name}`, res: subtest.res, - isBuiltIn, }) ); } @@ -186,20 +181,7 @@ const getLowestImplementedVersion = ({ features }, env) => { }, []); const unreleasedLabelForEnv = unreleasedLabels[env]; - const envTests = tests.map(({ res: test, isBuiltIn }, i) => { - // Babel itself doesn't implement the feature correctly, - // don't count against it - // only doing this for built-ins atm - // - // NOTE: when/if compat-table adds a babel7 key, we'll want to update this - if (!test.babel6corejs2 && isBuiltIn) { - return { - version: "0.0.0", - semver: "0.0.0", - implements: true, - }; - } - + const envTests = tests.map(({ res: test }, i) => { const reportedVersions = Object.keys(test) .filter(t => t.startsWith(env)) .map(t => { @@ -308,7 +290,7 @@ const generateData = (environments, features) => { }); }; -["plugin", "built-in"].forEach(target => { +["plugin", "corejs2-built-in"].forEach(target => { const newData = generateData( environments, require(`../data/${target}-features`) diff --git a/packages/babel-preset-env/src/available-plugins.js b/packages/babel-preset-env/src/available-plugins.js index 18b3609785..9e836d5d88 100644 --- a/packages/babel-preset-env/src/available-plugins.js +++ b/packages/babel-preset-env/src/available-plugins.js @@ -1,3 +1,5 @@ +// @flow + export default { "syntax-async-generators": require("@babel/plugin-syntax-async-generators"), "syntax-json-strings": require("@babel/plugin-syntax-json-strings"), diff --git a/packages/babel-preset-env/src/built-in-definitions.js b/packages/babel-preset-env/src/built-in-definitions.js deleted file mode 100644 index bcad0d8651..0000000000 --- a/packages/babel-preset-env/src/built-in-definitions.js +++ /dev/null @@ -1,182 +0,0 @@ -const ArrayNatureIterators = [ - "es6.object.to-string", - "es6.array.iterator", - "web.dom.iterable", -]; - -const CommonIterators = ["es6.string.iterator"].concat(ArrayNatureIterators); - -// TODO: this is the opposite of built-in-features so maybe generate one from the other? -export const definitions = { - builtins: { - DataView: "es6.typed.data-view", - Float32Array: "es6.typed.float32-array", - Float64Array: "es6.typed.float64-array", - Int8Array: "es6.typed.int8-array", - Int16Array: "es6.typed.int16-array", - Int32Array: "es6.typed.int32-array", - Map: ["es6.map"].concat(CommonIterators), - Number: "es6.number.constructor", - Promise: ["es6.object.to-string", "es6.promise"], - RegExp: ["es6.regexp.constructor"], - Set: ["es6.set"].concat(CommonIterators), - Symbol: ["es6.symbol", "es7.symbol.async-iterator"], - Uint8Array: "es6.typed.uint8-array", - Uint8ClampedArray: "es6.typed.uint8-clamped-array", - Uint16Array: "es6.typed.uint16-array", - Uint32Array: "es6.typed.uint32-array", - WeakMap: ["es6.weak-map"].concat(CommonIterators), - WeakSet: ["es6.weak-set"].concat(CommonIterators), - }, - - instanceMethods: { - __defineGetter__: ["es7.object.define-getter"], - __defineSetter__: ["es7.object.define-setter"], - __lookupGetter__: ["es7.object.lookup-getter"], - __lookupSetter__: ["es7.object.lookup-setter"], - anchor: ["es6.string.anchor"], - big: ["es6.string.big"], - bind: ["es6.function.bind"], - blink: ["es6.string.blink"], - bold: ["es6.string.bold"], - codePointAt: ["es6.string.code-point-at"], - copyWithin: ["es6.array.copy-within"], - endsWith: ["es6.string.ends-with"], - entries: ArrayNatureIterators, - every: ["es6.array.is-array"], - fill: ["es6.array.fill"], - filter: ["es6.array.filter"], - finally: ["es7.promise.finally"], - find: ["es6.array.find"], - findIndex: ["es6.array.find-index"], - fixed: ["es6.string.fixed"], - flags: ["es6.regexp.flags"], - fontcolor: ["es6.string.fontcolor"], - fontsize: ["es6.string.fontsize"], - forEach: ["es6.array.for-each", "web.dom.iterable"], - includes: ["es6.string.includes", "es7.array.includes"], - indexOf: ["es6.array.index-of"], - italics: ["es6.string.italics"], - keys: ArrayNatureIterators, - lastIndexOf: ["es6.array.last-index-of"], - link: ["es6.string.link"], - map: ["es6.array.map"], - match: ["es6.regexp.match"], - name: ["es6.function.name"], - padStart: ["es7.string.pad-start"], - padEnd: ["es7.string.pad-end"], - reduce: ["es6.array.reduce"], - reduceRight: ["es6.array.reduce-right"], - repeat: ["es6.string.repeat"], - replace: ["es6.regexp.replace"], - search: ["es6.regexp.search"], - slice: ["es6.array.slice"], - small: ["es6.string.small"], - some: ["es6.array.some"], - sort: ["es6.array.sort"], - split: ["es6.regexp.split"], - startsWith: ["es6.string.starts-with"], - strike: ["es6.string.strike"], - sub: ["es6.string.sub"], - sup: ["es6.string.sup"], - toISOString: ["es6.date.to-iso-string"], - toJSON: ["es6.date.to-json"], - toString: [ - "es6.object.to-string", - "es6.date.to-string", - "es6.regexp.to-string", - ], - trim: ["es6.string.trim"], - values: ArrayNatureIterators, - }, - - staticMethods: { - Array: { - from: ["es6.array.from", "es6.string.iterator"], - isArray: "es6.array.is-array", - of: "es6.array.of", - }, - - Date: { - now: "es6.date.now", - }, - - Object: { - assign: "es6.object.assign", - create: "es6.object.create", - defineProperty: "es6.object.define-property", - defineProperties: "es6.object.define-properties", - entries: "es7.object.entries", - freeze: "es6.object.freeze", - getOwnPropertyDescriptors: "es7.object.get-own-property-descriptors", - getOwnPropertySymbols: "es6.object.get-own-property-symbols", - is: "es6.object.is", - isExtensible: "es6.object.is-extensible", - isFrozen: "es6.object.is-frozen", - isSealed: "es6.object.is-sealed", - keys: "es6.object.keys", - preventExtensions: "es6.object.prevent-extensions", - seal: "es6.object.seal", - setPrototypeOf: "es6.object.set-prototype-of", - values: "es7.object.values", - }, - - Math: { - acosh: "es6.math.acosh", - asinh: "es6.math.asinh", - atanh: "es6.math.atanh", - cbrt: "es6.math.cbrt", - clz32: "es6.math.clz32", - cosh: "es6.math.cosh", - expm1: "es6.math.expm1", - fround: "es6.math.fround", - hypot: "es6.math.hypot", - imul: "es6.math.imul", - log1p: "es6.math.log1p", - log10: "es6.math.log10", - log2: "es6.math.log2", - sign: "es6.math.sign", - sinh: "es6.math.sinh", - tanh: "es6.math.tanh", - trunc: "es6.math.trunc", - }, - - String: { - fromCodePoint: "es6.string.from-code-point", - raw: "es6.string.raw", - }, - - Number: { - EPSILON: "es6.number.epsilon", - MIN_SAFE_INTEGER: "es6.number.min-safe-integer", - MAX_SAFE_INTEGER: "es6.number.max-safe-integer", - isFinite: "es6.number.is-finite", - isInteger: "es6.number.is-integer", - isSafeInteger: "es6.number.is-safe-integer", - isNaN: "es6.number.is-nan", - parseFloat: "es6.number.parse-float", - parseInt: "es6.number.parse-int", - }, - - Promise: { - all: CommonIterators, - race: CommonIterators, - }, - - Reflect: { - apply: "es6.reflect.apply", - construct: "es6.reflect.construct", - defineProperty: "es6.reflect.define-property", - deleteProperty: "es6.reflect.delete-property", - get: "es6.reflect.get", - getOwnPropertyDescriptor: "es6.reflect.get-own-property-descriptor", - getPrototypeOf: "es6.reflect.get-prototype-of", - has: "es6.reflect.has", - isExtensible: "es6.reflect.is-extensible", - ownKeys: "es6.reflect.own-keys", - preventExtensions: "es6.reflect.prevent-extensions", - set: "es6.reflect.set", - setPrototypeOf: "es6.reflect.set-prototype-of", - }, - }, -}; diff --git a/packages/babel-preset-env/src/debug.js b/packages/babel-preset-env/src/debug.js index ddf65a5c28..db72cf0c3e 100644 --- a/packages/babel-preset-env/src/debug.js +++ b/packages/babel-preset-env/src/debug.js @@ -1,20 +1,21 @@ +// @flow /*eslint quotes: ["error", "double", { "avoidEscape": true }]*/ import semver from "semver"; import { isUnreleasedVersion, prettifyVersion, semverify } from "./utils"; -const wordEnds = size => { - return size > 1 ? "s" : ""; -}; +import type { Targets } from "./types"; -export const logMessage = (message, context) => { - const pre = context ? `[${context}] ` : ""; - const logStr = ` ${pre}${message}`; - console.log(logStr); +const wordEnds = (size: number) => { + return size > 1 ? "s" : ""; }; // Outputs a message that shows which target(s) caused an item to be included: // transform-foo { "edge":"13", "firefox":"49", "ie":"10" } -export const logPlugin = (item, targetVersions, list, context) => { +export const logPluginOrPolyfill = ( + item: string, + targetVersions: Targets, + list: { [key: string]: Targets }, +) => { const minVersions = list[item] || {}; const filteredList = Object.keys(targetVersions).reduce((result, env) => { @@ -29,7 +30,8 @@ export const logPlugin = (item, targetVersions, list, context) => { if ( !targetIsUnreleased && - (minIsUnreleased || semver.lt(targetVersion, semverify(minVersion))) + (minIsUnreleased || + semver.lt(targetVersion.toString(), semverify(minVersion))) ) { result[env] = prettifyVersion(targetVersion); } @@ -43,50 +45,56 @@ export const logPlugin = (item, targetVersions, list, context) => { .replace(/^\{"/, '{ "') .replace(/"\}$/, '" }'); - logMessage(`${item} ${formattedTargets}`, context); + console.log(` ${item} ${formattedTargets}`); }; export const logEntryPolyfills = ( - importPolyfillIncluded, - polyfills, - filename, - onDebug, + polyfillName: string, + importPolyfillIncluded: boolean, + polyfills: Set, + filename: string, + polyfillTargets: Targets, + allBuiltInsList: { [key: string]: Targets }, ) => { if (!importPolyfillIncluded) { - console.log( - ` -[${filename}] \`import '@babel/polyfill'\` was not found.`, - ); + console.log(`\n[${filename}] Import of ${polyfillName} was not found.`); return; } if (!polyfills.size) { console.log( - ` -[${filename}] Based on your targets, none were added.`, + `\n[${filename}] Based on your targets, polyfills were not added.`, ); return; } console.log( - ` -[${filename}] Replaced \`@babel/polyfill\` with the following polyfill${wordEnds( + `\n[${filename}] Replaced ${polyfillName} entries with the following polyfill${wordEnds( polyfills.size, )}:`, ); - onDebug(polyfills); + for (const polyfill of polyfills) { + logPluginOrPolyfill(polyfill, polyfillTargets, allBuiltInsList); + } }; -export const logUsagePolyfills = (polyfills, filename, onDebug) => { +export const logUsagePolyfills = ( + polyfills: Set, + filename: string, + polyfillTargets: Targets, + allBuiltInsList: { [key: string]: Targets }, +) => { if (!polyfills.size) { console.log( - ` -[${filename}] Based on your code and targets, none were added.`, + `\n[${filename}] Based on your code and targets, core-js polyfills were not added.`, ); return; } console.log( - ` -[${filename}] Added following polyfill${wordEnds(polyfills.size)}:`, + `\n[${filename}] Added following core-js polyfill${wordEnds( + polyfills.size, + )}:`, ); - onDebug(polyfills); + for (const polyfill of polyfills) { + logPluginOrPolyfill(polyfill, polyfillTargets, allBuiltInsList); + } }; diff --git a/packages/babel-preset-env/src/default-includes.js b/packages/babel-preset-env/src/default-includes.js deleted file mode 100644 index f99eec728a..0000000000 --- a/packages/babel-preset-env/src/default-includes.js +++ /dev/null @@ -1,5 +0,0 @@ -export const defaultWebIncludes = [ - "web.timers", - "web.immediate", - "web.dom.iterable", -]; diff --git a/packages/babel-preset-env/src/defaults.js b/packages/babel-preset-env/src/defaults.js deleted file mode 100644 index 8806a5229a..0000000000 --- a/packages/babel-preset-env/src/defaults.js +++ /dev/null @@ -1,25 +0,0 @@ -import type { Targets } from "./types"; - -const defaultWebIncludes = ["web.timers", "web.immediate", "web.dom.iterable"]; -const defaultExcludesForLooseMode = ["transform-typeof-symbol"]; - -export const getPlatformSpecificDefaultFor = ( - targets: Targets, -): ?Array => { - const targetNames = Object.keys(targets); - const isAnyTarget = !targetNames.length; - const isWebTarget = targetNames.some(name => name !== "node"); - - return isAnyTarget || isWebTarget ? defaultWebIncludes : null; -}; - -export const getOptionSpecificExcludesFor = ({ - loose, -}: { - loose: boolean, -}): ?Array => { - if (loose) { - return defaultExcludesForLooseMode; - } - return null; -}; diff --git a/packages/babel-preset-env/src/filter-items.js b/packages/babel-preset-env/src/filter-items.js new file mode 100644 index 0000000000..7d9c07026e --- /dev/null +++ b/packages/babel-preset-env/src/filter-items.js @@ -0,0 +1,87 @@ +// @flow +import semver from "semver"; +import { semverify, isUnreleasedVersion } from "./utils"; + +import type { Targets } from "./types"; + +export function isPluginRequired( + supportedEnvironments: Targets, + plugin: Targets, +) { + const targetEnvironments = Object.keys(supportedEnvironments); + + if (targetEnvironments.length === 0) { + return true; + } + + const isRequiredForEnvironments = targetEnvironments.filter(environment => { + // Feature is not implemented in that environment + if (!plugin[environment]) { + return true; + } + + const lowestImplementedVersion = plugin[environment]; + const lowestTargetedVersion = supportedEnvironments[environment]; + + // If targets has unreleased value as a lowest version, then don't require a plugin. + if (isUnreleasedVersion(lowestTargetedVersion, environment)) { + return false; + } + + // Include plugin if it is supported in the unreleased environment, which wasn't specified in targets + if (isUnreleasedVersion(lowestImplementedVersion, environment)) { + return true; + } + + if (!semver.valid(lowestTargetedVersion.toString())) { + throw new Error( + `Invalid version passed for target "${environment}": "${lowestTargetedVersion}". ` + + "Versions must be in semver format (major.minor.patch)", + ); + } + + return semver.gt( + semverify(lowestImplementedVersion), + lowestTargetedVersion.toString(), + ); + }); + + return isRequiredForEnvironments.length > 0; +} + +export default function( + list: { [feature: string]: Targets }, + includes: Set, + excludes: Set, + targets: Targets, + defaultIncludes: Array | null, + defaultExcludes?: Array | null, + pluginSyntaxMap?: Map, +) { + const result = new Set(); + + for (const item in list) { + if ( + !excludes.has(item) && + (isPluginRequired(targets, list[item]) || includes.has(item)) + ) { + result.add(item); + } else if (pluginSyntaxMap) { + const shippedProposalsSyntax = pluginSyntaxMap.get(item); + + if (shippedProposalsSyntax) { + result.add(shippedProposalsSyntax); + } + } + } + + if (defaultIncludes) { + defaultIncludes.forEach(item => !excludes.has(item) && result.add(item)); + } + + if (defaultExcludes) { + defaultExcludes.forEach(item => !includes.has(item) && result.delete(item)); + } + + return result; +} diff --git a/packages/babel-preset-env/src/get-option-specific-excludes.js b/packages/babel-preset-env/src/get-option-specific-excludes.js new file mode 100644 index 0000000000..d9bcc60bde --- /dev/null +++ b/packages/babel-preset-env/src/get-option-specific-excludes.js @@ -0,0 +1,7 @@ +// @flow + +const defaultExcludesForLooseMode = ["transform-typeof-symbol"]; + +export default function({ loose }: { loose: boolean }): null | string[] { + return loose ? defaultExcludesForLooseMode : null; +} diff --git a/packages/babel-preset-env/src/index.js b/packages/babel-preset-env/src/index.js index 338a25a6ab..426ad47cc2 100644 --- a/packages/babel-preset-env/src/index.js +++ b/packages/babel-preset-env/src/index.js @@ -1,33 +1,30 @@ //@flow -import semver from "semver"; -import builtInsList from "../data/built-ins.json"; -import { logPlugin } from "./debug"; -import { - getPlatformSpecificDefaultFor, - getOptionSpecificExcludesFor, -} from "./defaults"; +import { logPluginOrPolyfill } from "./debug"; +import getOptionSpecificExcludesFor from "./get-option-specific-excludes"; +import filterItems from "./filter-items"; import moduleTransformations from "./module-transformations"; -import normalizeOptions from "./normalize-options.js"; +import normalizeOptions from "./normalize-options"; import pluginList from "../data/plugins.json"; -import { - builtIns as proposalBuiltIns, - features as proposalPlugins, - pluginSyntaxMap, -} from "../data/shipped-proposals.js"; -import useBuiltInsEntryPlugin from "./use-built-ins-entry-plugin"; -import addUsedBuiltInsPlugin from "./use-built-ins-plugin"; +import { proposalPlugins, pluginSyntaxMap } from "../data/shipped-proposals"; + +import addCoreJS2UsagePlugin from "./polyfills/corejs2/usage-plugin"; +import addCoreJS3UsagePlugin from "./polyfills/corejs3/usage-plugin"; +import addRegeneratorUsagePlugin from "./polyfills/regenerator/usage-plugin"; +import replaceCoreJS2EntryPlugin from "./polyfills/corejs2/entry-plugin"; +import replaceCoreJS3EntryPlugin from "./polyfills/corejs3/entry-plugin"; +import removeRegeneratorEntryPlugin from "./polyfills/regenerator/entry-plugin"; + import getTargets from "./targets-parser"; import availablePlugins from "./available-plugins"; -import { - filterStageFromList, - prettifyTargets, - semverify, - isUnreleasedVersion, -} from "./utils"; -import type { Targets } from "./types"; +import { filterStageFromList, prettifyTargets } from "./utils"; import { declare } from "@babel/helper-plugin-utils"; +const pluginListWithoutProposals = filterStageFromList( + pluginList, + proposalPlugins, +); + const getPlugin = (pluginName: string) => { const plugin = availablePlugins[pluginName]; @@ -40,74 +37,12 @@ const getPlugin = (pluginName: string) => { return plugin; }; -const builtInsListWithoutProposals = filterStageFromList( - builtInsList, - proposalBuiltIns, -); - -const pluginListWithoutProposals = filterStageFromList( - pluginList, - proposalPlugins, -); - -export const isPluginRequired = ( - supportedEnvironments: Targets, - plugin: Targets, -): boolean => { - const targetEnvironments: Array = Object.keys(supportedEnvironments); - - if (targetEnvironments.length === 0) { - return true; - } - - const isRequiredForEnvironments: Array = targetEnvironments.filter( - environment => { - // Feature is not implemented in that environment - if (!plugin[environment]) { - return true; - } - - const lowestImplementedVersion: string = plugin[environment]; - const lowestTargetedVersion: string = supportedEnvironments[environment]; - // If targets has unreleased value as a lowest version, then don't require a plugin. - if (isUnreleasedVersion(lowestTargetedVersion, environment)) { - return false; - // Include plugin if it is supported in the unreleased environment, which wasn't specified in targets - } else if (isUnreleasedVersion(lowestImplementedVersion, environment)) { - return true; - } - - if (!semver.valid(lowestTargetedVersion)) { - throw new Error( - `Invalid version passed for target "${environment}": "${lowestTargetedVersion}". ` + - "Versions must be in semver format (major.minor.patch)", - ); - } - - return semver.gt( - semverify(lowestImplementedVersion), - lowestTargetedVersion, - ); - }, - ); - - return isRequiredForEnvironments.length > 0; -}; - -const getBuiltInTargets = targets => { - const builtInTargets = { - ...targets, - }; - if (builtInTargets.uglify != null) { - delete builtInTargets.uglify; - } - return builtInTargets; -}; - export const transformIncludesAndExcludes = (opts: Array): Object => { return opts.reduce( (result, opt) => { - const target = opt.match(/^(es\d+|web)\./) ? "builtIns" : "plugins"; + const target = opt.match(/^(es|es6|es7|esnext|web)\./) + ? "builtIns" + : "plugins"; result[target].add(opt); return result; }, @@ -119,42 +54,6 @@ export const transformIncludesAndExcludes = (opts: Array): Object => { ); }; -const filterItems = ( - list, - includes, - excludes, - targets, - defaultIncludes, - defaultExcludes, -): Set => { - const result = new Set(); - - for (const item in list) { - if ( - !excludes.has(item) && - (isPluginRequired(targets, list[item]) || includes.has(item)) - ) { - result.add(item); - } else { - const shippedProposalsSyntax = pluginSyntaxMap.get(item); - - if (shippedProposalsSyntax) { - result.add(shippedProposalsSyntax); - } - } - } - - if (defaultIncludes) { - defaultIncludes.forEach(item => !excludes.has(item) && result.add(item)); - } - - if (defaultExcludes) { - defaultExcludes.forEach(item => !includes.has(item) && result.delete(item)); - } - - return result; -}; - function supportsStaticESM(caller) { return !!(caller && caller.supportsStaticESM); } @@ -175,6 +74,7 @@ export default declare((api, opts) => { spec, targets: optionsTargets, useBuiltIns, + corejs: { version: corejs, proposals }, } = normalizeOptions(opts); // TODO: remove this in next major let hasUglifyTarget = false; @@ -216,23 +116,9 @@ export default declare((api, opts) => { transformTargets, null, getOptionSpecificExcludesFor({ loose }), + pluginSyntaxMap, ); - let polyfills; - let polyfillTargets; - - if (useBuiltIns) { - polyfillTargets = getBuiltInTargets(targets); - - polyfills = filterItems( - shippedProposals ? builtInsList : builtInsListWithoutProposals, - include.builtIns, - exclude.builtIns, - polyfillTargets, - getPlatformSpecificDefaultFor(polyfillTargets), - ); - } - const plugins = []; const pluginUseBuiltIns = useBuiltIns !== false; @@ -255,8 +141,6 @@ export default declare((api, opts) => { ]), ); - const regenerator = transformations.has("transform-regenerator"); - if (debug) { console.log("@babel/preset-env: `DEBUG` option"); console.log("\nUsing targets:"); @@ -264,7 +148,7 @@ export default declare((api, opts) => { console.log(`\nUsing modules transform: ${modules.toString()}`); console.log("\nUsing plugins:"); transformations.forEach(transform => { - logPlugin(transform, targets, pluginList); + logPluginOrPolyfill(transform, targets, pluginList); }); if (!useBuiltIns) { @@ -272,32 +156,46 @@ export default declare((api, opts) => { "\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.", ); } else { - console.log( - ` -Using polyfills with \`${useBuiltIns}\` option:`, - ); + console.log(`\nUsing polyfills with \`${useBuiltIns}\` option:`); } } if (useBuiltIns === "usage" || useBuiltIns === "entry") { + const regenerator = transformations.has("transform-regenerator"); + const pluginOptions = { - debug, - polyfills, + corejs, + polyfillTargets: targets, + include: include.builtIns, + exclude: exclude.builtIns, + proposals, + shippedProposals, regenerator, - onDebug: (polyfills, context) => { - polyfills.forEach(polyfill => - logPlugin(polyfill, polyfillTargets, builtInsList, context), - ); - }, + debug, }; - plugins.push([ - useBuiltIns === "usage" ? addUsedBuiltInsPlugin : useBuiltInsEntryPlugin, - pluginOptions, - ]); + if (corejs) { + if (useBuiltIns === "usage") { + if (corejs.major === 2) { + plugins.push([addCoreJS2UsagePlugin, pluginOptions]); + } else { + plugins.push([addCoreJS3UsagePlugin, pluginOptions]); + } + if (regenerator) { + plugins.push([addRegeneratorUsagePlugin, pluginOptions]); + } + } else { + if (corejs.major === 2) { + plugins.push([replaceCoreJS2EntryPlugin, pluginOptions]); + } else { + plugins.push([replaceCoreJS3EntryPlugin, pluginOptions]); + if (!regenerator) { + plugins.push([removeRegeneratorEntryPlugin, pluginOptions]); + } + } + } + } } - return { - plugins, - }; + return { plugins }; }); diff --git a/packages/babel-preset-env/src/module-transformations.js b/packages/babel-preset-env/src/module-transformations.js index a98f8dd044..6c9affe6b7 100644 --- a/packages/babel-preset-env/src/module-transformations.js +++ b/packages/babel-preset-env/src/module-transformations.js @@ -1,8 +1,12 @@ -export default { +// @flow + +import typeof AvailablePlugins from "./available-plugins"; + +export default ({ auto: "transform-modules-commonjs", amd: "transform-modules-amd", commonjs: "transform-modules-commonjs", cjs: "transform-modules-commonjs", systemjs: "transform-modules-systemjs", umd: "transform-modules-umd", -}; +}: { [transform: string]: $Keys }); diff --git a/packages/babel-preset-env/src/normalize-options.js b/packages/babel-preset-env/src/normalize-options.js index 77ea2cd0cf..0320da9574 100644 --- a/packages/babel-preset-env/src/normalize-options.js +++ b/packages/babel-preset-env/src/normalize-options.js @@ -1,20 +1,29 @@ -//@flow - +// @flow +import corejs3Polyfills from "core-js-compat/data"; import invariant from "invariant"; -import browserslist from "browserslist"; -import builtInsList from "../data/built-ins.json"; -import { defaultWebIncludes } from "./default-includes"; -import moduleTransformations from "./module-transformations"; -import { isBrowsersQueryValid } from "./targets-parser"; -import { getValues, findSuggestion } from "./utils"; +import { coerce, SemVer } from "semver"; +import corejs2Polyfills from "../data/corejs2-built-ins.json"; import pluginsList from "../data/plugins.json"; +import moduleTransformations from "./module-transformations"; import { TopLevelOptions, ModulesOption, UseBuiltInsOption } from "./options"; -import type { Targets, Options, ModuleOption, BuiltInsOption } from "./types"; +import { defaultWebIncludes } from "./polyfills/corejs2/get-platform-specific-default"; +import { isBrowsersQueryValid } from "./targets-parser"; +import { findSuggestion } from "./utils"; + +import type { + BuiltInsOption, + CorejsOption, + ModuleOption, + Options, + PluginListItem, + PluginListOption, +} from "./types"; const validateTopLevelOptions = (options: Options) => { + const validOptions = Object.keys(TopLevelOptions); + for (const option in options) { if (!TopLevelOptions[option]) { - const validOptions = getValues(TopLevelOptions); throw new Error( `Invalid Option: ${option} is not a valid top-level option. Maybe you meant to use '${findSuggestion(validOptions, option)}'?`, @@ -23,14 +32,25 @@ const validateTopLevelOptions = (options: Options) => { } }; -const validIncludesAndExcludes = new Set([ +const allPluginsList = [ ...Object.keys(pluginsList), ...Object.keys(moduleTransformations).map(m => moduleTransformations[m]), - ...Object.keys(builtInsList), +]; + +const validIncludesAndExcludesWithoutCoreJS = new Set(allPluginsList); + +const validIncludesAndExcludesWithCoreJS2 = new Set([ + ...allPluginsList, + ...Object.keys(corejs2Polyfills), ...defaultWebIncludes, ]); -const pluginToRegExp = (plugin: any): ?RegExp => { +const validIncludesAndExcludesWithCoreJS3 = new Set([ + ...allPluginsList, + ...Object.keys(corejs3Polyfills), +]); + +const pluginToRegExp = (plugin: PluginListItem) => { if (plugin instanceof RegExp) return plugin; try { return new RegExp(`^${normalizePluginName(plugin)}$`); @@ -39,21 +59,26 @@ const pluginToRegExp = (plugin: any): ?RegExp => { } }; -const selectPlugins = (regexp: ?RegExp): Array => - Array.from(validIncludesAndExcludes).filter( - item => regexp instanceof RegExp && regexp.test(item), - ); +const selectPlugins = (regexp: RegExp | null, corejs: number | false) => + Array.from( + corejs + ? corejs == 2 + ? validIncludesAndExcludesWithCoreJS2 + : validIncludesAndExcludesWithCoreJS3 + : validIncludesAndExcludesWithoutCoreJS, + ).filter(item => regexp instanceof RegExp && regexp.test(item)); -const flatten = array => [].concat(...array); +const flatten = (array: Array>): Array => [].concat(...array); const expandIncludesAndExcludes = ( - plugins: Array = [], - type: string, -): Array => { + plugins: PluginListOption = [], + type: "include" | "exclude", + corejs: number | false, +) => { if (plugins.length === 0) return []; const selectedPlugins = plugins.map(plugin => - selectPlugins(pluginToRegExp(plugin)), + selectPlugins(pluginToRegExp(plugin), corejs), ); const invalidRegExpList = plugins.filter( (p, i) => selectedPlugins[i].length === 0, @@ -67,21 +92,16 @@ const expandIncludesAndExcludes = ( valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`, ); - return flatten(selectedPlugins); + return flatten(selectedPlugins); }; -const validBrowserslistTargets = [ - ...Object.keys(browserslist.data), - ...Object.keys(browserslist.aliases), -]; - -export const normalizePluginName = (plugin: string): string => +export const normalizePluginName = (plugin: string) => plugin.replace(/^(@babel\/|babel-)(plugin-)?/, ""); export const checkDuplicateIncludeExcludes = ( include: Array = [], exclude: Array = [], -): void => { +) => { const duplicates = include.filter(opt => exclude.indexOf(opt) >= 0); invariant( @@ -93,7 +113,7 @@ export const checkDuplicateIncludeExcludes = ( ); }; -const normalizeTargets = (targets: any): Targets => { +const normalizeTargets = targets => { // TODO: Allow to use only query or strings as a targets from next breaking change. if (isBrowsersQueryValid(targets)) { return { browsers: targets }; @@ -115,7 +135,7 @@ export const validateConfigPathOption = ( export const validateBoolOption = ( name: string, - value: ?boolean, + value?: boolean, defaultValue: boolean, ) => { if (typeof value === "undefined") { @@ -142,8 +162,8 @@ export const validateModulesOption = ( modulesOpt: ModuleOption = ModulesOption.auto, ) => { invariant( - ModulesOption[modulesOpt] || - ModulesOption[modulesOpt] === ModulesOption.false, + ModulesOption[modulesOpt.toString()] || + ModulesOption[modulesOpt.toString()] === ModulesOption.false, `Invalid Option: The 'modules' option must be one of \n` + ` - 'false' to indicate no module processing\n` + ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` + @@ -154,22 +174,12 @@ export const validateModulesOption = ( return modulesOpt; }; -export const objectToBrowserslist = (object: Targets): Array => { - return Object.keys(object).reduce((list, targetName) => { - if (validBrowserslistTargets.indexOf(targetName) >= 0) { - const targetVersion = object[targetName]; - return list.concat(`${targetName} ${targetVersion}`); - } - return list; - }, []); -}; - export const validateUseBuiltInsOption = ( builtInsOpt: BuiltInsOption = false, -): BuiltInsOption => { +) => { invariant( - UseBuiltInsOption[builtInsOpt] || - UseBuiltInsOption[builtInsOpt] === UseBuiltInsOption.false, + UseBuiltInsOption[builtInsOpt.toString()] || + UseBuiltInsOption[builtInsOpt.toString()] === UseBuiltInsOption.false, `Invalid Option: The 'useBuiltIns' option must be either 'false' (default) to indicate no polyfill, '"entry"' to indicate replacing the entry polyfill, or @@ -179,22 +189,74 @@ export const validateUseBuiltInsOption = ( return builtInsOpt; }; +export type NormalizedCorejsOption = { + proposals: boolean, + version: typeof SemVer | null | false, +}; + +export function normalizeCoreJSOption( + corejs?: CorejsOption, + useBuiltIns: BuiltInsOption, +): NormalizedCorejsOption { + let proposals = false; + let rawVersion; + + if (useBuiltIns && corejs === undefined) { + rawVersion = 2; + console.log( + "\nWith `useBuiltIns` option, required direct setting of `corejs` option\n", + ); + } else if (typeof corejs === "object" && corejs !== null) { + rawVersion = corejs.version; + proposals = Boolean(corejs.proposals); + } else { + rawVersion = corejs; + } + + const version = rawVersion ? coerce(String(rawVersion)) : false; + + if (!useBuiltIns && version) { + console.log("\n`corejs` option required only with `useBuiltIns` option\n"); + } + + if (useBuiltIns && (!version || version.major < 2 || version.major > 3)) { + throw new RangeError("Supported only core-js@2 and core-js@3."); + } + + return { version, proposals }; +} + export default function normalizeOptions(opts: Options) { validateTopLevelOptions(opts); + const useBuiltIns = validateUseBuiltInsOption(opts.useBuiltIns); + + const corejs = normalizeCoreJSOption(opts.corejs, useBuiltIns); + const include = expandIncludesAndExcludes( opts.include, TopLevelOptions.include, + !!corejs.version && corejs.version.major, ); + const exclude = expandIncludesAndExcludes( opts.exclude, TopLevelOptions.exclude, + !!corejs.version && corejs.version.major, ); checkDuplicateIncludeExcludes(include, exclude); + const shippedProposals = + validateBoolOption( + TopLevelOptions.shippedProposals, + opts.shippedProposals, + false, + ) || corejs.proposals; + return { configPath: validateConfigPathOption(opts.configPath), + corejs, debug: validateBoolOption(TopLevelOptions.debug, opts.debug, false), include, exclude, @@ -208,13 +270,9 @@ export default function normalizeOptions(opts: Options) { ), loose: validateBoolOption(TopLevelOptions.loose, opts.loose, false), modules: validateModulesOption(opts.modules), - shippedProposals: validateBoolOption( - TopLevelOptions.shippedProposals, - opts.shippedProposals, - false, - ), + shippedProposals, spec: validateBoolOption(TopLevelOptions.spec, opts.spec, false), targets: normalizeTargets(opts.targets), - useBuiltIns: validateUseBuiltInsOption(opts.useBuiltIns), + useBuiltIns: useBuiltIns, }; } diff --git a/packages/babel-preset-env/src/options.js b/packages/babel-preset-env/src/options.js index e1f08ccd9b..f8bf5d0bba 100644 --- a/packages/babel-preset-env/src/options.js +++ b/packages/babel-preset-env/src/options.js @@ -1,5 +1,8 @@ +// @flow + export const TopLevelOptions = { configPath: "configPath", + corejs: "corejs", debug: "debug", exclude: "exclude", forceAllTransforms: "forceAllTransforms", @@ -42,4 +45,8 @@ export const TargetNames = { ios: "ios", android: "android", electron: "electron", + samsung: "samsung", + + // deprecated + uglify: "uglify", }; diff --git a/packages/babel-preset-env/src/polyfills/corejs2/built-in-definitions.js b/packages/babel-preset-env/src/polyfills/corejs2/built-in-definitions.js new file mode 100644 index 0000000000..10ba84eb9a --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/corejs2/built-in-definitions.js @@ -0,0 +1,190 @@ +// @flow + +type ObjectMap = { [name: string]: V }; + +const ArrayNatureIterators = [ + "es6.object.to-string", + "es6.array.iterator", + "web.dom.iterable", +]; + +const CommonIterators = ["es6.string.iterator", ...ArrayNatureIterators]; + +const PromiseDependencies = ["es6.object.to-string", "es6.promise"]; + +export const BuiltIns: ObjectMap = { + DataView: "es6.typed.data-view", + Float32Array: "es6.typed.float32-array", + Float64Array: "es6.typed.float64-array", + Int8Array: "es6.typed.int8-array", + Int16Array: "es6.typed.int16-array", + Int32Array: "es6.typed.int32-array", + Map: ["es6.map", ...CommonIterators], + Number: "es6.number.constructor", + Promise: PromiseDependencies, + RegExp: ["es6.regexp.constructor"], + Set: ["es6.set", ...CommonIterators], + Symbol: ["es6.symbol", "es7.symbol.async-iterator"], + Uint8Array: "es6.typed.uint8-array", + Uint8ClampedArray: "es6.typed.uint8-clamped-array", + Uint16Array: "es6.typed.uint16-array", + Uint32Array: "es6.typed.uint32-array", + WeakMap: ["es6.weak-map", ...CommonIterators], + WeakSet: ["es6.weak-set", ...CommonIterators], +}; + +export const InstanceProperties: ObjectMap = { + __defineGetter__: ["es7.object.define-getter"], + __defineSetter__: ["es7.object.define-setter"], + __lookupGetter__: ["es7.object.lookup-getter"], + __lookupSetter__: ["es7.object.lookup-setter"], + anchor: ["es6.string.anchor"], + big: ["es6.string.big"], + bind: ["es6.function.bind"], + blink: ["es6.string.blink"], + bold: ["es6.string.bold"], + codePointAt: ["es6.string.code-point-at"], + copyWithin: ["es6.array.copy-within"], + endsWith: ["es6.string.ends-with"], + entries: ArrayNatureIterators, + every: ["es6.array.is-array"], + fill: ["es6.array.fill"], + filter: ["es6.array.filter"], + finally: ["es7.promise.finally", ...PromiseDependencies], + find: ["es6.array.find"], + findIndex: ["es6.array.find-index"], + fixed: ["es6.string.fixed"], + flags: ["es6.regexp.flags"], + flatMap: ["es7.array.flat-map"], + fontcolor: ["es6.string.fontcolor"], + fontsize: ["es6.string.fontsize"], + forEach: ["es6.array.for-each"], + includes: ["es6.string.includes", "es7.array.includes"], + indexOf: ["es6.array.index-of"], + italics: ["es6.string.italics"], + keys: ArrayNatureIterators, + lastIndexOf: ["es6.array.last-index-of"], + link: ["es6.string.link"], + map: ["es6.array.map"], + match: ["es6.regexp.match"], + name: ["es6.function.name"], + padStart: ["es7.string.pad-start"], + padEnd: ["es7.string.pad-end"], + reduce: ["es6.array.reduce"], + reduceRight: ["es6.array.reduce-right"], + repeat: ["es6.string.repeat"], + replace: ["es6.regexp.replace"], + search: ["es6.regexp.search"], + slice: ["es6.array.slice"], + small: ["es6.string.small"], + some: ["es6.array.some"], + sort: ["es6.array.sort"], + split: ["es6.regexp.split"], + startsWith: ["es6.string.starts-with"], + strike: ["es6.string.strike"], + sub: ["es6.string.sub"], + sup: ["es6.string.sup"], + toISOString: ["es6.date.to-iso-string"], + toJSON: ["es6.date.to-json"], + toString: [ + "es6.object.to-string", + "es6.date.to-string", + "es6.regexp.to-string", + ], + trim: ["es6.string.trim"], + trimEnd: ["es7.string.trim-right"], + trimLeft: ["es7.string.trim-left"], + trimRight: ["es7.string.trim-right"], + trimStart: ["es7.string.trim-left"], + values: ArrayNatureIterators, +}; + +export const StaticProperties: ObjectMap> = { + Array: { + from: ["es6.array.from", "es6.string.iterator"], + isArray: "es6.array.is-array", + of: "es6.array.of", + }, + + Date: { + now: "es6.date.now", + }, + + Object: { + assign: "es6.object.assign", + create: "es6.object.create", + defineProperty: "es6.object.define-property", + defineProperties: "es6.object.define-properties", + entries: "es7.object.entries", + freeze: "es6.object.freeze", + getOwnPropertyDescriptors: "es7.object.get-own-property-descriptors", + getOwnPropertySymbols: "es6.symbol", + is: "es6.object.is", + isExtensible: "es6.object.is-extensible", + isFrozen: "es6.object.is-frozen", + isSealed: "es6.object.is-sealed", + keys: "es6.object.keys", + preventExtensions: "es6.object.prevent-extensions", + seal: "es6.object.seal", + setPrototypeOf: "es6.object.set-prototype-of", + values: "es7.object.values", + }, + + Math: { + acosh: "es6.math.acosh", + asinh: "es6.math.asinh", + atanh: "es6.math.atanh", + cbrt: "es6.math.cbrt", + clz32: "es6.math.clz32", + cosh: "es6.math.cosh", + expm1: "es6.math.expm1", + fround: "es6.math.fround", + hypot: "es6.math.hypot", + imul: "es6.math.imul", + log1p: "es6.math.log1p", + log10: "es6.math.log10", + log2: "es6.math.log2", + sign: "es6.math.sign", + sinh: "es6.math.sinh", + tanh: "es6.math.tanh", + trunc: "es6.math.trunc", + }, + + String: { + fromCodePoint: "es6.string.from-code-point", + raw: "es6.string.raw", + }, + + Number: { + EPSILON: "es6.number.epsilon", + MIN_SAFE_INTEGER: "es6.number.min-safe-integer", + MAX_SAFE_INTEGER: "es6.number.max-safe-integer", + isFinite: "es6.number.is-finite", + isInteger: "es6.number.is-integer", + isSafeInteger: "es6.number.is-safe-integer", + isNaN: "es6.number.is-nan", + parseFloat: "es6.number.parse-float", + parseInt: "es6.number.parse-int", + }, + + Promise: { + all: CommonIterators, + race: CommonIterators, + }, + + Reflect: { + apply: "es6.reflect.apply", + construct: "es6.reflect.construct", + defineProperty: "es6.reflect.define-property", + deleteProperty: "es6.reflect.delete-property", + get: "es6.reflect.get", + getOwnPropertyDescriptor: "es6.reflect.get-own-property-descriptor", + getPrototypeOf: "es6.reflect.get-prototype-of", + has: "es6.reflect.has", + isExtensible: "es6.reflect.is-extensible", + ownKeys: "es6.reflect.own-keys", + preventExtensions: "es6.reflect.prevent-extensions", + set: "es6.reflect.set", + setPrototypeOf: "es6.reflect.set-prototype-of", + }, +}; diff --git a/packages/babel-preset-env/src/polyfills/corejs2/entry-plugin.js b/packages/babel-preset-env/src/polyfills/corejs2/entry-plugin.js new file mode 100644 index 0000000000..82fa4dd9f2 --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/corejs2/entry-plugin.js @@ -0,0 +1,85 @@ +// @flow + +import corejs2Polyfills from "../../../data/corejs2-built-ins.json"; +import getPlatformSpecificDefaultFor from "./get-platform-specific-default"; +import filterItems from "../../filter-items"; +import { + createImport, + isPolyfillSource, + getImportSource, + getRequireSource, +} from "../../utils"; +import { logEntryPolyfills } from "../../debug"; + +import type { InternalPluginOptions } from "../../types"; +import type { NodePath } from "@babel/traverse"; + +export default function( + _: any, + { + include, + exclude, + polyfillTargets, + regenerator, + debug, + }: InternalPluginOptions, +) { + const polyfills = filterItems( + corejs2Polyfills, + include, + exclude, + polyfillTargets, + getPlatformSpecificDefaultFor(polyfillTargets), + ); + + const isPolyfillImport = { + ImportDeclaration(path: NodePath) { + if (isPolyfillSource(getImportSource(path))) { + this.replaceBySeparateModulesImport(path); + } + }, + Program(path: NodePath) { + path.get("body").forEach(bodyPath => { + if (isPolyfillSource(getRequireSource(bodyPath))) { + this.replaceBySeparateModulesImport(bodyPath); + } + }); + }, + }; + + return { + name: "corejs2-entry", + visitor: isPolyfillImport, + pre() { + this.importPolyfillIncluded = false; + + this.replaceBySeparateModulesImport = function(path) { + this.importPolyfillIncluded = true; + + if (regenerator) { + createImport(path, "regenerator-runtime"); + } + + const modules = Array.from(polyfills).reverse(); + + for (const module of modules) { + createImport(path, module); + } + + path.remove(); + }; + }, + post() { + if (debug) { + logEntryPolyfills( + "@babel/polyfill", + this.importPolyfillIncluded, + polyfills, + this.file.opts.filename, + polyfillTargets, + corejs2Polyfills, + ); + } + }, + }; +} diff --git a/packages/babel-preset-env/src/polyfills/corejs2/get-platform-specific-default.js b/packages/babel-preset-env/src/polyfills/corejs2/get-platform-specific-default.js new file mode 100644 index 0000000000..aa89ebfb19 --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/corejs2/get-platform-specific-default.js @@ -0,0 +1,17 @@ +// @flow + +import type { Targets } from "../../types"; + +export const defaultWebIncludes = [ + "web.timers", + "web.immediate", + "web.dom.iterable", +]; + +export default function(targets: Targets): null | string[] { + const targetNames = Object.keys(targets); + const isAnyTarget = !targetNames.length; + const isWebTarget = targetNames.some(name => name !== "node"); + + return isAnyTarget || isWebTarget ? defaultWebIncludes : null; +} diff --git a/packages/babel-preset-env/src/polyfills/corejs2/usage-plugin.js b/packages/babel-preset-env/src/polyfills/corejs2/usage-plugin.js new file mode 100644 index 0000000000..0387361008 --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/corejs2/usage-plugin.js @@ -0,0 +1,216 @@ +// @flow + +import corejs2Polyfills from "../../../data/corejs2-built-ins.json"; +import getPlatformSpecificDefaultFor from "./get-platform-specific-default"; +import filterItems from "../../filter-items"; +import { + BuiltIns, + StaticProperties, + InstanceProperties, +} from "./built-in-definitions"; +import { + createImport, + getType, + has, + isPolyfillSource, + getImportSource, + getRequireSource, +} from "../../utils"; +import { logUsagePolyfills } from "../../debug"; + +import type { InternalPluginOptions } from "../../types"; +import type { NodePath } from "@babel/traverse"; + +const NO_DIRECT_POLYFILL_IMPORT = ` + When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed. + Please remove the \`import '@babel/polyfill'\` call or use \`useBuiltIns: 'entry'\` instead.`; + +export default function( + { types: t }: { types: Object }, + { include, exclude, polyfillTargets, debug }: InternalPluginOptions, +) { + const polyfills = filterItems( + corejs2Polyfills, + include, + exclude, + polyfillTargets, + getPlatformSpecificDefaultFor(polyfillTargets), + ); + + const addAndRemovePolyfillImports = { + ImportDeclaration(path: NodePath) { + if (isPolyfillSource(getImportSource(path))) { + console.warn(NO_DIRECT_POLYFILL_IMPORT); + path.remove(); + } + }, + + Program(path: NodePath) { + path.get("body").forEach(bodyPath => { + if (isPolyfillSource(getRequireSource(bodyPath))) { + console.warn(NO_DIRECT_POLYFILL_IMPORT); + bodyPath.remove(); + } + }); + }, + + // Symbol() + // new Promise + ReferencedIdentifier({ node: { name }, parent, scope }: NodePath) { + if (t.isMemberExpression(parent)) return; + if (!has(BuiltIns, name)) return; + if (scope.getBindingIdentifier(name)) return; + + const BuiltInDependencies = BuiltIns[name]; + this.addUnsupported(BuiltInDependencies); + }, + + // arr[Symbol.iterator]() + CallExpression(path: NodePath) { + // we can't compile this + if (path.node.arguments.length) return; + + const callee = path.node.callee; + + if (!t.isMemberExpression(callee)) return; + if (!callee.computed) return; + if (!path.get("callee.property").matchesPattern("Symbol.iterator")) { + return; + } + + this.addImport("web.dom.iterable"); + }, + + // Symbol.iterator in arr + BinaryExpression(path: NodePath) { + if (path.node.operator !== "in") return; + if (!path.get("left").matchesPattern("Symbol.iterator")) return; + + this.addImport("web.dom.iterable"); + }, + + // yield* + YieldExpression(path: NodePath) { + if (path.node.delegate) { + this.addImport("web.dom.iterable"); + } + }, + + // Array.from + MemberExpression: { + enter(path: NodePath) { + const { node } = path; + const { object, property } = node; + + let evaluatedPropType = object.name; + let propertyName = property.name; + let instanceType = ""; + + if (node.computed) { + if (t.isStringLiteral(property)) { + propertyName = property.value; + } else { + const result = path.get("property").evaluate(); + if (result.confident && result.value) { + propertyName = result.value; + } + } + } + + if (path.scope.getBindingIdentifier(object.name)) { + const result = path.get("object").evaluate(); + if (result.value) { + instanceType = getType(result.value); + } else if (result.deopt && result.deopt.isIdentifier()) { + evaluatedPropType = result.deopt.node.name; + } + } + + if (has(StaticProperties, evaluatedPropType)) { + const BuiltInProperties = StaticProperties[evaluatedPropType]; + if (has(BuiltInProperties, propertyName)) { + const StaticPropertyDependencies = BuiltInProperties[propertyName]; + this.addUnsupported(StaticPropertyDependencies); + } + } + + if (has(InstanceProperties, propertyName)) { + let InstancePropertyDependencies = InstanceProperties[propertyName]; + if (instanceType) { + InstancePropertyDependencies = InstancePropertyDependencies.filter( + module => module.includes(instanceType), + ); + } + this.addUnsupported(InstancePropertyDependencies); + } + }, + + // Symbol.match + exit(path: NodePath) { + const { name } = path.node.object; + + if (!has(BuiltIns, name)) return; + if (path.scope.getBindingIdentifier(name)) return; + + const BuiltInDependencies = BuiltIns[name]; + this.addUnsupported(BuiltInDependencies); + }, + }, + + // var { repeat, startsWith } = String + VariableDeclarator(path: NodePath) { + const { node } = path; + const { id, init } = node; + + if (!t.isObjectPattern(id)) return; + + // doesn't reference the global + if (init && path.scope.getBindingIdentifier(init.name)) return; + + for (const { key } of id.properties) { + if ( + !node.computed && + t.isIdentifier(key) && + has(InstanceProperties, key.name) + ) { + const InstancePropertyDependencies = InstanceProperties[key.name]; + this.addUnsupported(InstancePropertyDependencies); + } + } + }, + }; + + return { + name: "corejs2-usage", + pre({ path }: { path: NodePath }) { + this.polyfillsSet = new Set(); + + this.addImport = function(builtIn) { + if (!this.polyfillsSet.has(builtIn)) { + this.polyfillsSet.add(builtIn); + createImport(path, builtIn); + } + }; + + this.addUnsupported = function(builtIn) { + const modules = Array.isArray(builtIn) ? builtIn : [builtIn]; + for (const module of modules) { + if (polyfills.has(module)) { + this.addImport(module); + } + } + }; + }, + post() { + if (debug) { + logUsagePolyfills( + this.polyfillsSet, + this.file.opts.filename, + polyfillTargets, + corejs2Polyfills, + ); + } + }, + visitor: addAndRemovePolyfillImports, + }; +} diff --git a/packages/babel-preset-env/src/polyfills/corejs3/built-in-definitions.js b/packages/babel-preset-env/src/polyfills/corejs3/built-in-definitions.js new file mode 100644 index 0000000000..656738f16f --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/corejs3/built-in-definitions.js @@ -0,0 +1,443 @@ +// @flow + +type ObjectMap = { [name: string]: V }; + +const ArrayNatureIterators = [ + "es.array.iterator", + "web.dom-collections.iterator", +]; + +export const CommonIterators = ["es.string.iterator", ...ArrayNatureIterators]; + +const ArrayNatureIteratorsWithTag = [ + "es.object.to-string", + ...ArrayNatureIterators, +]; + +const CommonIteratorsWithTag = ["es.object.to-string", ...CommonIterators]; + +const TypedArrayDependencies = [ + "es.typed-array.copy-within", + "es.typed-array.every", + "es.typed-array.fill", + "es.typed-array.filter", + "es.typed-array.find", + "es.typed-array.find-index", + "es.typed-array.for-each", + "es.typed-array.includes", + "es.typed-array.index-of", + "es.typed-array.iterator", + "es.typed-array.join", + "es.typed-array.last-index-of", + "es.typed-array.map", + "es.typed-array.reduce", + "es.typed-array.reduce-right", + "es.typed-array.reverse", + "es.typed-array.set", + "es.typed-array.slice", + "es.typed-array.some", + "es.typed-array.sort", + "es.typed-array.subarray", + "es.typed-array.to-locale-string", + "es.typed-array.to-string", + "es.object.to-string", + "es.array.iterator", + "es.array-buffer.slice", +]; + +const TypedArrayStaticMethods = { + from: "es.typed-array.from", + of: "es.typed-array.of", +}; + +export const PromiseDependencies = ["es.promise", "es.object.to-string"]; + +const PromiseDependenciesWithIterators = [ + ...PromiseDependencies, + ...CommonIterators, +]; + +const SymbolDependencies = [ + "es.symbol", + "es.symbol.description", + "es.object.to-string", +]; + +const MapDependencies = [ + "es.map", + "esnext.map.delete-all", + "esnext.map.every", + "esnext.map.filter", + "esnext.map.find", + "esnext.map.find-key", + "esnext.map.includes", + "esnext.map.key-of", + "esnext.map.map-keys", + "esnext.map.map-values", + "esnext.map.merge", + "esnext.map.reduce", + "esnext.map.some", + "esnext.map.update", + ...CommonIteratorsWithTag, +]; + +const SetDependencies = [ + "es.set", + "esnext.set.add-all", + "esnext.set.delete-all", + "esnext.set.difference", + "esnext.set.every", + "esnext.set.filter", + "esnext.set.find", + "esnext.set.intersection", + "esnext.set.is-disjoint-from", + "esnext.set.is-subset-of", + "esnext.set.is-superset-of", + "esnext.set.join", + "esnext.set.map", + "esnext.set.reduce", + "esnext.set.some", + "esnext.set.symmetric-difference", + "esnext.set.union", + ...CommonIteratorsWithTag, +]; + +const WeakMapDependencies = [ + "es.weak-map", + "esnext.weak-map.delete-all", + ...CommonIteratorsWithTag, +]; + +const WeakSetDependencies = [ + "es.weak-set", + "esnext.weak-set.add-all", + "esnext.weak-set.delete-all", + ...CommonIteratorsWithTag, +]; + +const URLSearchParamsDependencies = ["web.url", ...CommonIteratorsWithTag]; + +export const BuiltIns: ObjectMap = { + AggregateError: ["esnext.aggregate-error", ...CommonIterators], + ArrayBuffer: [ + "es.array-buffer.constructor", + "es.array-buffer.slice", + "es.object.to-string", + ], + DataView: ["es.data-view", "es.array-buffer.slice", "es.object.to-string"], + Date: ["es.date.to-string"], + Float32Array: ["es.typed-array.float32-array", ...TypedArrayDependencies], + Float64Array: ["es.typed-array.float64-array", ...TypedArrayDependencies], + Int8Array: ["es.typed-array.int8-array", ...TypedArrayDependencies], + Int16Array: ["es.typed-array.int16-array", ...TypedArrayDependencies], + Int32Array: ["es.typed-array.int32-array", ...TypedArrayDependencies], + Uint8Array: ["es.typed-array.uint8-array", ...TypedArrayDependencies], + Uint8ClampedArray: [ + "es.typed-array.uint8-clamped-array", + ...TypedArrayDependencies, + ], + Uint16Array: ["es.typed-array.uint16-array", ...TypedArrayDependencies], + Uint32Array: ["es.typed-array.uint32-array", ...TypedArrayDependencies], + Map: MapDependencies, + Number: ["es.number.constructor"], + Observable: [ + "esnext.observable", + "esnext.symbol.observable", + "es.object.to-string", + ...CommonIteratorsWithTag, + ], + Promise: PromiseDependencies, + RegExp: ["es.regexp.constructor", "es.regexp.exec", "es.regexp.to-string"], + Set: SetDependencies, + Symbol: SymbolDependencies, + URL: ["web.url", ...URLSearchParamsDependencies], + URLSearchParams: URLSearchParamsDependencies, + WeakMap: WeakMapDependencies, + WeakSet: WeakSetDependencies, + clearImmediate: ["web.immediate"], + compositeKey: ["esnext.composite-key"], + compositeSymbol: ["esnext.composite-symbol", ...SymbolDependencies], + fetch: PromiseDependencies, + globalThis: ["esnext.global-this"], + parseFloat: ["es.parse-float"], + parseInt: ["es.parse-int"], + queueMicrotask: ["web.queue-microtask"], + setTimeout: ["web.timers"], + setInterval: ["web.timers"], + setImmediate: ["web.immediate"], +}; + +export const InstanceProperties: ObjectMap = { + at: ["esnext.string.at"], + anchor: ["es.string.anchor"], + big: ["es.string.big"], + bind: ["es.function.bind"], + blink: ["es.string.blink"], + bold: ["es.string.bold"], + codePointAt: ["es.string.code-point-at"], + codePoints: ["esnext.string.code-points"], + concat: ["es.array.concat"], + copyWithin: ["es.array.copy-within"], + description: ["es.symbol", "es.symbol.description"], + endsWith: ["es.string.ends-with"], + entries: ArrayNatureIteratorsWithTag, + every: ["es.array.every"], + exec: ["es.regexp.exec"], + fill: ["es.array.fill"], + filter: ["es.array.filter"], + finally: ["es.promise.finally", ...PromiseDependencies], + find: ["es.array.find"], + findIndex: ["es.array.find-index"], + fixed: ["es.string.fixed"], + flags: ["es.regexp.flags"], + flat: ["es.array.flat", "es.array.unscopables.flat"], + flatMap: ["es.array.flat-map", "es.array.unscopables.flat-map"], + fontcolor: ["es.string.fontcolor"], + fontsize: ["es.string.fontsize"], + forEach: ["es.array.for-each", "web.dom-collections.for-each"], + includes: ["es.array.includes", "es.string.includes"], + indexOf: ["es.array.index-of"], + italic: ["es.string.italics"], + join: ["es.array.join"], + keys: ArrayNatureIteratorsWithTag, + lastIndex: ["esnext.array.last-index"], + lastIndexOf: ["es.array.last-index-of"], + lastItem: ["esnext.array.last-item"], + link: ["es.string.link"], + match: ["es.string.match", "es.regexp.exec"], + matchAll: ["esnext.string.match-all"], + map: ["es.array.map"], + name: ["es.function.name"], + padEnd: ["es.string.pad-end"], + padStart: ["es.string.pad-start"], + reduce: ["es.array.reduce"], + reduceRight: ["es.array.reduce-right"], + repeat: ["es.string.repeat"], + replace: ["es.string.replace", "es.regexp.exec"], + replaceAll: ["esnext.string.replace-all"], + reverse: ["es.string.reverse"], + search: ["es.string.search", "es.regexp.exec"], + slice: ["es.array.slice"], + small: ["es.string.small"], + some: ["es.array.some"], + sort: ["es.array.sort"], + splice: ["es.array.splice"], + split: ["es.string.split", "es.regexp.exec"], + startsWith: ["es.string.starts-with"], + strike: ["es.string.strike"], + sub: ["es.string.sub"], + sup: ["es.string.sup"], + toFixed: ["es.number.to-fixed"], + toISOString: ["es.date.to-iso-string"], + toJSON: ["es.date.to-json", "web.url.to-json"], + toPrecision: ["es.number.to-precision"], + toString: ["es.object.to-string", "es.regexp.to-string", "es.date.to-string"], + trim: ["es.string.trim"], + trimEnd: ["es.string.trim-end"], + trimLeft: ["es.string.trim-start"], + trimRight: ["es.string.trim-end"], + trimStart: ["es.string.trim-start"], + values: ArrayNatureIteratorsWithTag, + __defineGetter__: ["es.object.define-getter"], + __defineSetter__: ["es.object.define-setter"], + __lookupGetter__: ["es.object.lookup-getter"], + __lookupSetter__: ["es.object.lookup-setter"], +}; + +export const StaticProperties: ObjectMap> = { + Array: { + from: ["es.array.from", "es.string.iterator"], + isArray: ["es.array.is-array"], + of: ["es.array.of"], + }, + + Date: { + now: "es.date.now", + }, + + Object: { + assign: "es.object.assign", + create: "es.object.create", + defineProperty: "es.object.define-property", + defineProperties: "es.object.define-properties", + entries: "es.object.entries", + freeze: "es.object.freeze", + fromEntries: ["es.object.from-entries", "es.array.iterator"], + getOwnPropertyDescriptor: "es.object.get-own-property-descriptor", + getOwnPropertyDescriptors: "es.object.get-own-property-descriptors", + getOwnPropertyNames: "es.object.get-own-property-names", + getOwnPropertySymbols: "es.symbol", + getPrototypeOf: "es.object.get-prototype-of", + is: "es.object.is", + isExtensible: "es.object.is-extensible", + isFrozen: "es.object.is-frozen", + isSealed: "es.object.is-sealed", + keys: "es.object.keys", + preventExtensions: "es.object.prevent-extensions", + seal: "es.object.seal", + setPrototypeOf: "es.object.set-prototype-of", + values: "es.object.values", + }, + + Math: { + DEG_PER_RAD: "esnext.math.deg-per-rad", + RAD_PER_DEG: "esnext.math.rad-per-deg", + acosh: "es.math.acosh", + asinh: "es.math.asinh", + atanh: "es.math.atanh", + cbrt: "es.math.cbrt", + clamp: "esnext.math.clamp", + clz32: "es.math.clz32", + cosh: "es.math.cosh", + degrees: "esnext.math.degrees", + expm1: "es.math.expm1", + fround: "es.math.fround", + fscale: "esnext.math.fscale", + hypot: "es.math.hypot", + iaddh: "esnext.math.iaddh", + imul: "es.math.imul", + imulh: "esnext.math.imulh", + isubh: "esnext.math.isubh", + log1p: "es.math.log1p", + log10: "es.math.log10", + log2: "es.math.log2", + radians: "esnext.math.radians", + scale: "esnext.math.scale", + seededPRNG: "esnext.math.seeded-prng", + sign: "es.math.sign", + signbit: "esnext.math.signbit", + sinh: "es.math.sinh", + tanh: "es.math.tanh", + trunc: "es.math.trunc", + umulh: "esnext.math.umulh", + }, + + String: { + fromCodePoint: "es.string.from-code-point", + raw: "es.string.raw", + }, + + Number: { + EPSILON: "es.number.epsilon", + MIN_SAFE_INTEGER: "es.number.min-safe-integer", + MAX_SAFE_INTEGER: "es.number.max-safe-integer", + fromString: "esnext.number.from-string", + isFinite: "es.number.is-finite", + isInteger: "es.number.is-integer", + isSafeInteger: "es.number.is-safe-integer", + isNaN: "es.number.is-nan", + parseFloat: "es.number.parse-float", + parseInt: "es.number.parse-int", + }, + + Map: { + from: ["esnext.map.from", ...MapDependencies], + groupBy: ["esnext.map.group-by", ...MapDependencies], + keyBy: ["esnext.map.key-by", ...MapDependencies], + of: ["esnext.map.of", ...MapDependencies], + }, + + Set: { + from: ["esnext.set.from", ...SetDependencies], + of: ["esnext.set.of", ...SetDependencies], + }, + + WeakMap: { + from: ["esnext.weak-map.from", ...WeakMapDependencies], + of: ["esnext.weak-map.of", ...WeakMapDependencies], + }, + + WeakSet: { + from: ["esnext.weak-set.from", ...WeakSetDependencies], + of: ["esnext.weak-set.of", ...WeakSetDependencies], + }, + + Promise: { + all: PromiseDependenciesWithIterators, + allSettled: [ + "esnext.promise.all-settled", + ...PromiseDependenciesWithIterators, + ], + any: ["esnext.promise.any", ...PromiseDependenciesWithIterators], + race: PromiseDependenciesWithIterators, + try: ["esnext.promise.try", ...PromiseDependenciesWithIterators], + }, + + Reflect: { + apply: "es.reflect.apply", + construct: "es.reflect.construct", + defineMetadata: "esnext.reflect.define-metadata", + defineProperty: "es.reflect.define-property", + deleteMetadata: "esnext.reflect.delete-metadata", + deleteProperty: "es.reflect.delete-property", + get: "es.reflect.get", + getMetadata: "esnext.reflect.get-metadata", + getMetadataKeys: "esnext.reflect.get-metadata-keys", + getOwnMetadata: "esnext.reflect.get-own-metadata", + getOwnMetadataKeys: "esnext.reflect.get-own-metadata-keys", + getOwnPropertyDescriptor: "es.reflect.get-own-property-descriptor", + getPrototypeOf: "es.reflect.get-prototype-of", + has: "es.reflect.has", + hasMetadata: "esnext.reflect.has-metadata", + hasOwnMetadata: "esnext.reflect.has-own-metadata", + isExtensible: "es.reflect.is-extensible", + metadata: "esnext.reflect.metadata", + ownKeys: "es.reflect.own-keys", + preventExtensions: "es.reflect.prevent-extensions", + set: "es.reflect.set", + setPrototypeOf: "es.reflect.set-prototype-of", + }, + + Symbol: { + asyncIterator: ["es.symbol.async-iterator"], + dispose: ["esnext.symbol.dispose"], + hasInstance: ["es.symbol.has-instance", "es.function.has-instance"], + isConcatSpreadable: ["es.symbol.is-concat-spreadable", "es.array.concat"], + iterator: ["es.symbol.iterator", ...CommonIteratorsWithTag], + match: ["es.symbol.match", "es.string.match"], + observable: ["esnext.symbol.observable"], + patternMatch: ["esnext.symbol.pattern-match"], + replace: ["es.symbol.replace", "es.string.replace"], + search: ["es.symbol.search", "es.string.search"], + species: ["es.symbol.species", "es.array.species"], + split: ["es.symbol.split", "es.string.split"], + toPrimitive: ["es.symbol.to-primitive", "es.date.to-primitive"], + toStringTag: [ + "es.symbol.to-string-tag", + "es.object.to-string", + "es.math.to-string-tag", + "es.json.to-string-tag", + ], + unscopables: ["es.symbol.unscopables"], + }, + + ArrayBuffer: { + isView: ["es.array-buffer.is-view"], + }, + + Int8Array: TypedArrayStaticMethods, + Uint8Array: TypedArrayStaticMethods, + Uint8ClampedArray: TypedArrayStaticMethods, + Int16Array: TypedArrayStaticMethods, + Uint16Array: TypedArrayStaticMethods, + Int32Array: TypedArrayStaticMethods, + Uint32Array: TypedArrayStaticMethods, + Float32Array: TypedArrayStaticMethods, + Float64Array: TypedArrayStaticMethods, +}; + +export const CommonInstanceDependencies = new Set([ + "es.object.to-string", + "es.object.define-getter", + "es.object.define-setter", + "es.object.lookup-getter", + "es.object.lookup-setter", + "es.regexp.exec", +]); + +export const PossibleGlobalObjects = new Set([ + "global", + "globalThis", + "self", + "window", +]); diff --git a/packages/babel-preset-env/src/polyfills/corejs3/entry-plugin.js b/packages/babel-preset-env/src/polyfills/corejs3/entry-plugin.js new file mode 100644 index 0000000000..da8034779d --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/corejs3/entry-plugin.js @@ -0,0 +1,108 @@ +// @flow + +import corejs3Polyfills from "core-js-compat/data"; +import corejsEntries from "core-js-compat/entries"; +import getModulesListForTargetVersion from "core-js-compat/get-modules-list-for-target-version"; +import filterItems from "../../filter-items"; +import { + has, + intersection, + createImport, + getImportSource, + getRequireSource, +} from "../../utils"; +import { logEntryPolyfills } from "../../debug"; + +import type { InternalPluginOptions } from "../../types"; +import type { NodePath } from "@babel/traverse"; + +function isBabelPolyfillSource(source) { + return source === "@babel/polyfill" || source === "babel-polyfill"; +} + +function isCoreJSSource(source) { + return has(corejsEntries, source) && corejsEntries[source]; +} + +const BABEL_POLYFILL_DEPRECATION = ` + \`@babel/polyfill\` is deprecated. Please, use required parts of \`core-js\` + and \`regenerator-runtime/runtime\` separately`; + +export default function( + _: any, + { corejs, include, exclude, polyfillTargets, debug }: InternalPluginOptions, +) { + const polyfills = filterItems( + corejs3Polyfills, + include, + exclude, + polyfillTargets, + null, + ); + + const available = new Set(getModulesListForTargetVersion(corejs.version)); + + const isPolyfillImport = { + ImportDeclaration(path: NodePath) { + const source = getImportSource(path); + if (!source) return; + if (isBabelPolyfillSource(source)) { + console.warn(BABEL_POLYFILL_DEPRECATION); + } else { + const modules = isCoreJSSource(source); + if (modules) { + this.replaceBySeparateModulesImport(path, modules); + } + } + }, + Program(path: NodePath) { + path.get("body").forEach(bodyPath => { + const source = getRequireSource(bodyPath); + if (!source) return; + if (isBabelPolyfillSource(source)) { + console.warn(BABEL_POLYFILL_DEPRECATION); + } else { + const modules = isCoreJSSource(source); + if (modules) { + this.replaceBySeparateModulesImport(bodyPath, modules); + } + } + }); + }, + }; + + return { + name: "corejs3-entry", + visitor: isPolyfillImport, + pre() { + this.polyfillsSet = new Set(); + + this.replaceBySeparateModulesImport = function(path, modules) { + for (const module of modules) { + this.polyfillsSet.add(module); + } + + path.remove(); + }; + }, + post({ path }: { path: NodePath }) { + const filtered = intersection(polyfills, this.polyfillsSet, available); + const reversed = Array.from(filtered).reverse(); + + for (const module of reversed) { + createImport(path, module); + } + + if (debug) { + logEntryPolyfills( + "core-js", + this.polyfillsSet.size > 0, + filtered, + this.file.opts.filename, + polyfillTargets, + corejs3Polyfills, + ); + } + }, + }; +} diff --git a/packages/babel-preset-env/src/polyfills/corejs3/shipped-proposals.js b/packages/babel-preset-env/src/polyfills/corejs3/shipped-proposals.js new file mode 100644 index 0000000000..c2d2ee875a --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/corejs3/shipped-proposals.js @@ -0,0 +1,3 @@ +// @flow + +export default (["esnext.global-this", "esnext.string.match-all"]: string[]); diff --git a/packages/babel-preset-env/src/polyfills/corejs3/usage-plugin.js b/packages/babel-preset-env/src/polyfills/corejs3/usage-plugin.js new file mode 100644 index 0000000000..e4d15948ff --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/corejs3/usage-plugin.js @@ -0,0 +1,270 @@ +// @flow + +import corejs3Polyfills from "core-js-compat/data"; +import corejs3ShippedProposalsList from "./shipped-proposals"; +import getModulesListForTargetVersion from "core-js-compat/get-modules-list-for-target-version"; +import filterItems from "../../filter-items"; +import { + BuiltIns, + StaticProperties, + InstanceProperties, + CommonIterators, + CommonInstanceDependencies, + PromiseDependencies, + PossibleGlobalObjects, +} from "./built-in-definitions"; +import { + createImport, + getType, + has, + intersection, + isPolyfillSource, + getImportSource, + getRequireSource, +} from "../../utils"; +import { logUsagePolyfills } from "../../debug"; + +import type { InternalPluginOptions } from "../../types"; +import type { NodePath } from "@babel/traverse"; + +const NO_DIRECT_POLYFILL_IMPORT = ` + When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed. + Please remove the direct import of \`core-js\` or use \`useBuiltIns: 'entry'\` instead.`; + +const corejs3PolyfillsWithoutProposals = Object.keys(corejs3Polyfills) + .filter(name => !name.startsWith("esnext.")) + .reduce((memo, key) => { + memo[key] = corejs3Polyfills[key]; + return memo; + }, {}); + +const corejs3PolyfillsWithShippedProposals = corejs3ShippedProposalsList.reduce( + (memo, key) => { + memo[key] = corejs3Polyfills[key]; + return memo; + }, + { ...corejs3PolyfillsWithoutProposals }, +); + +export default function( + _: any, + { + corejs, + include, + exclude, + polyfillTargets, + proposals, + shippedProposals, + debug, + }: InternalPluginOptions, +) { + const polyfills = filterItems( + proposals + ? corejs3Polyfills + : shippedProposals + ? corejs3PolyfillsWithShippedProposals + : corejs3PolyfillsWithoutProposals, + include, + exclude, + polyfillTargets, + null, + ); + + const available = new Set(getModulesListForTargetVersion(corejs.version)); + + function resolveKey(path, computed) { + const { node, parent, scope } = path; + if (path.isStringLiteral()) return node.value; + const { name } = node; + const isIdentifier = path.isIdentifier(); + if (isIdentifier && !(computed || parent.computed)) return name; + if (!isIdentifier || scope.getBindingIdentifier(name)) { + const { value } = path.evaluate(); + if (typeof value === "string") return value; + } + } + + function resolveSource(path) { + const { node, scope } = path; + let builtIn, instanceType; + if (node) { + builtIn = node.name; + if (!path.isIdentifier() || scope.getBindingIdentifier(builtIn)) { + const { deopt, value } = path.evaluate(); + if (value !== undefined) { + instanceType = getType(value); + } else if (deopt && deopt.isIdentifier()) { + builtIn = deopt.node.name; + } + } + } + return { builtIn, instanceType }; + } + + const addAndRemovePolyfillImports = { + // import 'core-js' + ImportDeclaration(path: NodePath) { + if (isPolyfillSource(getImportSource(path))) { + console.warn(NO_DIRECT_POLYFILL_IMPORT); + path.remove(); + } + }, + + // require('core-js') + Program(path: NodePath) { + path.get("body").forEach(bodyPath => { + if (isPolyfillSource(getRequireSource(bodyPath))) { + console.warn(NO_DIRECT_POLYFILL_IMPORT); + bodyPath.remove(); + } + }); + }, + + // import('something').then(...) + Import() { + this.addUnsupported(PromiseDependencies); + }, + + Function({ node }: NodePath) { + // (async function () { }).finally(...) + if (node.async) { + this.addUnsupported(PromiseDependencies); + } + }, + + // for-of, [a, b] = c + "ForOfStatement|ArrayPattern"() { + this.addUnsupported(CommonIterators); + }, + + // [...spread] + SpreadElement({ parentPath }: NodePath) { + if (!parentPath.isObjectExpression()) { + this.addUnsupported(CommonIterators); + } + }, + + // yield* + YieldExpression({ node }: NodePath) { + if (node.delegate) { + this.addUnsupported(CommonIterators); + } + }, + + // Symbol(), new Promise + ReferencedIdentifier({ node: { name }, scope }: NodePath) { + if (scope.getBindingIdentifier(name)) return; + + this.addBuiltInDependencies(name); + }, + + MemberExpression(path: NodePath) { + const source = resolveSource(path.get("object")); + const key = resolveKey(path.get("property")); + + // Object.entries + // [1, 2, 3].entries + this.addPropertyDependencies(source, key); + }, + + ObjectPattern(path: NodePath) { + const { parentPath, parent, key } = path; + let source; + + // const { keys, values } = Object + if (parentPath.isVariableDeclarator()) { + source = resolveSource(parentPath.get("init")); + // ({ keys, values } = Object) + } else if (parentPath.isAssignmentExpression()) { + source = resolveSource(parentPath.get("right")); + // !function ({ keys, values }) {...} (Object) + // resolution does not work after properties transform :-( + } else if (parentPath.isFunctionExpression()) { + const grand = parentPath.parentPath; + if (grand.isCallExpression() || grand.isNewExpression()) { + if (grand.node.callee === parent) { + source = resolveSource(grand.get("arguments")[key]); + } + } + } + + for (const property of path.get("properties")) { + const key = resolveKey(property.get("key")); + // const { keys, values } = Object + // const { keys, values } = [1, 2, 3] + this.addPropertyDependencies(source, key); + } + }, + + BinaryExpression(path: NodePath) { + if (path.node.operator !== "in") return; + + const source = resolveSource(path.get("right")); + const key = resolveKey(path.get("left"), true); + + // 'entries' in Object + // 'entries' in [1, 2, 3] + this.addPropertyDependencies(source, key); + }, + }; + + return { + name: "corejs3-usage", + pre() { + this.polyfillsSet = new Set(); + + this.addUnsupported = function(builtIn) { + const modules = Array.isArray(builtIn) ? builtIn : [builtIn]; + for (const module of modules) { + this.polyfillsSet.add(module); + } + }; + + this.addBuiltInDependencies = function(builtIn) { + if (has(BuiltIns, builtIn)) { + const BuiltInDependencies = BuiltIns[builtIn]; + this.addUnsupported(BuiltInDependencies); + } + }; + + this.addPropertyDependencies = function(source = {}, key) { + const { builtIn, instanceType } = source; + if (PossibleGlobalObjects.has(builtIn)) { + this.addBuiltInDependencies(key); + } else if (has(StaticProperties, builtIn)) { + const BuiltInProperties = StaticProperties[builtIn]; + if (has(BuiltInProperties, key)) { + const StaticPropertyDependencies = BuiltInProperties[key]; + return this.addUnsupported(StaticPropertyDependencies); + } + } + if (!has(InstanceProperties, key)) return; + let InstancePropertyDependencies = InstanceProperties[key]; + if (instanceType) { + InstancePropertyDependencies = InstancePropertyDependencies.filter( + m => m.includes(instanceType) || CommonInstanceDependencies.has(m), + ); + } + this.addUnsupported(InstancePropertyDependencies); + }; + }, + post({ path }: { path: NodePath }) { + const filtered = intersection(polyfills, this.polyfillsSet, available); + const reversed = Array.from(filtered).reverse(); + + for (const module of reversed) { + createImport(path, module); + } + + if (debug) { + logUsagePolyfills( + filtered, + this.file.opts.filename, + polyfillTargets, + corejs3Polyfills, + ); + } + }, + visitor: addAndRemovePolyfillImports, + }; +} diff --git a/packages/babel-preset-env/src/polyfills/regenerator/entry-plugin.js b/packages/babel-preset-env/src/polyfills/regenerator/entry-plugin.js new file mode 100644 index 0000000000..a7872ac542 --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/regenerator/entry-plugin.js @@ -0,0 +1,44 @@ +// @flow + +import { getImportSource, getRequireSource } from "../../utils"; +import type { NodePath } from "@babel/traverse"; + +function isRegeneratorSource(source) { + return source === "regenerator-runtime/runtime"; +} + +export default function() { + const visitor = { + ImportDeclaration(path: NodePath) { + if (isRegeneratorSource(getImportSource(path))) { + this.regeneratorImportExcluded = true; + path.remove(); + } + }, + Program(path: NodePath) { + path.get("body").forEach(bodyPath => { + if (isRegeneratorSource(getRequireSource(bodyPath))) { + this.regeneratorImportExcluded = true; + bodyPath.remove(); + } + }); + }, + }; + + return { + name: "regenerator-entry", + visitor, + pre() { + this.regeneratorImportExcluded = false; + }, + post() { + if (this.opts.debug && this.regeneratorImportExcluded) { + console.log( + `\n[${ + this.file.opts.filename + }] Based on your targets, regenerator-runtime import excluded.`, + ); + } + }, + }; +} diff --git a/packages/babel-preset-env/src/polyfills/regenerator/usage-plugin.js b/packages/babel-preset-env/src/polyfills/regenerator/usage-plugin.js new file mode 100644 index 0000000000..36ac15502b --- /dev/null +++ b/packages/babel-preset-env/src/polyfills/regenerator/usage-plugin.js @@ -0,0 +1,32 @@ +// @flow + +import { createImport } from "../../utils"; +import type { NodePath } from "@babel/traverse"; + +export default function() { + return { + name: "regenerator-usage", + pre() { + this.usesRegenerator = false; + }, + visitor: { + Function(path: NodePath) { + const { node } = path; + + if (!this.usesRegenerator && (node.generator || node.async)) { + this.usesRegenerator = true; + createImport(path, "regenerator-runtime"); + } + }, + }, + post() { + if (this.opts.debug && this.usesRegenerator) { + console.log( + `\n[${ + this.file.opts.filename + }] Based on your code and targets, added regenerator-runtime.`, + ); + } + }, + }; +} diff --git a/packages/babel-preset-env/src/targets-parser.js b/packages/babel-preset-env/src/targets-parser.js index 2e8cd51f61..66d59bb02c 100644 --- a/packages/babel-preset-env/src/targets-parser.js +++ b/packages/babel-preset-env/src/targets-parser.js @@ -7,23 +7,36 @@ import { semverify, isUnreleasedVersion, getLowestUnreleased, - getValues, findSuggestion, } from "./utils"; -import { objectToBrowserslist } from "./normalize-options"; import browserModulesData from "../data/built-in-modules.json"; import { TargetNames } from "./options"; import type { Targets } from "./types"; const browserslistDefaults = browserslist.defaults; -const validateTargetNames = (validTargets, targets) => { +const validBrowserslistTargets = [ + ...Object.keys(browserslist.data), + ...Object.keys(browserslist.aliases), +]; + +const objectToBrowserslist = (object: Targets): Array => { + return Object.keys(object).reduce((list, targetName) => { + if (validBrowserslistTargets.indexOf(targetName) >= 0) { + const targetVersion = object[targetName]; + return list.concat(`${targetName} ${targetVersion}`); + } + return list; + }, []); +}; + +const validateTargetNames = (targets: Targets): void => { + const validTargets = Object.keys(TargetNames); for (const target in targets) { if (!TargetNames[target]) { - const validOptions = getValues(TargetNames); throw new Error( `Invalid Option: '${target}' is not a valid target - Maybe you meant to use '${findSuggestion(validOptions, target)}'?`, + Maybe you meant to use '${findSuggestion(validTargets, target)}'?`, ); } } @@ -40,6 +53,7 @@ const browserNameMap = { node: "node", opera: "opera", safari: "safari", + samsung: "samsung", }; export const isBrowsersQueryValid = ( diff --git a/packages/babel-preset-env/src/types.js b/packages/babel-preset-env/src/types.js index fe7428d204..c1c3157eb2 100644 --- a/packages/babel-preset-env/src/types.js +++ b/packages/babel-preset-env/src/types.js @@ -1,9 +1,22 @@ //@flow -import { TargetNames, ModulesOption, UseBuiltInsOption } from "./options"; +import { ModulesOption, UseBuiltInsOption } from "./options"; +import type { NormalizedCorejsOption } from "./normalize-options"; // Targets -export type Target = $Keys; +export type Target = + | "node" + | "chrome" + | "opera" + | "edge" + | "firefox" + | "safari" + | "ie" + | "ios" + | "android" + | "electron" + | "samsung"; + export type Targets = { [target: Target]: string, }; @@ -13,13 +26,24 @@ export type Targets = { export type ModuleOption = $Values; export type BuiltInsOption = $Values; +type CorejsVersion = 2 | 3 | string; + +export type CorejsOption = + | false + | CorejsVersion + | { version: CorejsVersion, proposals: boolean }; + +export type PluginListItem = string | RegExp; +export type PluginListOption = Array; + export type Options = { configPath: string, + corejs: CorejsOption, debug: boolean, - exclude: Array, + exclude: PluginListOption, forceAllTransforms: boolean, ignoreBrowserslistConfig: boolean, - include: Array, + include: PluginListOption, loose: boolean, modules: ModuleOption, shippedProposals: boolean, @@ -30,3 +54,14 @@ export type Options = { // Babel export type Plugin = [Object, Object]; + +export type InternalPluginOptions = { + corejs: NormalizedCorejsOption, + include: Set, + exclude: Set, + polyfillTargets: Targets, + debug: boolean, + proposals: boolean, + shippedProposals: boolean, + regenerator: boolean, +}; diff --git a/packages/babel-preset-env/src/use-built-ins-entry-plugin.js b/packages/babel-preset-env/src/use-built-ins-entry-plugin.js deleted file mode 100644 index bb2680969c..0000000000 --- a/packages/babel-preset-env/src/use-built-ins-entry-plugin.js +++ /dev/null @@ -1,79 +0,0 @@ -// @flow -import { logEntryPolyfills } from "./debug"; -import { createImport, isPolyfillSource, isRequire } from "./utils"; - -type Plugin = { - visitor: Object, - pre: Function, - post: Function, - name: string, -}; - -export default function({ types: t }: { types: Object }): Plugin { - function replaceWithPolyfillImports( - path: Object, - polyfills: Array | Set, - regenerator: boolean, - ): void { - if (regenerator) { - createImport(path, "regenerator-runtime"); - } - - const items = Array.isArray(polyfills) ? new Set(polyfills) : polyfills; - - for (const p of Array.from(items).reverse()) { - createImport(path, p); - } - - path.remove(); - } - - const isPolyfillImport = { - ImportDeclaration(path, state) { - if ( - path.node.specifiers.length === 0 && - isPolyfillSource(path.node.source.value) - ) { - this.importPolyfillIncluded = true; - - replaceWithPolyfillImports( - path, - state.opts.polyfills, - state.opts.regenerator, - ); - } - }, - Program(path, state) { - path.get("body").forEach(bodyPath => { - if (isRequire(t, bodyPath)) { - replaceWithPolyfillImports( - bodyPath, - state.opts.polyfills, - state.opts.regenerator, - ); - } - }); - }, - }; - - return { - name: "transform-polyfill-require", - visitor: isPolyfillImport, - pre() { - this.numPolyfillImports = 0; - this.importPolyfillIncluded = false; - }, - post() { - const { debug, onDebug, polyfills } = this.opts; - - if (debug) { - logEntryPolyfills( - this.importPolyfillIncluded, - polyfills, - this.file.opts.filename, - onDebug, - ); - } - }, - }; -} diff --git a/packages/babel-preset-env/src/use-built-ins-plugin.js b/packages/babel-preset-env/src/use-built-ins-plugin.js deleted file mode 100644 index 6fcfe2dbf6..0000000000 --- a/packages/babel-preset-env/src/use-built-ins-plugin.js +++ /dev/null @@ -1,267 +0,0 @@ -// @flow -import { definitions } from "./built-in-definitions"; -import { logUsagePolyfills } from "./debug"; -import { createImport, isPolyfillSource, isRequire } from "./utils"; - -type Plugin = { - visitor: Object, - pre: Function, - name: string, -}; - -// function warnOnInstanceMethod() { -// state.opts.debug && -// console.warn( -// `Adding a polyfill: An instance method may have been used: ${details}`, -// ); -// } - -function has(obj: Object, key: string): boolean { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -function getType(target: any): string { - if (Array.isArray(target)) return "array"; - return typeof target; -} - -// function getObjectString(node: Object): string { -// if (node.type === "Identifier") { -// return node.name; -// } else if (node.type === "MemberExpression") { -// return `${getObjectString(node.object)}.${getObjectString(node.property)}`; -// } -// return node.name; -// } - -export default function({ types: t }: { types: Object }): Plugin { - function addImport( - path: Object, - builtIn: string, - builtIns: Set, - ): void { - if (builtIn && !builtIns.has(builtIn)) { - builtIns.add(builtIn); - createImport(path, builtIn); - } - } - - function addUnsupported( - path: Object, - polyfills: Set, - builtIn: Array | string, - builtIns: Set, - ): void { - if (Array.isArray(builtIn)) { - for (const i of builtIn) { - if (polyfills.has(i)) { - addImport(path, i, builtIns); - } - } - } else { - if (polyfills.has(builtIn)) { - addImport(path, builtIn, builtIns); - } - } - } - - const addAndRemovePolyfillImports = { - ImportDeclaration(path) { - if ( - path.node.specifiers.length === 0 && - isPolyfillSource(path.node.source.value) - ) { - console.warn( - ` - When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed. - Please remove the \`import '@babel/polyfill'\` call or use \`useBuiltIns: 'entry'\` instead.`, - ); - path.remove(); - } - }, - Program: { - enter(path) { - path.get("body").forEach(bodyPath => { - if (isRequire(t, bodyPath)) { - console.warn( - ` - When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed. - Please remove the \`require('@babel/polyfill')\` call or use \`useBuiltIns: 'entry'\` instead.`, - ); - bodyPath.remove(); - } - }); - }, - }, - - // Symbol() - // new Promise - ReferencedIdentifier(path, state) { - const { node, parent, scope } = path; - - if (t.isMemberExpression(parent)) return; - if (!has(definitions.builtins, node.name)) return; - if (scope.getBindingIdentifier(node.name)) return; - - const builtIn = definitions.builtins[node.name]; - addUnsupported(path, state.opts.polyfills, builtIn, this.builtIns); - }, - - // arr[Symbol.iterator]() - CallExpression(path) { - // we can't compile this - if (path.node.arguments.length) return; - - const callee = path.node.callee; - if (!t.isMemberExpression(callee)) return; - if (!callee.computed) return; - if (!path.get("callee.property").matchesPattern("Symbol.iterator")) { - return; - } - - addImport(path, "web.dom.iterable", this.builtIns); - }, - - // Symbol.iterator in arr - BinaryExpression(path) { - if (path.node.operator !== "in") return; - if (!path.get("left").matchesPattern("Symbol.iterator")) return; - - addImport(path, "web.dom.iterable", this.builtIns); - }, - - // yield* - YieldExpression(path) { - if (!path.node.delegate) return; - - addImport(path, "web.dom.iterable", this.builtIns); - }, - - // Array.from - MemberExpression: { - enter(path, state) { - if (!path.isReferenced()) return; - - const { node } = path; - const obj = node.object; - const prop = node.property; - - if (!t.isReferenced(obj, node)) return; - let instanceType; - let evaluatedPropType = obj.name; - let propName = prop.name; - if (node.computed) { - if (t.isStringLiteral(prop)) { - propName = prop.value; - } else { - const res = path.get("property").evaluate(); - if (res.confident && res.value) { - propName = res.value; - } - } - } - if (path.scope.getBindingIdentifier(obj.name)) { - const result = path.get("object").evaluate(); - if (result.value) { - instanceType = getType(result.value); - } else if (result.deopt && result.deopt.isIdentifier()) { - evaluatedPropType = result.deopt.node.name; - } - } - if (has(definitions.staticMethods, evaluatedPropType)) { - const staticMethods = definitions.staticMethods[evaluatedPropType]; - if (has(staticMethods, propName)) { - const builtIn = staticMethods[propName]; - addUnsupported(path, state.opts.polyfills, builtIn, this.builtIns); - // if (obj.name === "Array" && prop.name === "from") { - // addImport( - // path, - // "@babel/polyfill/lib/core-js/modules/web.dom.iterable", - // this.builtIns, - // ); - // } - } - } - - if (has(definitions.instanceMethods, propName)) { - //warnOnInstanceMethod(state, getObjectString(node)); - let builtIn = definitions.instanceMethods[propName]; - if (instanceType) { - builtIn = builtIn.filter(item => item.includes(instanceType)); - } - addUnsupported(path, state.opts.polyfills, builtIn, this.builtIns); - } - }, - - // Symbol.match - exit(path, state) { - if (!path.isReferenced()) return; - - const { node } = path; - const obj = node.object; - - if (!has(definitions.builtins, obj.name)) return; - if (path.scope.getBindingIdentifier(obj.name)) return; - - const builtIn = definitions.builtins[obj.name]; - addUnsupported(path, state.opts.polyfills, builtIn, this.builtIns); - }, - }, - - // var { repeat, startsWith } = String - VariableDeclarator(path, state) { - if (!path.isReferenced()) return; - - const { node } = path; - const obj = node.init; - - if (!t.isObjectPattern(node.id)) return; - if (!t.isReferenced(obj, node)) return; - - // doesn't reference the global - if (obj && path.scope.getBindingIdentifier(obj.name)) return; - - for (let prop of node.id.properties) { - prop = prop.key; - if ( - !node.computed && - t.isIdentifier(prop) && - has(definitions.instanceMethods, prop.name) - ) { - // warnOnInstanceMethod( - // state, - // `${path.parentPath.node.kind} { ${prop.name} } = ${obj.name}`, - // ); - - const builtIn = definitions.instanceMethods[prop.name]; - addUnsupported(path, state.opts.polyfills, builtIn, this.builtIns); - } - } - }, - - Function(path, state) { - if (!this.usesRegenerator && (path.node.generator || path.node.async)) { - this.usesRegenerator = true; - if (state.opts.regenerator) { - addImport(path, "regenerator-runtime", this.builtIns); - } - } - }, - }; - - return { - name: "use-built-ins", - pre() { - this.builtIns = new Set(); - this.usesRegenerator = false; - }, - post() { - const { debug, onDebug } = this.opts; - - if (debug) { - logUsagePolyfills(this.builtIns, this.file.opts.filename, onDebug); - } - }, - visitor: addAndRemovePolyfillImports, - }; -} diff --git a/packages/babel-preset-env/src/utils.js b/packages/babel-preset-env/src/utils.js index aa86770912..81c1c3721c 100644 --- a/packages/babel-preset-env/src/utils.js +++ b/packages/babel-preset-env/src/utils.js @@ -1,5 +1,7 @@ // @flow +import * as t from "@babel/types"; +import type { NodePath } from "@babel/traverse"; import invariant from "invariant"; import semver from "semver"; import levenshtein from "js-levenshtein"; @@ -8,11 +10,20 @@ import unreleasedLabels from "../data/unreleased-labels"; import { semverMin } from "./targets-parser"; import type { Targets } from "./types"; +export const has = Object.hasOwnProperty.call.bind(Object.hasOwnProperty); + +export function getType(target: any): string { + return Object.prototype.toString + .call(target) + .slice(8, -1) + .toLowerCase(); +} + const versionRegExp = /^(\d+|\d+.\d+)$/; // Convert version to a semver value. // 2.5 -> 2.5.0; 1 -> 1.0.0; -export const semverify = (version: string | number): string => { +export function semverify(version: number | string): string { if (typeof version === "string" && semver.valid(version)) { return version; } @@ -28,12 +39,21 @@ export const semverify = (version: string | number): string => { split.push("0"); } return split.join("."); -}; +} -export const getValues = (object: Object): Array => - Object.keys(object).map(key => object[key]); +export function intersection( + first: Set, + second: Set, + third: Set, +): Set { + const result = new Set(); + for (const el of first) { + if (second.has(el) && third.has(el)) result.add(el); + } + return result; +} -export const findSuggestion = (options: Array, option: string) => { +export function findSuggestion(options: string[], option: string): string { let levenshteinValue = Infinity; return options.reduce((suggestion, validOption) => { const value = levenshtein(validOption, option); @@ -43,9 +63,9 @@ export const findSuggestion = (options: Array, option: string) => { } return suggestion; }, undefined); -}; +} -export const prettifyVersion = (version: string): string => { +export function prettifyVersion(version: string) { if (typeof version !== "string") { return version; } @@ -63,9 +83,9 @@ export const prettifyVersion = (version: string): string => { } return parts.join("."); -}; +} -export const prettifyTargets = (targets: Targets): Object => { +export function prettifyTargets(targets: Targets): Targets { return Object.keys(targets).reduce((results, target) => { let value = targets[target]; @@ -77,29 +97,31 @@ export const prettifyTargets = (targets: Targets): Object => { results[target] = value; return results; }, {}); -}; +} -export const isUnreleasedVersion = (version: string, env: string): boolean => { +export function isUnreleasedVersion( + version: string | number, + env: string, +): boolean { const unreleasedLabel = unreleasedLabels[env]; return ( !!unreleasedLabel && unreleasedLabel === version.toString().toLowerCase() ); -}; +} -export const getLowestUnreleased = ( - a: string, - b: string, - env: string, -): string => { +export function getLowestUnreleased(a: string, b: string, env: string): string { const unreleasedLabel = unreleasedLabels[env]; const hasUnreleased = [a, b].some(item => item === unreleasedLabel); if (hasUnreleased) { return a === hasUnreleased ? b : a || b; } return semverMin(a, b); -}; +} -export const filterStageFromList = (list: any, stageList: any) => { +export function filterStageFromList( + list: { [feature: string]: Targets }, + stageList: { [feature: string]: boolean }, +) { return Object.keys(list).reduce((result, item) => { if (!stageList[item]) { result[item] = list[item]; @@ -107,26 +129,36 @@ export const filterStageFromList = (list: any, stageList: any) => { return result; }, {}); -}; +} -export const isPolyfillSource = (source: string): boolean => - source === "@babel/polyfill" || source === "core-js"; +export function getImportSource({ node }: NodePath) { + if (node.specifiers.length === 0) return node.source.value; +} + +export function getRequireSource({ node }: NodePath) { + if (!t.isExpressionStatement(node)) return; + const { expression } = node; + const isRequire = + t.isCallExpression(expression) && + t.isIdentifier(expression.callee) && + expression.callee.name === "require" && + expression.arguments.length === 1 && + t.isStringLiteral(expression.arguments[0]); + if (isRequire) return expression.arguments[0].value; +} + +export function isPolyfillSource(source: ?string): boolean { + return source === "@babel/polyfill" || source === "core-js"; +} const modulePathMap = { "regenerator-runtime": "regenerator-runtime/runtime", }; -export const getModulePath = (mod: string) => - modulePathMap[mod] || `core-js/modules/${mod}`; +export function getModulePath(mod: string): string { + return modulePathMap[mod] || `core-js/modules/${mod}`; +} -export const createImport = (path: Object, mod: string) => - addSideEffect(path, getModulePath(mod)); - -export const isRequire = (t: Object, path: Object): boolean => - t.isExpressionStatement(path.node) && - t.isCallExpression(path.node.expression) && - t.isIdentifier(path.node.expression.callee) && - path.node.expression.callee.name === "require" && - path.node.expression.arguments.length === 1 && - t.isStringLiteral(path.node.expression.arguments[0]) && - isPolyfillSource(path.node.expression.arguments[0].value); +export function createImport(path: NodePath, mod: string) { + return addSideEffect(path, getModulePath(mod)); +} diff --git a/packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/in/in.js b/packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/in/in.js new file mode 100644 index 0000000000..66bfb4d151 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/in/in.js @@ -0,0 +1 @@ +import 'core-js'; diff --git a/packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/options.json b/packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/options.json new file mode 100644 index 0000000000..5e051fe4e1 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/options.json @@ -0,0 +1,8 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/stdout.txt new file mode 100644 index 0000000000..019f66f3f5 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/corejs-without-usebuiltins/stdout.txt @@ -0,0 +1,42 @@ +`corejs` option required only with `useBuiltIns` option + +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/android/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-android/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/android/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-android/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/android/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-android/options.json similarity index 74% rename from packages/babel-preset-env/test/debug-fixtures/android/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-android/options.json index caac961b51..4874a2298d 100644 --- a/packages/babel-preset-env/test/debug-fixtures/android/options.json +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-android/options.json @@ -5,7 +5,8 @@ "targets": { "browsers": [ "Android >= 4" ] }, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 }] ] } diff --git a/packages/babel-preset-env/test/debug-fixtures/android/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-android/stdout.txt similarity index 96% rename from packages/babel-preset-env/test/debug-fixtures/android/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-android/stdout.txt index 6b77cd4dc7..30e11c87b2 100644 --- a/packages/babel-preset-env/test/debug-fixtures/android/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-android/stdout.txt @@ -40,11 +40,12 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: es6.array.copy-within { "android":"4" } es6.array.fill { "android":"4" } es6.array.find { "android":"4" } es6.array.find-index { "android":"4" } + es7.array.flat-map { "android":"4" } es6.array.from { "android":"4" } es7.array.includes { "android":"4" } es6.array.iterator { "android":"4" } @@ -93,6 +94,7 @@ Using polyfills with `entry` option: es7.object.lookup-getter { "android":"4" } es7.object.lookup-setter { "android":"4" } es6.object.prevent-extensions { "android":"4" } + es6.object.to-string { "android":"4" } es6.object.is { "android":"4" } es6.object.is-frozen { "android":"4" } es6.object.is-sealed { "android":"4" } @@ -136,6 +138,8 @@ Using polyfills with `entry` option: es6.string.raw { "android":"4" } es6.string.repeat { "android":"4" } es6.string.starts-with { "android":"4" } + es7.string.trim-left { "android":"4" } + es7.string.trim-right { "android":"4" } es6.typed.array-buffer { "android":"4" } es6.typed.int8-array { "android":"4" } es6.typed.uint8-array { "android":"4" } diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins-uglify/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-electron/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/builtins-uglify/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-electron/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/electron/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-electron/options.json similarity index 72% rename from packages/babel-preset-env/test/debug-fixtures/electron/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-electron/options.json index b07199a014..7055c2d633 100644 --- a/packages/babel-preset-env/test/debug-fixtures/electron/options.json +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-electron/options.json @@ -5,7 +5,8 @@ "targets": { "electron": 0.36 }, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 }] ] } diff --git a/packages/babel-preset-env/test/debug-fixtures/electron/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-electron/stdout.txt similarity index 95% rename from packages/babel-preset-env/test/debug-fixtures/electron/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-electron/stdout.txt index c7df64149b..72a9c8c8d7 100644 --- a/packages/babel-preset-env/test/debug-fixtures/electron/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-electron/stdout.txt @@ -35,9 +35,10 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: es6.array.every { "electron":"0.36" } es6.array.filter { "electron":"0.36" } + es7.array.flat-map { "electron":"0.36" } es6.array.for-each { "electron":"0.36" } es6.array.from { "electron":"0.36" } es6.array.index-of { "electron":"0.36" } @@ -67,6 +68,7 @@ Using polyfills with `entry` option: es7.object.get-own-property-descriptors { "electron":"0.36" } es7.object.lookup-getter { "electron":"0.36" } es7.object.lookup-setter { "electron":"0.36" } + es6.object.to-string { "electron":"0.36" } es7.object.values { "electron":"0.36" } es6.promise { "electron":"0.36" } es7.promise.finally { "electron":"0.36" } @@ -109,6 +111,8 @@ Using polyfills with `entry` option: es6.string.sub { "electron":"0.36" } es6.string.sup { "electron":"0.36" } es6.string.trim { "electron":"0.36" } + es7.string.trim-left { "electron":"0.36" } + es7.string.trim-right { "electron":"0.36" } es6.typed.array-buffer { "electron":"0.36" } es6.typed.data-view { "electron":"0.36" } es6.typed.int8-array { "electron":"0.36" } diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-force-all-transforms/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/builtins/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-force-all-transforms/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/force-all-transforms/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-force-all-transforms/options.json similarity index 91% rename from packages/babel-preset-env/test/debug-fixtures/force-all-transforms/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-force-all-transforms/options.json index f598e9a286..3615dbaff0 100644 --- a/packages/babel-preset-env/test/debug-fixtures/force-all-transforms/options.json +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-force-all-transforms/options.json @@ -7,6 +7,7 @@ "chrome": 55 }, "useBuiltIns": "entry", + "corejs": 2, "forceAllTransforms": true }] ] diff --git a/packages/babel-preset-env/test/debug-fixtures/force-all-transforms/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-force-all-transforms/stdout.txt similarity index 87% rename from packages/babel-preset-env/test/debug-fixtures/force-all-transforms/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-force-all-transforms/stdout.txt index 39b7781761..be62a85f37 100644 --- a/packages/babel-preset-env/test/debug-fixtures/force-all-transforms/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-force-all-transforms/stdout.txt @@ -40,16 +40,20 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: + es7.array.flat-map { "chrome":"55" } es6.array.sort { "chrome":"55" } es7.object.define-getter { "chrome":"55" } es7.object.define-setter { "chrome":"55" } es7.object.lookup-getter { "chrome":"55" } es7.object.lookup-setter { "chrome":"55" } + es6.object.to-string { "chrome":"55" } es7.promise.finally { "chrome":"55" } es7.symbol.async-iterator { "chrome":"55" } es7.string.pad-start { "chrome":"55" } es7.string.pad-end { "chrome":"55" } + es7.string.trim-left { "chrome":"55" } + es7.string.trim-right { "chrome":"55" } web.timers { "chrome":"55" } web.immediate { "chrome":"55" } web.dom.iterable { "chrome":"55" } diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins-no-import/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-no-import/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/builtins-no-import/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-no-import/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-no-import/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-no-import/options.json new file mode 100644 index 0000000000..b8acc7a56d --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-no-import/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "node": 6 + }, + "useBuiltIns": "entry", + "corejs": 2 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins-no-import/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-no-import/stdout.txt similarity index 92% rename from packages/babel-preset-env/test/debug-fixtures/builtins-no-import/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-no-import/stdout.txt index f6174700ec..ac37a584bf 100644 --- a/packages/babel-preset-env/test/debug-fixtures/builtins-no-import/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-no-import/stdout.txt @@ -23,5 +23,5 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] `import '@babel/polyfill'` was not found. +[/src/in.js] Import of @babel/polyfill was not found. Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/electron/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/electron/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/options.json new file mode 100644 index 0000000000..6873f884f7 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "useBuiltIns": "entry", + "corejs": { "version": 2, "proposals": true } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/stdout.txt new file mode 100644 index 0000000000..c5a3366270 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals-chrome-71/stdout.txt @@ -0,0 +1,22 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: + web.timers { "chrome":"71" } + web.immediate { "chrome":"71" } + web.dom.iterable { "chrome":"71" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/force-all-transforms/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/force-all-transforms/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals/options.json new file mode 100644 index 0000000000..e95eabddbf --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals/options.json @@ -0,0 +1,9 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "useBuiltIns": "entry", + "corejs": { "version": 2, "proposals": true } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/shippedProposals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals/stdout.txt similarity index 96% rename from packages/babel-preset-env/test/debug-fixtures/shippedProposals/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals/stdout.txt index 683b83212a..a1c52e6a7d 100644 --- a/packages/babel-preset-env/test/debug-fixtures/shippedProposals/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-proposals/stdout.txt @@ -38,13 +38,14 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: es6.array.copy-within {} es6.array.every {} es6.array.fill {} es6.array.filter {} es6.array.find {} es6.array.find-index {} + es7.array.flat-map {} es6.array.for-each {} es6.array.from {} es7.array.includes {} @@ -110,6 +111,7 @@ Using polyfills with `entry` option: es7.object.lookup-getter {} es7.object.lookup-setter {} es6.object.prevent-extensions {} + es6.object.to-string {} es6.object.is {} es6.object.is-frozen {} es6.object.is-sealed {} @@ -167,6 +169,8 @@ Using polyfills with `entry` option: es6.string.sub {} es6.string.sup {} es6.string.trim {} + es7.string.trim-left {} + es7.string.trim-right {} es6.typed.array-buffer {} es6.typed.data-view {} es6.typed.int8-array {} @@ -180,7 +184,6 @@ Using polyfills with `entry` option: es6.typed.float64-array {} es6.weak-map {} es6.weak-set {} - es7.array.flat-map {} web.timers {} web.immediate {} web.dom.iterable {} diff --git a/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals-chrome-71/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals-chrome-71/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals-chrome-71/options.json similarity index 62% rename from packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals-chrome-71/options.json index a7fc993ff3..2998e96d18 100644 --- a/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/options.json +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals-chrome-71/options.json @@ -3,10 +3,11 @@ ["../../lib", { "debug": true, "targets": { - "browsers": "chrome 60" + "browsers": "chrome 71" }, "shippedProposals": true, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 }] ] } diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals-chrome-71/stdout.txt new file mode 100644 index 0000000000..c5a3366270 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals-chrome-71/stdout.txt @@ -0,0 +1,22 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: + web.timers { "chrome":"71" } + web.immediate { "chrome":"71" } + web.dom.iterable { "chrome":"71" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/shippedProposals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/shippedProposals/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/options.json new file mode 100644 index 0000000000..519fd0ad0e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/options.json @@ -0,0 +1,10 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 2 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/stdout.txt new file mode 100644 index 0000000000..a1c52e6a7d --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-shippedProposals/stdout.txt @@ -0,0 +1,190 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: + es6.array.copy-within {} + es6.array.every {} + es6.array.fill {} + es6.array.filter {} + es6.array.find {} + es6.array.find-index {} + es7.array.flat-map {} + es6.array.for-each {} + es6.array.from {} + es7.array.includes {} + es6.array.index-of {} + es6.array.is-array {} + es6.array.iterator {} + es6.array.last-index-of {} + es6.array.map {} + es6.array.of {} + es6.array.reduce {} + es6.array.reduce-right {} + es6.array.some {} + es6.array.sort {} + es6.array.species {} + es6.date.now {} + es6.date.to-iso-string {} + es6.date.to-json {} + es6.date.to-primitive {} + es6.date.to-string {} + es6.function.bind {} + es6.function.has-instance {} + es6.function.name {} + es6.map {} + es6.math.acosh {} + es6.math.asinh {} + es6.math.atanh {} + es6.math.cbrt {} + es6.math.clz32 {} + es6.math.cosh {} + es6.math.expm1 {} + es6.math.fround {} + es6.math.hypot {} + es6.math.imul {} + es6.math.log1p {} + es6.math.log10 {} + es6.math.log2 {} + es6.math.sign {} + es6.math.sinh {} + es6.math.tanh {} + es6.math.trunc {} + es6.number.constructor {} + es6.number.epsilon {} + es6.number.is-finite {} + es6.number.is-integer {} + es6.number.is-nan {} + es6.number.is-safe-integer {} + es6.number.max-safe-integer {} + es6.number.min-safe-integer {} + es6.number.parse-float {} + es6.number.parse-int {} + es6.object.assign {} + es6.object.create {} + es7.object.define-getter {} + es7.object.define-setter {} + es6.object.define-property {} + es6.object.define-properties {} + es7.object.entries {} + es6.object.freeze {} + es6.object.get-own-property-descriptor {} + es7.object.get-own-property-descriptors {} + es6.object.get-own-property-names {} + es6.object.get-prototype-of {} + es7.object.lookup-getter {} + es7.object.lookup-setter {} + es6.object.prevent-extensions {} + es6.object.to-string {} + es6.object.is {} + es6.object.is-frozen {} + es6.object.is-sealed {} + es6.object.is-extensible {} + es6.object.keys {} + es6.object.seal {} + es6.object.set-prototype-of {} + es7.object.values {} + es6.promise {} + es7.promise.finally {} + es6.reflect.apply {} + es6.reflect.construct {} + es6.reflect.define-property {} + es6.reflect.delete-property {} + es6.reflect.get {} + es6.reflect.get-own-property-descriptor {} + es6.reflect.get-prototype-of {} + es6.reflect.has {} + es6.reflect.is-extensible {} + es6.reflect.own-keys {} + es6.reflect.prevent-extensions {} + es6.reflect.set {} + es6.reflect.set-prototype-of {} + es6.regexp.constructor {} + es6.regexp.flags {} + es6.regexp.match {} + es6.regexp.replace {} + es6.regexp.split {} + es6.regexp.search {} + es6.regexp.to-string {} + es6.set {} + es6.symbol {} + es7.symbol.async-iterator {} + es6.string.anchor {} + es6.string.big {} + es6.string.blink {} + es6.string.bold {} + es6.string.code-point-at {} + es6.string.ends-with {} + es6.string.fixed {} + es6.string.fontcolor {} + es6.string.fontsize {} + es6.string.from-code-point {} + es6.string.includes {} + es6.string.italics {} + es6.string.iterator {} + es6.string.link {} + es7.string.pad-start {} + es7.string.pad-end {} + es6.string.raw {} + es6.string.repeat {} + es6.string.small {} + es6.string.starts-with {} + es6.string.strike {} + es6.string.sub {} + es6.string.sup {} + es6.string.trim {} + es7.string.trim-left {} + es7.string.trim-right {} + es6.typed.array-buffer {} + es6.typed.data-view {} + es6.typed.int8-array {} + es6.typed.uint8-array {} + es6.typed.uint8-clamped-array {} + es6.typed.int16-array {} + es6.typed.uint16-array {} + es6.typed.int32-array {} + es6.typed.uint32-array {} + es6.typed.float32-array {} + es6.typed.float64-array {} + es6.weak-map {} + es6.weak-set {} + web.timers {} + web.immediate {} + web.dom.iterable {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/specific-targets/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-specific-targets/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/specific-targets/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-specific-targets/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/specific-targets/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-specific-targets/options.json similarity index 78% rename from packages/babel-preset-env/test/debug-fixtures/specific-targets/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-specific-targets/options.json index ae57604c0a..dc30ad296d 100644 --- a/packages/babel-preset-env/test/debug-fixtures/specific-targets/options.json +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-specific-targets/options.json @@ -5,7 +5,8 @@ "targets": { "browsers": "ie 10, ios 9, safari 7, edge 13, chrome 54, firefox 49" }, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 }] ] } diff --git a/packages/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-specific-targets/stdout.txt similarity index 95% rename from packages/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-specific-targets/stdout.txt index c1caa5390a..a7c6a94b05 100644 --- a/packages/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-specific-targets/stdout.txt @@ -45,11 +45,12 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: es6.array.copy-within { "ie":"10", "safari":"7" } es6.array.fill { "ie":"10", "safari":"7" } es6.array.find { "ie":"10", "safari":"7" } es6.array.find-index { "ie":"10", "safari":"7" } + es7.array.flat-map { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } es6.array.from { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } es7.array.includes { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } es6.array.iterator { "ie":"10", "safari":"7" } @@ -100,6 +101,7 @@ Using polyfills with `entry` option: es7.object.lookup-getter { "chrome":"54", "edge":"13", "ie":"10", "safari":"7" } es7.object.lookup-setter { "chrome":"54", "edge":"13", "ie":"10", "safari":"7" } es6.object.prevent-extensions { "ie":"10", "safari":"7" } + es6.object.to-string { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } es6.object.is { "ie":"10", "safari":"7" } es6.object.is-frozen { "ie":"10", "safari":"7" } es6.object.is-sealed { "ie":"10", "safari":"7" } @@ -156,6 +158,8 @@ Using polyfills with `entry` option: es6.string.strike { "ie":"10" } es6.string.sub { "ie":"10" } es6.string.sup { "ie":"10" } + es7.string.trim-left { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es7.string.trim-right { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } es6.typed.array-buffer { "ie":"10", "ios":"9", "safari":"7" } es6.typed.int8-array { "ie":"10", "ios":"9", "safari":"7" } es6.typed.uint8-array { "ie":"10", "ios":"9", "safari":"7" } diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-decimals/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/usage-with-import/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-decimals/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/versions-decimals/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-decimals/options.json similarity index 91% rename from packages/babel-preset-env/test/debug-fixtures/versions-decimals/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-decimals/options.json index 5afbc32afc..abf19b5116 100644 --- a/packages/babel-preset-env/test/debug-fixtures/versions-decimals/options.json +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-decimals/options.json @@ -2,6 +2,7 @@ "presets": [ ["../../lib", { "useBuiltIns": "entry", + "corejs": 2, "debug": true, "targets": { "chrome": 54, diff --git a/packages/babel-preset-env/test/debug-fixtures/versions-decimals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-decimals/stdout.txt similarity index 95% rename from packages/babel-preset-env/test/debug-fixtures/versions-decimals/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-decimals/stdout.txt index 96248dd28a..5a7fe11f7b 100644 --- a/packages/babel-preset-env/test/debug-fixtures/versions-decimals/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-decimals/stdout.txt @@ -51,13 +51,14 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: es6.array.copy-within { "ie":"10" } es6.array.every { "electron":"0.36" } es6.array.fill { "ie":"10" } es6.array.filter { "electron":"0.36" } es6.array.find { "ie":"10" } es6.array.find-index { "ie":"10" } + es7.array.flat-map { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } es6.array.for-each { "electron":"0.36" } es6.array.from { "electron":"0.36", "ie":"10", "node":"6.1" } es7.array.includes { "ie":"10" } @@ -123,6 +124,7 @@ Using polyfills with `entry` option: es7.object.lookup-getter { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } es7.object.lookup-setter { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } es6.object.prevent-extensions { "ie":"10" } + es6.object.to-string { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } es6.object.is { "ie":"10" } es6.object.is-frozen { "ie":"10" } es6.object.is-sealed { "ie":"10" } @@ -180,6 +182,8 @@ Using polyfills with `entry` option: es6.string.sub { "electron":"0.36", "ie":"10" } es6.string.sup { "electron":"0.36", "ie":"10" } es6.string.trim { "electron":"0.36" } + es7.string.trim-left { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es7.string.trim-right { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } es6.typed.array-buffer { "electron":"0.36", "ie":"10", "node":"6.1" } es6.typed.data-view { "electron":"0.36" } es6.typed.int8-array { "electron":"0.36", "ie":"10", "node":"6.1" } diff --git a/packages/babel-preset-env/test/debug-fixtures/versions-decimals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-strings/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/versions-decimals/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-strings/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/versions-strings/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-strings/options.json similarity index 91% rename from packages/babel-preset-env/test/debug-fixtures/versions-strings/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-strings/options.json index c0e3348950..e586d8bb54 100644 --- a/packages/babel-preset-env/test/debug-fixtures/versions-strings/options.json +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-strings/options.json @@ -2,6 +2,7 @@ "presets": [ ["../../lib", { "useBuiltIns": "entry", + "corejs": 2, "debug": true, "targets": { "chrome": "54", diff --git a/packages/babel-preset-env/test/debug-fixtures/versions-strings/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-strings/stdout.txt similarity index 94% rename from packages/babel-preset-env/test/debug-fixtures/versions-strings/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-strings/stdout.txt index f21c9ee8da..2599a836d2 100644 --- a/packages/babel-preset-env/test/debug-fixtures/versions-strings/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2-versions-strings/stdout.txt @@ -42,11 +42,12 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: es6.array.copy-within { "ie":"10" } es6.array.fill { "ie":"10" } es6.array.find { "ie":"10" } es6.array.find-index { "ie":"10" } + es7.array.flat-map { "chrome":"54", "ie":"10", "node":"6.10" } es6.array.from { "ie":"10" } es7.array.includes { "ie":"10" } es6.array.iterator { "ie":"10" } @@ -96,6 +97,7 @@ Using polyfills with `entry` option: es7.object.lookup-getter { "chrome":"54", "ie":"10", "node":"6.10" } es7.object.lookup-setter { "chrome":"54", "ie":"10", "node":"6.10" } es6.object.prevent-extensions { "ie":"10" } + es6.object.to-string { "chrome":"54", "ie":"10", "node":"6.10" } es6.object.is { "ie":"10" } es6.object.is-frozen { "ie":"10" } es6.object.is-sealed { "ie":"10" } @@ -152,6 +154,8 @@ Using polyfills with `entry` option: es6.string.strike { "ie":"10" } es6.string.sub { "ie":"10" } es6.string.sup { "ie":"10" } + es7.string.trim-left { "chrome":"54", "ie":"10", "node":"6.10" } + es7.string.trim-right { "chrome":"54", "ie":"10", "node":"6.10" } es6.typed.array-buffer { "ie":"10" } es6.typed.int8-array { "ie":"10" } es6.typed.uint8-array { "ie":"10" } diff --git a/packages/babel-preset-env/test/debug-fixtures/versions-strings/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/versions-strings/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs2/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2/options.json new file mode 100644 index 0000000000..de9fd3231d --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome >= 54, ie 10", + "node": 6 + }, + "useBuiltIns": "entry", + "corejs": 2 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2/stdout.txt similarity index 95% rename from packages/babel-preset-env/test/debug-fixtures/builtins/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-corejs2/stdout.txt index 9d838fa14b..943bad68b9 100644 --- a/packages/babel-preset-env/test/debug-fixtures/builtins/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs2/stdout.txt @@ -42,11 +42,12 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: es6.array.copy-within { "ie":"10" } es6.array.fill { "ie":"10" } es6.array.find { "ie":"10" } es6.array.find-index { "ie":"10" } + es7.array.flat-map { "chrome":"54", "ie":"10", "node":"6" } es6.array.from { "ie":"10", "node":"6" } es7.array.includes { "ie":"10" } es6.array.iterator { "ie":"10" } @@ -96,6 +97,7 @@ Using polyfills with `entry` option: es7.object.lookup-getter { "chrome":"54", "ie":"10", "node":"6" } es7.object.lookup-setter { "chrome":"54", "ie":"10", "node":"6" } es6.object.prevent-extensions { "ie":"10" } + es6.object.to-string { "chrome":"54", "ie":"10", "node":"6" } es6.object.is { "ie":"10" } es6.object.is-frozen { "ie":"10" } es6.object.is-sealed { "ie":"10" } @@ -152,6 +154,8 @@ Using polyfills with `entry` option: es6.string.strike { "ie":"10" } es6.string.sub { "ie":"10" } es6.string.sup { "ie":"10" } + es7.string.trim-left { "chrome":"54", "ie":"10", "node":"6" } + es7.string.trim-right { "chrome":"54", "ie":"10", "node":"6" } es6.typed.array-buffer { "ie":"10", "node":"6" } es6.typed.int8-array { "ie":"10", "node":"6" } es6.typed.uint8-array { "ie":"10", "node":"6" } diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/in/in.js new file mode 100644 index 0000000000..c0ce4c954e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/in/in.js @@ -0,0 +1,2 @@ +import 'core-js'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/options.json new file mode 100644 index 0000000000..b9db1e21e4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/stdout.txt new file mode 100644 index 0000000000..bbefff8cb2 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all-chrome-71/stdout.txt @@ -0,0 +1,106 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.array.unscopables.flat { "chrome":"71" } + es.array.unscopables.flat-map { "chrome":"71" } + es.object.from-entries { "chrome":"71" } + esnext.aggregate-error { "chrome":"71" } + esnext.array.last-index { "chrome":"71" } + esnext.array.last-item { "chrome":"71" } + esnext.composite-key { "chrome":"71" } + esnext.composite-symbol { "chrome":"71" } + esnext.map.delete-all { "chrome":"71" } + esnext.map.every { "chrome":"71" } + esnext.map.filter { "chrome":"71" } + esnext.map.find { "chrome":"71" } + esnext.map.find-key { "chrome":"71" } + esnext.map.from { "chrome":"71" } + esnext.map.group-by { "chrome":"71" } + esnext.map.includes { "chrome":"71" } + esnext.map.key-by { "chrome":"71" } + esnext.map.key-of { "chrome":"71" } + esnext.map.map-keys { "chrome":"71" } + esnext.map.map-values { "chrome":"71" } + esnext.map.merge { "chrome":"71" } + esnext.map.of { "chrome":"71" } + esnext.map.reduce { "chrome":"71" } + esnext.map.some { "chrome":"71" } + esnext.map.update { "chrome":"71" } + esnext.math.clamp { "chrome":"71" } + esnext.math.deg-per-rad { "chrome":"71" } + esnext.math.degrees { "chrome":"71" } + esnext.math.fscale { "chrome":"71" } + esnext.math.iaddh { "chrome":"71" } + esnext.math.imulh { "chrome":"71" } + esnext.math.isubh { "chrome":"71" } + esnext.math.rad-per-deg { "chrome":"71" } + esnext.math.radians { "chrome":"71" } + esnext.math.scale { "chrome":"71" } + esnext.math.seeded-prng { "chrome":"71" } + esnext.math.signbit { "chrome":"71" } + esnext.math.umulh { "chrome":"71" } + esnext.number.from-string { "chrome":"71" } + esnext.observable { "chrome":"71" } + esnext.promise.all-settled { "chrome":"71" } + esnext.promise.any { "chrome":"71" } + esnext.promise.try { "chrome":"71" } + esnext.reflect.define-metadata { "chrome":"71" } + esnext.reflect.delete-metadata { "chrome":"71" } + esnext.reflect.get-metadata { "chrome":"71" } + esnext.reflect.get-metadata-keys { "chrome":"71" } + esnext.reflect.get-own-metadata { "chrome":"71" } + esnext.reflect.get-own-metadata-keys { "chrome":"71" } + esnext.reflect.has-metadata { "chrome":"71" } + esnext.reflect.has-own-metadata { "chrome":"71" } + esnext.reflect.metadata { "chrome":"71" } + esnext.set.add-all { "chrome":"71" } + esnext.set.delete-all { "chrome":"71" } + esnext.set.difference { "chrome":"71" } + esnext.set.every { "chrome":"71" } + esnext.set.filter { "chrome":"71" } + esnext.set.find { "chrome":"71" } + esnext.set.from { "chrome":"71" } + esnext.set.intersection { "chrome":"71" } + esnext.set.is-disjoint-from { "chrome":"71" } + esnext.set.is-subset-of { "chrome":"71" } + esnext.set.is-superset-of { "chrome":"71" } + esnext.set.join { "chrome":"71" } + esnext.set.map { "chrome":"71" } + esnext.set.of { "chrome":"71" } + esnext.set.reduce { "chrome":"71" } + esnext.set.some { "chrome":"71" } + esnext.set.symmetric-difference { "chrome":"71" } + esnext.set.union { "chrome":"71" } + esnext.string.at { "chrome":"71" } + esnext.string.code-points { "chrome":"71" } + esnext.string.match-all { "chrome":"71" } + esnext.string.replace-all { "chrome":"71" } + esnext.symbol.dispose { "chrome":"71" } + esnext.symbol.observable { "chrome":"71" } + esnext.symbol.pattern-match { "chrome":"71" } + esnext.weak-map.delete-all { "chrome":"71" } + esnext.weak-map.from { "chrome":"71" } + esnext.weak-map.of { "chrome":"71" } + esnext.weak-set.add-all { "chrome":"71" } + esnext.weak-set.delete-all { "chrome":"71" } + esnext.weak-set.from { "chrome":"71" } + esnext.weak-set.of { "chrome":"71" } + web.immediate { "chrome":"71" } + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/in/in.js new file mode 100644 index 0000000000..c0ce4c954e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/in/in.js @@ -0,0 +1,2 @@ +import 'core-js'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/options.json new file mode 100644 index 0000000000..1e5ef9ed0a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/options.json @@ -0,0 +1,10 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/stdout.txt new file mode 100644 index 0000000000..7f425601a7 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-all/stdout.txt @@ -0,0 +1,332 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol {} + es.symbol.description {} + es.symbol.async-iterator {} + es.symbol.has-instance {} + es.symbol.is-concat-spreadable {} + es.symbol.iterator {} + es.symbol.match {} + es.symbol.replace {} + es.symbol.search {} + es.symbol.species {} + es.symbol.split {} + es.symbol.to-primitive {} + es.symbol.to-string-tag {} + es.symbol.unscopables {} + es.array.concat {} + es.array.copy-within {} + es.array.every {} + es.array.fill {} + es.array.filter {} + es.array.find {} + es.array.find-index {} + es.array.flat {} + es.array.flat-map {} + es.array.for-each {} + es.array.from {} + es.array.includes {} + es.array.index-of {} + es.array.is-array {} + es.array.iterator {} + es.array.join {} + es.array.last-index-of {} + es.array.map {} + es.array.of {} + es.array.reduce {} + es.array.reduce-right {} + es.array.reverse {} + es.array.slice {} + es.array.some {} + es.array.sort {} + es.array.species {} + es.array.splice {} + es.array.unscopables.flat {} + es.array.unscopables.flat-map {} + es.array-buffer.constructor {} + es.array-buffer.is-view {} + es.array-buffer.slice {} + es.data-view {} + es.date.now {} + es.date.to-iso-string {} + es.date.to-json {} + es.date.to-primitive {} + es.date.to-string {} + es.function.bind {} + es.function.has-instance {} + es.function.name {} + es.json.to-string-tag {} + es.map {} + es.math.acosh {} + es.math.asinh {} + es.math.atanh {} + es.math.cbrt {} + es.math.clz32 {} + es.math.cosh {} + es.math.expm1 {} + es.math.fround {} + es.math.hypot {} + es.math.imul {} + es.math.log10 {} + es.math.log1p {} + es.math.log2 {} + es.math.sign {} + es.math.sinh {} + es.math.tanh {} + es.math.to-string-tag {} + es.math.trunc {} + es.number.constructor {} + es.number.epsilon {} + es.number.is-finite {} + es.number.is-integer {} + es.number.is-nan {} + es.number.is-safe-integer {} + es.number.max-safe-integer {} + es.number.min-safe-integer {} + es.number.parse-float {} + es.number.parse-int {} + es.number.to-fixed {} + es.number.to-precision {} + es.object.assign {} + es.object.create {} + es.object.define-getter {} + es.object.define-properties {} + es.object.define-property {} + es.object.define-setter {} + es.object.entries {} + es.object.freeze {} + es.object.from-entries {} + es.object.get-own-property-descriptor {} + es.object.get-own-property-descriptors {} + es.object.get-own-property-names {} + es.object.get-prototype-of {} + es.object.is {} + es.object.is-extensible {} + es.object.is-frozen {} + es.object.is-sealed {} + es.object.keys {} + es.object.lookup-getter {} + es.object.lookup-setter {} + es.object.prevent-extensions {} + es.object.seal {} + es.object.set-prototype-of {} + es.object.to-string {} + es.object.values {} + es.parse-float {} + es.parse-int {} + es.promise {} + es.promise.finally {} + es.reflect.apply {} + es.reflect.construct {} + es.reflect.define-property {} + es.reflect.delete-property {} + es.reflect.get {} + es.reflect.get-own-property-descriptor {} + es.reflect.get-prototype-of {} + es.reflect.has {} + es.reflect.is-extensible {} + es.reflect.own-keys {} + es.reflect.prevent-extensions {} + es.reflect.set {} + es.reflect.set-prototype-of {} + es.regexp.constructor {} + es.regexp.exec {} + es.regexp.flags {} + es.regexp.to-string {} + es.set {} + es.string.code-point-at {} + es.string.ends-with {} + es.string.from-code-point {} + es.string.includes {} + es.string.iterator {} + es.string.match {} + es.string.pad-end {} + es.string.pad-start {} + es.string.raw {} + es.string.repeat {} + es.string.replace {} + es.string.search {} + es.string.split {} + es.string.starts-with {} + es.string.trim {} + es.string.trim-end {} + es.string.trim-start {} + es.string.anchor {} + es.string.big {} + es.string.blink {} + es.string.bold {} + es.string.fixed {} + es.string.fontcolor {} + es.string.fontsize {} + es.string.italics {} + es.string.link {} + es.string.small {} + es.string.strike {} + es.string.sub {} + es.string.sup {} + es.typed-array.float32-array {} + es.typed-array.float64-array {} + es.typed-array.int8-array {} + es.typed-array.int16-array {} + es.typed-array.int32-array {} + es.typed-array.uint8-array {} + es.typed-array.uint8-clamped-array {} + es.typed-array.uint16-array {} + es.typed-array.uint32-array {} + es.typed-array.copy-within {} + es.typed-array.every {} + es.typed-array.fill {} + es.typed-array.filter {} + es.typed-array.find {} + es.typed-array.find-index {} + es.typed-array.for-each {} + es.typed-array.from {} + es.typed-array.includes {} + es.typed-array.index-of {} + es.typed-array.iterator {} + es.typed-array.join {} + es.typed-array.last-index-of {} + es.typed-array.map {} + es.typed-array.of {} + es.typed-array.reduce {} + es.typed-array.reduce-right {} + es.typed-array.reverse {} + es.typed-array.set {} + es.typed-array.slice {} + es.typed-array.some {} + es.typed-array.sort {} + es.typed-array.subarray {} + es.typed-array.to-locale-string {} + es.typed-array.to-string {} + es.weak-map {} + es.weak-set {} + esnext.aggregate-error {} + esnext.array.last-index {} + esnext.array.last-item {} + esnext.composite-key {} + esnext.composite-symbol {} + esnext.global-this {} + esnext.map.delete-all {} + esnext.map.every {} + esnext.map.filter {} + esnext.map.find {} + esnext.map.find-key {} + esnext.map.from {} + esnext.map.group-by {} + esnext.map.includes {} + esnext.map.key-by {} + esnext.map.key-of {} + esnext.map.map-keys {} + esnext.map.map-values {} + esnext.map.merge {} + esnext.map.of {} + esnext.map.reduce {} + esnext.map.some {} + esnext.map.update {} + esnext.math.clamp {} + esnext.math.deg-per-rad {} + esnext.math.degrees {} + esnext.math.fscale {} + esnext.math.iaddh {} + esnext.math.imulh {} + esnext.math.isubh {} + esnext.math.rad-per-deg {} + esnext.math.radians {} + esnext.math.scale {} + esnext.math.seeded-prng {} + esnext.math.signbit {} + esnext.math.umulh {} + esnext.number.from-string {} + esnext.observable {} + esnext.promise.all-settled {} + esnext.promise.any {} + esnext.promise.try {} + esnext.reflect.define-metadata {} + esnext.reflect.delete-metadata {} + esnext.reflect.get-metadata {} + esnext.reflect.get-metadata-keys {} + esnext.reflect.get-own-metadata {} + esnext.reflect.get-own-metadata-keys {} + esnext.reflect.has-metadata {} + esnext.reflect.has-own-metadata {} + esnext.reflect.metadata {} + esnext.set.add-all {} + esnext.set.delete-all {} + esnext.set.difference {} + esnext.set.every {} + esnext.set.filter {} + esnext.set.find {} + esnext.set.from {} + esnext.set.intersection {} + esnext.set.is-disjoint-from {} + esnext.set.is-subset-of {} + esnext.set.is-superset-of {} + esnext.set.join {} + esnext.set.map {} + esnext.set.of {} + esnext.set.reduce {} + esnext.set.some {} + esnext.set.symmetric-difference {} + esnext.set.union {} + esnext.string.at {} + esnext.string.code-points {} + esnext.string.match-all {} + esnext.string.replace-all {} + esnext.symbol.dispose {} + esnext.symbol.observable {} + esnext.symbol.pattern-match {} + esnext.weak-map.delete-all {} + esnext.weak-map.from {} + esnext.weak-map.of {} + esnext.weak-set.add-all {} + esnext.weak-set.delete-all {} + esnext.weak-set.from {} + esnext.weak-set.of {} + web.dom-collections.for-each {} + web.dom-collections.iterator {} + web.immediate {} + web.queue-microtask {} + web.timers {} + web.url {} + web.url.to-json {} + web.url-search-params {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/options.json new file mode 100644 index 0000000000..e7f7ecdb72 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": [ "Android >= 4" ] + }, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/stdout.txt new file mode 100644 index 0000000000..ec4e0ed184 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-android/stdout.txt @@ -0,0 +1,247 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "android": "4" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "android":"4" } + transform-literals { "android":"4" } + transform-function-name { "android":"4" } + transform-arrow-functions { "android":"4" } + transform-block-scoped-functions { "android":"4" } + transform-classes { "android":"4" } + transform-object-super { "android":"4" } + transform-shorthand-properties { "android":"4" } + transform-duplicate-keys { "android":"4" } + transform-computed-properties { "android":"4" } + transform-for-of { "android":"4" } + transform-sticky-regex { "android":"4" } + transform-dotall-regex { "android":"4" } + transform-unicode-regex { "android":"4" } + transform-spread { "android":"4" } + transform-parameters { "android":"4" } + transform-destructuring { "android":"4" } + transform-block-scoping { "android":"4" } + transform-typeof-symbol { "android":"4" } + transform-new-target { "android":"4" } + transform-regenerator { "android":"4" } + transform-exponentiation-operator { "android":"4" } + transform-async-to-generator { "android":"4" } + proposal-async-generator-functions { "android":"4" } + proposal-object-rest-spread { "android":"4" } + proposal-unicode-property-regex { "android":"4" } + proposal-json-strings { "android":"4" } + proposal-optional-catch-binding { "android":"4" } + transform-named-capturing-groups-regex { "android":"4" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol { "android":"4" } + es.symbol.description { "android":"4" } + es.symbol.async-iterator { "android":"4" } + es.symbol.has-instance { "android":"4" } + es.symbol.is-concat-spreadable { "android":"4" } + es.symbol.iterator { "android":"4" } + es.symbol.match { "android":"4" } + es.symbol.replace { "android":"4" } + es.symbol.search { "android":"4" } + es.symbol.species { "android":"4" } + es.symbol.split { "android":"4" } + es.symbol.to-primitive { "android":"4" } + es.symbol.to-string-tag { "android":"4" } + es.symbol.unscopables { "android":"4" } + es.array.concat { "android":"4" } + es.array.copy-within { "android":"4" } + es.array.every { "android":"4" } + es.array.fill { "android":"4" } + es.array.filter { "android":"4" } + es.array.find { "android":"4" } + es.array.find-index { "android":"4" } + es.array.flat { "android":"4" } + es.array.flat-map { "android":"4" } + es.array.for-each { "android":"4" } + es.array.from { "android":"4" } + es.array.includes { "android":"4" } + es.array.index-of { "android":"4" } + es.array.iterator { "android":"4" } + es.array.join { "android":"4" } + es.array.last-index-of { "android":"4" } + es.array.map { "android":"4" } + es.array.of { "android":"4" } + es.array.reduce { "android":"4" } + es.array.reduce-right { "android":"4" } + es.array.reverse { "android":"4" } + es.array.slice { "android":"4" } + es.array.some { "android":"4" } + es.array.sort { "android":"4" } + es.array.species { "android":"4" } + es.array.splice { "android":"4" } + es.array.unscopables.flat { "android":"4" } + es.array.unscopables.flat-map { "android":"4" } + es.array-buffer.constructor { "android":"4" } + es.array-buffer.is-view { "android":"4" } + es.array-buffer.slice { "android":"4" } + es.data-view { "android":"4" } + es.date.to-iso-string { "android":"4" } + es.date.to-json { "android":"4" } + es.date.to-primitive { "android":"4" } + es.date.to-string { "android":"4" } + es.function.has-instance { "android":"4" } + es.function.name { "android":"4" } + es.json.to-string-tag { "android":"4" } + es.map { "android":"4" } + es.math.acosh { "android":"4" } + es.math.asinh { "android":"4" } + es.math.atanh { "android":"4" } + es.math.cbrt { "android":"4" } + es.math.clz32 { "android":"4" } + es.math.cosh { "android":"4" } + es.math.expm1 { "android":"4" } + es.math.fround { "android":"4" } + es.math.hypot { "android":"4" } + es.math.imul { "android":"4" } + es.math.log10 { "android":"4" } + es.math.log1p { "android":"4" } + es.math.log2 { "android":"4" } + es.math.sign { "android":"4" } + es.math.sinh { "android":"4" } + es.math.tanh { "android":"4" } + es.math.to-string-tag { "android":"4" } + es.math.trunc { "android":"4" } + es.number.constructor { "android":"4" } + es.number.epsilon { "android":"4" } + es.number.is-finite { "android":"4" } + es.number.is-integer { "android":"4" } + es.number.is-nan { "android":"4" } + es.number.is-safe-integer { "android":"4" } + es.number.max-safe-integer { "android":"4" } + es.number.min-safe-integer { "android":"4" } + es.number.parse-float { "android":"4" } + es.number.parse-int { "android":"4" } + es.number.to-fixed { "android":"4" } + es.number.to-precision { "android":"4" } + es.object.assign { "android":"4" } + es.object.define-getter { "android":"4" } + es.object.define-properties { "android":"4" } + es.object.define-property { "android":"4" } + es.object.define-setter { "android":"4" } + es.object.entries { "android":"4" } + es.object.freeze { "android":"4" } + es.object.from-entries { "android":"4" } + es.object.get-own-property-descriptor { "android":"4" } + es.object.get-own-property-descriptors { "android":"4" } + es.object.get-own-property-names { "android":"4" } + es.object.get-prototype-of { "android":"4" } + es.object.is { "android":"4" } + es.object.is-extensible { "android":"4" } + es.object.is-frozen { "android":"4" } + es.object.is-sealed { "android":"4" } + es.object.keys { "android":"4" } + es.object.lookup-getter { "android":"4" } + es.object.lookup-setter { "android":"4" } + es.object.prevent-extensions { "android":"4" } + es.object.seal { "android":"4" } + es.object.set-prototype-of { "android":"4" } + es.object.to-string { "android":"4" } + es.object.values { "android":"4" } + es.parse-float { "android":"4" } + es.parse-int { "android":"4" } + es.promise { "android":"4" } + es.promise.finally { "android":"4" } + es.reflect.apply { "android":"4" } + es.reflect.construct { "android":"4" } + es.reflect.define-property { "android":"4" } + es.reflect.delete-property { "android":"4" } + es.reflect.get { "android":"4" } + es.reflect.get-own-property-descriptor { "android":"4" } + es.reflect.get-prototype-of { "android":"4" } + es.reflect.has { "android":"4" } + es.reflect.is-extensible { "android":"4" } + es.reflect.own-keys { "android":"4" } + es.reflect.prevent-extensions { "android":"4" } + es.reflect.set { "android":"4" } + es.reflect.set-prototype-of { "android":"4" } + es.regexp.constructor { "android":"4" } + es.regexp.exec { "android":"4" } + es.regexp.flags { "android":"4" } + es.regexp.to-string { "android":"4" } + es.set { "android":"4" } + es.string.code-point-at { "android":"4" } + es.string.ends-with { "android":"4" } + es.string.from-code-point { "android":"4" } + es.string.includes { "android":"4" } + es.string.iterator { "android":"4" } + es.string.match { "android":"4" } + es.string.pad-end { "android":"4" } + es.string.pad-start { "android":"4" } + es.string.raw { "android":"4" } + es.string.repeat { "android":"4" } + es.string.replace { "android":"4" } + es.string.search { "android":"4" } + es.string.split { "android":"4" } + es.string.starts-with { "android":"4" } + es.string.trim { "android":"4" } + es.string.trim-end { "android":"4" } + es.string.trim-start { "android":"4" } + es.string.anchor { "android":"4" } + es.string.big { "android":"4" } + es.string.blink { "android":"4" } + es.string.bold { "android":"4" } + es.string.fixed { "android":"4" } + es.string.fontcolor { "android":"4" } + es.string.fontsize { "android":"4" } + es.string.italics { "android":"4" } + es.string.link { "android":"4" } + es.string.small { "android":"4" } + es.string.strike { "android":"4" } + es.string.sub { "android":"4" } + es.string.sup { "android":"4" } + es.typed-array.float32-array { "android":"4" } + es.typed-array.float64-array { "android":"4" } + es.typed-array.int8-array { "android":"4" } + es.typed-array.int16-array { "android":"4" } + es.typed-array.int32-array { "android":"4" } + es.typed-array.uint8-array { "android":"4" } + es.typed-array.uint8-clamped-array { "android":"4" } + es.typed-array.uint16-array { "android":"4" } + es.typed-array.uint32-array { "android":"4" } + es.typed-array.copy-within { "android":"4" } + es.typed-array.every { "android":"4" } + es.typed-array.fill { "android":"4" } + es.typed-array.filter { "android":"4" } + es.typed-array.find { "android":"4" } + es.typed-array.find-index { "android":"4" } + es.typed-array.for-each { "android":"4" } + es.typed-array.from { "android":"4" } + es.typed-array.includes { "android":"4" } + es.typed-array.index-of { "android":"4" } + es.typed-array.iterator { "android":"4" } + es.typed-array.join { "android":"4" } + es.typed-array.last-index-of { "android":"4" } + es.typed-array.map { "android":"4" } + es.typed-array.of { "android":"4" } + es.typed-array.reduce { "android":"4" } + es.typed-array.reduce-right { "android":"4" } + es.typed-array.reverse { "android":"4" } + es.typed-array.set { "android":"4" } + es.typed-array.slice { "android":"4" } + es.typed-array.some { "android":"4" } + es.typed-array.sort { "android":"4" } + es.typed-array.subarray { "android":"4" } + es.typed-array.to-locale-string { "android":"4" } + es.typed-array.to-string { "android":"4" } + es.weak-map { "android":"4" } + es.weak-set { "android":"4" } + web.dom-collections.for-each { "android":"4" } + web.dom-collections.iterator { "android":"4" } + web.immediate { "android":"4" } + web.queue-microtask { "android":"4" } + web.url { "android":"4" } + web.url.to-json { "android":"4" } + web.url-search-params { "android":"4" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/in/in.js new file mode 100644 index 0000000000..c3030bdd62 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/in/in.js @@ -0,0 +1 @@ +import '@babel/polyfill'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/options.json new file mode 100644 index 0000000000..1e5ef9ed0a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/options.json @@ -0,0 +1,10 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/stderr.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/stderr.txt new file mode 100644 index 0000000000..228f1a0528 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/stderr.txt @@ -0,0 +1,2 @@ +`@babel/polyfill` is deprecated. Please, use required parts of `core-js` + and `regenerator-runtime/runtime` separately \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/stdout.txt new file mode 100644 index 0000000000..81179c7c09 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-babel-polyfill/stdout.txt @@ -0,0 +1,42 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Import of core-js was not found. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/options.json new file mode 100644 index 0000000000..acc203c75c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "electron": 0.36 + }, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/stdout.txt new file mode 100644 index 0000000000..22ad729724 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-electron/stdout.txt @@ -0,0 +1,134 @@ +Warning, the following targets are using a decimal version: + + electron: 0.36 + +We recommend using a string for minor/patch versions to avoid numbers like 6.10 +getting parsed as 6.1, which can lead to unexpected behavior. + +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "electron": "0.36" +} + +Using modules transform: auto + +Using plugins: + transform-function-name { "electron":"0.36" } + transform-for-of { "electron":"0.36" } + transform-sticky-regex { "electron":"0.36" } + transform-dotall-regex { "electron":"0.36" } + transform-unicode-regex { "electron":"0.36" } + transform-parameters { "electron":"0.36" } + transform-destructuring { "electron":"0.36" } + transform-block-scoping { "electron":"0.36" } + transform-regenerator { "electron":"0.36" } + transform-exponentiation-operator { "electron":"0.36" } + transform-async-to-generator { "electron":"0.36" } + proposal-async-generator-functions { "electron":"0.36" } + proposal-object-rest-spread { "electron":"0.36" } + proposal-unicode-property-regex { "electron":"0.36" } + proposal-json-strings { "electron":"0.36" } + proposal-optional-catch-binding { "electron":"0.36" } + transform-named-capturing-groups-regex { "electron":"0.36" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol { "electron":"0.36" } + es.symbol.description { "electron":"0.36" } + es.symbol.async-iterator { "electron":"0.36" } + es.symbol.has-instance { "electron":"0.36" } + es.symbol.is-concat-spreadable { "electron":"0.36" } + es.symbol.match { "electron":"0.36" } + es.symbol.replace { "electron":"0.36" } + es.symbol.search { "electron":"0.36" } + es.symbol.species { "electron":"0.36" } + es.symbol.split { "electron":"0.36" } + es.symbol.to-string-tag { "electron":"0.36" } + es.array.concat { "electron":"0.36" } + es.array.filter { "electron":"0.36" } + es.array.flat { "electron":"0.36" } + es.array.flat-map { "electron":"0.36" } + es.array.from { "electron":"0.36" } + es.array.includes { "electron":"0.36" } + es.array.index-of { "electron":"0.36" } + es.array.iterator { "electron":"0.36" } + es.array.last-index-of { "electron":"0.36" } + es.array.map { "electron":"0.36" } + es.array.slice { "electron":"0.36" } + es.array.sort { "electron":"0.36" } + es.array.species { "electron":"0.36" } + es.array.splice { "electron":"0.36" } + es.array.unscopables.flat { "electron":"0.36" } + es.array.unscopables.flat-map { "electron":"0.36" } + es.function.has-instance { "electron":"0.36" } + es.json.to-string-tag { "electron":"0.36" } + es.map { "electron":"0.36" } + es.math.acosh { "electron":"0.36" } + es.math.to-string-tag { "electron":"0.36" } + es.object.assign { "electron":"0.36" } + es.object.define-getter { "electron":"0.36" } + es.object.define-setter { "electron":"0.36" } + es.object.entries { "electron":"0.36" } + es.object.from-entries { "electron":"0.36" } + es.object.get-own-property-descriptors { "electron":"0.36" } + es.object.lookup-getter { "electron":"0.36" } + es.object.lookup-setter { "electron":"0.36" } + es.object.to-string { "electron":"0.36" } + es.object.values { "electron":"0.36" } + es.promise { "electron":"0.36" } + es.promise.finally { "electron":"0.36" } + es.reflect.apply { "electron":"0.36" } + es.reflect.construct { "electron":"0.36" } + es.reflect.define-property { "electron":"0.36" } + es.reflect.delete-property { "electron":"0.36" } + es.reflect.get { "electron":"0.36" } + es.reflect.get-own-property-descriptor { "electron":"0.36" } + es.reflect.get-prototype-of { "electron":"0.36" } + es.reflect.has { "electron":"0.36" } + es.reflect.is-extensible { "electron":"0.36" } + es.reflect.own-keys { "electron":"0.36" } + es.reflect.prevent-extensions { "electron":"0.36" } + es.reflect.set { "electron":"0.36" } + es.reflect.set-prototype-of { "electron":"0.36" } + es.regexp.constructor { "electron":"0.36" } + es.regexp.flags { "electron":"0.36" } + es.regexp.to-string { "electron":"0.36" } + es.set { "electron":"0.36" } + es.string.ends-with { "electron":"0.36" } + es.string.includes { "electron":"0.36" } + es.string.match { "electron":"0.36" } + es.string.pad-end { "electron":"0.36" } + es.string.pad-start { "electron":"0.36" } + es.string.replace { "electron":"0.36" } + es.string.search { "electron":"0.36" } + es.string.split { "electron":"0.36" } + es.string.starts-with { "electron":"0.36" } + es.string.trim { "electron":"0.36" } + es.string.trim-end { "electron":"0.36" } + es.string.trim-start { "electron":"0.36" } + es.typed-array.float32-array { "electron":"0.36" } + es.typed-array.float64-array { "electron":"0.36" } + es.typed-array.int8-array { "electron":"0.36" } + es.typed-array.int16-array { "electron":"0.36" } + es.typed-array.int32-array { "electron":"0.36" } + es.typed-array.uint8-array { "electron":"0.36" } + es.typed-array.uint8-clamped-array { "electron":"0.36" } + es.typed-array.uint16-array { "electron":"0.36" } + es.typed-array.uint32-array { "electron":"0.36" } + es.typed-array.from { "electron":"0.36" } + es.typed-array.includes { "electron":"0.36" } + es.typed-array.of { "electron":"0.36" } + es.typed-array.to-string { "electron":"0.36" } + es.weak-map { "electron":"0.36" } + es.weak-set { "electron":"0.36" } + web.dom-collections.for-each { "electron":"0.36" } + web.dom-collections.iterator { "electron":"0.36" } + web.immediate { "electron":"0.36" } + web.queue-microtask { "electron":"0.36" } + web.url { "electron":"0.36" } + web.url.to-json { "electron":"0.36" } + web.url-search-params { "electron":"0.36" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/in/in.js new file mode 100644 index 0000000000..d830e7e10c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/es'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/options.json new file mode 100644 index 0000000000..b9db1e21e4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/stdout.txt new file mode 100644 index 0000000000..1e83b69ce7 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-chrome-71/stdout.txt @@ -0,0 +1,24 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.array.unscopables.flat { "chrome":"71" } + es.array.unscopables.flat-map { "chrome":"71" } + es.object.from-entries { "chrome":"71" } + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/in/in.js new file mode 100644 index 0000000000..3c012b22d8 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/in/in.js @@ -0,0 +1,3 @@ +import 'core-js/es'; +import 'core-js/proposals'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/options.json new file mode 100644 index 0000000000..b9db1e21e4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/stdout.txt new file mode 100644 index 0000000000..5cf2958c3b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals-chrome-71/stdout.txt @@ -0,0 +1,105 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.array.unscopables.flat { "chrome":"71" } + es.array.unscopables.flat-map { "chrome":"71" } + es.object.from-entries { "chrome":"71" } + esnext.aggregate-error { "chrome":"71" } + esnext.array.last-index { "chrome":"71" } + esnext.array.last-item { "chrome":"71" } + esnext.composite-key { "chrome":"71" } + esnext.composite-symbol { "chrome":"71" } + esnext.map.delete-all { "chrome":"71" } + esnext.map.every { "chrome":"71" } + esnext.map.filter { "chrome":"71" } + esnext.map.find { "chrome":"71" } + esnext.map.find-key { "chrome":"71" } + esnext.map.from { "chrome":"71" } + esnext.map.group-by { "chrome":"71" } + esnext.map.includes { "chrome":"71" } + esnext.map.key-by { "chrome":"71" } + esnext.map.key-of { "chrome":"71" } + esnext.map.map-keys { "chrome":"71" } + esnext.map.map-values { "chrome":"71" } + esnext.map.merge { "chrome":"71" } + esnext.map.of { "chrome":"71" } + esnext.map.reduce { "chrome":"71" } + esnext.map.some { "chrome":"71" } + esnext.map.update { "chrome":"71" } + esnext.math.clamp { "chrome":"71" } + esnext.math.deg-per-rad { "chrome":"71" } + esnext.math.degrees { "chrome":"71" } + esnext.math.fscale { "chrome":"71" } + esnext.math.iaddh { "chrome":"71" } + esnext.math.imulh { "chrome":"71" } + esnext.math.isubh { "chrome":"71" } + esnext.math.rad-per-deg { "chrome":"71" } + esnext.math.radians { "chrome":"71" } + esnext.math.scale { "chrome":"71" } + esnext.math.seeded-prng { "chrome":"71" } + esnext.math.signbit { "chrome":"71" } + esnext.math.umulh { "chrome":"71" } + esnext.number.from-string { "chrome":"71" } + esnext.observable { "chrome":"71" } + esnext.promise.all-settled { "chrome":"71" } + esnext.promise.any { "chrome":"71" } + esnext.promise.try { "chrome":"71" } + esnext.reflect.define-metadata { "chrome":"71" } + esnext.reflect.delete-metadata { "chrome":"71" } + esnext.reflect.get-metadata { "chrome":"71" } + esnext.reflect.get-metadata-keys { "chrome":"71" } + esnext.reflect.get-own-metadata { "chrome":"71" } + esnext.reflect.get-own-metadata-keys { "chrome":"71" } + esnext.reflect.has-metadata { "chrome":"71" } + esnext.reflect.has-own-metadata { "chrome":"71" } + esnext.reflect.metadata { "chrome":"71" } + esnext.set.add-all { "chrome":"71" } + esnext.set.delete-all { "chrome":"71" } + esnext.set.difference { "chrome":"71" } + esnext.set.every { "chrome":"71" } + esnext.set.filter { "chrome":"71" } + esnext.set.find { "chrome":"71" } + esnext.set.from { "chrome":"71" } + esnext.set.intersection { "chrome":"71" } + esnext.set.is-disjoint-from { "chrome":"71" } + esnext.set.is-subset-of { "chrome":"71" } + esnext.set.is-superset-of { "chrome":"71" } + esnext.set.join { "chrome":"71" } + esnext.set.map { "chrome":"71" } + esnext.set.of { "chrome":"71" } + esnext.set.reduce { "chrome":"71" } + esnext.set.some { "chrome":"71" } + esnext.set.symmetric-difference { "chrome":"71" } + esnext.set.union { "chrome":"71" } + esnext.string.at { "chrome":"71" } + esnext.string.code-points { "chrome":"71" } + esnext.string.match-all { "chrome":"71" } + esnext.string.replace-all { "chrome":"71" } + esnext.symbol.dispose { "chrome":"71" } + esnext.symbol.observable { "chrome":"71" } + esnext.symbol.pattern-match { "chrome":"71" } + esnext.weak-map.delete-all { "chrome":"71" } + esnext.weak-map.from { "chrome":"71" } + esnext.weak-map.of { "chrome":"71" } + esnext.weak-set.add-all { "chrome":"71" } + esnext.weak-set.delete-all { "chrome":"71" } + esnext.weak-set.from { "chrome":"71" } + esnext.weak-set.of { "chrome":"71" } + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/in/in.js new file mode 100644 index 0000000000..3c012b22d8 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/in/in.js @@ -0,0 +1,3 @@ +import 'core-js/es'; +import 'core-js/proposals'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/options.json new file mode 100644 index 0000000000..1e5ef9ed0a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/options.json @@ -0,0 +1,10 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/stdout.txt new file mode 100644 index 0000000000..0a23b8d738 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es-proposals/stdout.txt @@ -0,0 +1,327 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol {} + es.symbol.description {} + es.symbol.async-iterator {} + es.symbol.has-instance {} + es.symbol.is-concat-spreadable {} + es.symbol.iterator {} + es.symbol.match {} + es.symbol.replace {} + es.symbol.search {} + es.symbol.species {} + es.symbol.split {} + es.symbol.to-primitive {} + es.symbol.to-string-tag {} + es.symbol.unscopables {} + es.array.concat {} + es.array.copy-within {} + es.array.every {} + es.array.fill {} + es.array.filter {} + es.array.find {} + es.array.find-index {} + es.array.flat {} + es.array.flat-map {} + es.array.for-each {} + es.array.from {} + es.array.includes {} + es.array.index-of {} + es.array.is-array {} + es.array.iterator {} + es.array.join {} + es.array.last-index-of {} + es.array.map {} + es.array.of {} + es.array.reduce {} + es.array.reduce-right {} + es.array.reverse {} + es.array.slice {} + es.array.some {} + es.array.sort {} + es.array.species {} + es.array.splice {} + es.array.unscopables.flat {} + es.array.unscopables.flat-map {} + es.array-buffer.constructor {} + es.array-buffer.is-view {} + es.array-buffer.slice {} + es.data-view {} + es.date.now {} + es.date.to-iso-string {} + es.date.to-json {} + es.date.to-primitive {} + es.date.to-string {} + es.function.bind {} + es.function.has-instance {} + es.function.name {} + es.json.to-string-tag {} + es.map {} + es.math.acosh {} + es.math.asinh {} + es.math.atanh {} + es.math.cbrt {} + es.math.clz32 {} + es.math.cosh {} + es.math.expm1 {} + es.math.fround {} + es.math.hypot {} + es.math.imul {} + es.math.log10 {} + es.math.log1p {} + es.math.log2 {} + es.math.sign {} + es.math.sinh {} + es.math.tanh {} + es.math.to-string-tag {} + es.math.trunc {} + es.number.constructor {} + es.number.epsilon {} + es.number.is-finite {} + es.number.is-integer {} + es.number.is-nan {} + es.number.is-safe-integer {} + es.number.max-safe-integer {} + es.number.min-safe-integer {} + es.number.parse-float {} + es.number.parse-int {} + es.number.to-fixed {} + es.number.to-precision {} + es.object.assign {} + es.object.create {} + es.object.define-getter {} + es.object.define-properties {} + es.object.define-property {} + es.object.define-setter {} + es.object.entries {} + es.object.freeze {} + es.object.from-entries {} + es.object.get-own-property-descriptor {} + es.object.get-own-property-descriptors {} + es.object.get-own-property-names {} + es.object.get-prototype-of {} + es.object.is {} + es.object.is-extensible {} + es.object.is-frozen {} + es.object.is-sealed {} + es.object.keys {} + es.object.lookup-getter {} + es.object.lookup-setter {} + es.object.prevent-extensions {} + es.object.seal {} + es.object.set-prototype-of {} + es.object.to-string {} + es.object.values {} + es.parse-float {} + es.parse-int {} + es.promise {} + es.promise.finally {} + es.reflect.apply {} + es.reflect.construct {} + es.reflect.define-property {} + es.reflect.delete-property {} + es.reflect.get {} + es.reflect.get-own-property-descriptor {} + es.reflect.get-prototype-of {} + es.reflect.has {} + es.reflect.is-extensible {} + es.reflect.own-keys {} + es.reflect.prevent-extensions {} + es.reflect.set {} + es.reflect.set-prototype-of {} + es.regexp.constructor {} + es.regexp.exec {} + es.regexp.flags {} + es.regexp.to-string {} + es.set {} + es.string.code-point-at {} + es.string.ends-with {} + es.string.from-code-point {} + es.string.includes {} + es.string.iterator {} + es.string.match {} + es.string.pad-end {} + es.string.pad-start {} + es.string.raw {} + es.string.repeat {} + es.string.replace {} + es.string.search {} + es.string.split {} + es.string.starts-with {} + es.string.trim {} + es.string.trim-end {} + es.string.trim-start {} + es.string.anchor {} + es.string.big {} + es.string.blink {} + es.string.bold {} + es.string.fixed {} + es.string.fontcolor {} + es.string.fontsize {} + es.string.italics {} + es.string.link {} + es.string.small {} + es.string.strike {} + es.string.sub {} + es.string.sup {} + es.typed-array.float32-array {} + es.typed-array.float64-array {} + es.typed-array.int8-array {} + es.typed-array.int16-array {} + es.typed-array.int32-array {} + es.typed-array.uint8-array {} + es.typed-array.uint8-clamped-array {} + es.typed-array.uint16-array {} + es.typed-array.uint32-array {} + es.typed-array.copy-within {} + es.typed-array.every {} + es.typed-array.fill {} + es.typed-array.filter {} + es.typed-array.find {} + es.typed-array.find-index {} + es.typed-array.for-each {} + es.typed-array.from {} + es.typed-array.includes {} + es.typed-array.index-of {} + es.typed-array.iterator {} + es.typed-array.join {} + es.typed-array.last-index-of {} + es.typed-array.map {} + es.typed-array.of {} + es.typed-array.reduce {} + es.typed-array.reduce-right {} + es.typed-array.reverse {} + es.typed-array.set {} + es.typed-array.slice {} + es.typed-array.some {} + es.typed-array.sort {} + es.typed-array.subarray {} + es.typed-array.to-locale-string {} + es.typed-array.to-string {} + es.weak-map {} + es.weak-set {} + esnext.aggregate-error {} + esnext.array.last-index {} + esnext.array.last-item {} + esnext.composite-key {} + esnext.composite-symbol {} + esnext.global-this {} + esnext.map.delete-all {} + esnext.map.every {} + esnext.map.filter {} + esnext.map.find {} + esnext.map.find-key {} + esnext.map.from {} + esnext.map.group-by {} + esnext.map.includes {} + esnext.map.key-by {} + esnext.map.key-of {} + esnext.map.map-keys {} + esnext.map.map-values {} + esnext.map.merge {} + esnext.map.of {} + esnext.map.reduce {} + esnext.map.some {} + esnext.map.update {} + esnext.math.clamp {} + esnext.math.deg-per-rad {} + esnext.math.degrees {} + esnext.math.fscale {} + esnext.math.iaddh {} + esnext.math.imulh {} + esnext.math.isubh {} + esnext.math.rad-per-deg {} + esnext.math.radians {} + esnext.math.scale {} + esnext.math.seeded-prng {} + esnext.math.signbit {} + esnext.math.umulh {} + esnext.number.from-string {} + esnext.observable {} + esnext.promise.all-settled {} + esnext.promise.any {} + esnext.promise.try {} + esnext.reflect.define-metadata {} + esnext.reflect.delete-metadata {} + esnext.reflect.get-metadata {} + esnext.reflect.get-metadata-keys {} + esnext.reflect.get-own-metadata {} + esnext.reflect.get-own-metadata-keys {} + esnext.reflect.has-metadata {} + esnext.reflect.has-own-metadata {} + esnext.reflect.metadata {} + esnext.set.add-all {} + esnext.set.delete-all {} + esnext.set.difference {} + esnext.set.every {} + esnext.set.filter {} + esnext.set.find {} + esnext.set.from {} + esnext.set.intersection {} + esnext.set.is-disjoint-from {} + esnext.set.is-subset-of {} + esnext.set.is-superset-of {} + esnext.set.join {} + esnext.set.map {} + esnext.set.of {} + esnext.set.reduce {} + esnext.set.some {} + esnext.set.symmetric-difference {} + esnext.set.union {} + esnext.string.at {} + esnext.string.code-points {} + esnext.string.match-all {} + esnext.string.replace-all {} + esnext.symbol.dispose {} + esnext.symbol.observable {} + esnext.symbol.pattern-match {} + esnext.weak-map.delete-all {} + esnext.weak-map.from {} + esnext.weak-map.of {} + esnext.weak-set.add-all {} + esnext.weak-set.delete-all {} + esnext.weak-set.from {} + esnext.weak-set.of {} + web.url {} + web.url.to-json {} + web.url-search-params {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/in/in.js new file mode 100644 index 0000000000..d830e7e10c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/es'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/options.json new file mode 100644 index 0000000000..1e5ef9ed0a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/options.json @@ -0,0 +1,10 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/stdout.txt new file mode 100644 index 0000000000..c73d28039a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-es/stdout.txt @@ -0,0 +1,242 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol {} + es.symbol.description {} + es.symbol.async-iterator {} + es.symbol.has-instance {} + es.symbol.is-concat-spreadable {} + es.symbol.iterator {} + es.symbol.match {} + es.symbol.replace {} + es.symbol.search {} + es.symbol.species {} + es.symbol.split {} + es.symbol.to-primitive {} + es.symbol.to-string-tag {} + es.symbol.unscopables {} + es.array.concat {} + es.array.copy-within {} + es.array.every {} + es.array.fill {} + es.array.filter {} + es.array.find {} + es.array.find-index {} + es.array.flat {} + es.array.flat-map {} + es.array.for-each {} + es.array.from {} + es.array.includes {} + es.array.index-of {} + es.array.is-array {} + es.array.iterator {} + es.array.join {} + es.array.last-index-of {} + es.array.map {} + es.array.of {} + es.array.reduce {} + es.array.reduce-right {} + es.array.reverse {} + es.array.slice {} + es.array.some {} + es.array.sort {} + es.array.species {} + es.array.splice {} + es.array.unscopables.flat {} + es.array.unscopables.flat-map {} + es.array-buffer.constructor {} + es.array-buffer.is-view {} + es.array-buffer.slice {} + es.data-view {} + es.date.now {} + es.date.to-iso-string {} + es.date.to-json {} + es.date.to-primitive {} + es.date.to-string {} + es.function.bind {} + es.function.has-instance {} + es.function.name {} + es.json.to-string-tag {} + es.map {} + es.math.acosh {} + es.math.asinh {} + es.math.atanh {} + es.math.cbrt {} + es.math.clz32 {} + es.math.cosh {} + es.math.expm1 {} + es.math.fround {} + es.math.hypot {} + es.math.imul {} + es.math.log10 {} + es.math.log1p {} + es.math.log2 {} + es.math.sign {} + es.math.sinh {} + es.math.tanh {} + es.math.to-string-tag {} + es.math.trunc {} + es.number.constructor {} + es.number.epsilon {} + es.number.is-finite {} + es.number.is-integer {} + es.number.is-nan {} + es.number.is-safe-integer {} + es.number.max-safe-integer {} + es.number.min-safe-integer {} + es.number.parse-float {} + es.number.parse-int {} + es.number.to-fixed {} + es.number.to-precision {} + es.object.assign {} + es.object.create {} + es.object.define-getter {} + es.object.define-properties {} + es.object.define-property {} + es.object.define-setter {} + es.object.entries {} + es.object.freeze {} + es.object.from-entries {} + es.object.get-own-property-descriptor {} + es.object.get-own-property-descriptors {} + es.object.get-own-property-names {} + es.object.get-prototype-of {} + es.object.is {} + es.object.is-extensible {} + es.object.is-frozen {} + es.object.is-sealed {} + es.object.keys {} + es.object.lookup-getter {} + es.object.lookup-setter {} + es.object.prevent-extensions {} + es.object.seal {} + es.object.set-prototype-of {} + es.object.to-string {} + es.object.values {} + es.parse-float {} + es.parse-int {} + es.promise {} + es.promise.finally {} + es.reflect.apply {} + es.reflect.construct {} + es.reflect.define-property {} + es.reflect.delete-property {} + es.reflect.get {} + es.reflect.get-own-property-descriptor {} + es.reflect.get-prototype-of {} + es.reflect.has {} + es.reflect.is-extensible {} + es.reflect.own-keys {} + es.reflect.prevent-extensions {} + es.reflect.set {} + es.reflect.set-prototype-of {} + es.regexp.constructor {} + es.regexp.exec {} + es.regexp.flags {} + es.regexp.to-string {} + es.set {} + es.string.code-point-at {} + es.string.ends-with {} + es.string.from-code-point {} + es.string.includes {} + es.string.iterator {} + es.string.match {} + es.string.pad-end {} + es.string.pad-start {} + es.string.raw {} + es.string.repeat {} + es.string.replace {} + es.string.search {} + es.string.split {} + es.string.starts-with {} + es.string.trim {} + es.string.trim-end {} + es.string.trim-start {} + es.string.anchor {} + es.string.big {} + es.string.blink {} + es.string.bold {} + es.string.fixed {} + es.string.fontcolor {} + es.string.fontsize {} + es.string.italics {} + es.string.link {} + es.string.small {} + es.string.strike {} + es.string.sub {} + es.string.sup {} + es.typed-array.float32-array {} + es.typed-array.float64-array {} + es.typed-array.int8-array {} + es.typed-array.int16-array {} + es.typed-array.int32-array {} + es.typed-array.uint8-array {} + es.typed-array.uint8-clamped-array {} + es.typed-array.uint16-array {} + es.typed-array.uint32-array {} + es.typed-array.copy-within {} + es.typed-array.every {} + es.typed-array.fill {} + es.typed-array.filter {} + es.typed-array.find {} + es.typed-array.find-index {} + es.typed-array.for-each {} + es.typed-array.from {} + es.typed-array.includes {} + es.typed-array.index-of {} + es.typed-array.iterator {} + es.typed-array.join {} + es.typed-array.last-index-of {} + es.typed-array.map {} + es.typed-array.of {} + es.typed-array.reduce {} + es.typed-array.reduce-right {} + es.typed-array.reverse {} + es.typed-array.set {} + es.typed-array.slice {} + es.typed-array.some {} + es.typed-array.sort {} + es.typed-array.subarray {} + es.typed-array.to-locale-string {} + es.typed-array.to-string {} + es.weak-map {} + es.weak-set {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/options.json new file mode 100644 index 0000000000..c1c4390e71 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "modules": false, + "targets": { + "chrome": 55 + }, + "useBuiltIns": "entry", + "corejs": 3, + "forceAllTransforms": true + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/stdout.txt new file mode 100644 index 0000000000..51322aca20 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-force-all-transforms/stdout.txt @@ -0,0 +1,72 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "55" +} + +Using modules transform: false + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex { "chrome":"55" } + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions { "chrome":"55" } + proposal-object-rest-spread { "chrome":"55" } + proposal-unicode-property-regex { "chrome":"55" } + proposal-json-strings { "chrome":"55" } + proposal-optional-catch-binding { "chrome":"55" } + transform-named-capturing-groups-regex { "chrome":"55" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol.description { "chrome":"55" } + es.symbol.async-iterator { "chrome":"55" } + es.array.flat { "chrome":"55" } + es.array.flat-map { "chrome":"55" } + es.array.iterator { "chrome":"55" } + es.array.sort { "chrome":"55" } + es.array.unscopables.flat { "chrome":"55" } + es.array.unscopables.flat-map { "chrome":"55" } + es.object.define-getter { "chrome":"55" } + es.object.define-setter { "chrome":"55" } + es.object.from-entries { "chrome":"55" } + es.object.lookup-getter { "chrome":"55" } + es.object.lookup-setter { "chrome":"55" } + es.promise { "chrome":"55" } + es.promise.finally { "chrome":"55" } + es.string.pad-end { "chrome":"55" } + es.string.pad-start { "chrome":"55" } + es.string.replace { "chrome":"55" } + es.string.trim { "chrome":"55" } + es.string.trim-end { "chrome":"55" } + es.string.trim-start { "chrome":"55" } + web.dom-collections.for-each { "chrome":"55" } + web.dom-collections.iterator { "chrome":"55" } + web.immediate { "chrome":"55" } + web.queue-microtask { "chrome":"55" } + web.url { "chrome":"55" } + web.url.to-json { "chrome":"55" } + web.url-search-params { "chrome":"55" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/in/in.js new file mode 100644 index 0000000000..e31333abc5 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/in/in.js @@ -0,0 +1 @@ +function hasAnyoneSeenImportBabelPolyfill() { return false }; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/options.json new file mode 100644 index 0000000000..394e16ee1e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "node": 6 + }, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/stdout.txt new file mode 100644 index 0000000000..73ffcc5860 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-no-import/stdout.txt @@ -0,0 +1,27 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "node": "6" +} + +Using modules transform: auto + +Using plugins: + transform-function-name { "node":"6" } + transform-for-of { "node":"6" } + transform-dotall-regex { "node":"6" } + transform-destructuring { "node":"6" } + transform-exponentiation-operator { "node":"6" } + transform-async-to-generator { "node":"6" } + proposal-async-generator-functions { "node":"6" } + proposal-object-rest-spread { "node":"6" } + proposal-unicode-property-regex { "node":"6" } + proposal-json-strings { "node":"6" } + proposal-optional-catch-binding { "node":"6" } + transform-named-capturing-groups-regex { "node":"6" } + +Using polyfills with `entry` option: + +[/src/in.js] Import of core-js was not found. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/in/in.js new file mode 100644 index 0000000000..b721678e02 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/proposals'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/options.json new file mode 100644 index 0000000000..f08309ca7b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "useBuiltIns": "entry", + "corejs": { "version": 3, "proposals": true } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/stdout.txt new file mode 100644 index 0000000000..415f49d210 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals-chrome-71/stdout.txt @@ -0,0 +1,102 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + esnext.aggregate-error { "chrome":"71" } + esnext.array.last-index { "chrome":"71" } + esnext.array.last-item { "chrome":"71" } + esnext.composite-key { "chrome":"71" } + esnext.composite-symbol { "chrome":"71" } + esnext.map.delete-all { "chrome":"71" } + esnext.map.every { "chrome":"71" } + esnext.map.filter { "chrome":"71" } + esnext.map.find { "chrome":"71" } + esnext.map.find-key { "chrome":"71" } + esnext.map.from { "chrome":"71" } + esnext.map.group-by { "chrome":"71" } + esnext.map.includes { "chrome":"71" } + esnext.map.key-by { "chrome":"71" } + esnext.map.key-of { "chrome":"71" } + esnext.map.map-keys { "chrome":"71" } + esnext.map.map-values { "chrome":"71" } + esnext.map.merge { "chrome":"71" } + esnext.map.of { "chrome":"71" } + esnext.map.reduce { "chrome":"71" } + esnext.map.some { "chrome":"71" } + esnext.map.update { "chrome":"71" } + esnext.math.clamp { "chrome":"71" } + esnext.math.deg-per-rad { "chrome":"71" } + esnext.math.degrees { "chrome":"71" } + esnext.math.fscale { "chrome":"71" } + esnext.math.iaddh { "chrome":"71" } + esnext.math.imulh { "chrome":"71" } + esnext.math.isubh { "chrome":"71" } + esnext.math.rad-per-deg { "chrome":"71" } + esnext.math.radians { "chrome":"71" } + esnext.math.scale { "chrome":"71" } + esnext.math.seeded-prng { "chrome":"71" } + esnext.math.signbit { "chrome":"71" } + esnext.math.umulh { "chrome":"71" } + esnext.number.from-string { "chrome":"71" } + esnext.observable { "chrome":"71" } + esnext.promise.all-settled { "chrome":"71" } + esnext.promise.any { "chrome":"71" } + esnext.promise.try { "chrome":"71" } + esnext.reflect.define-metadata { "chrome":"71" } + esnext.reflect.delete-metadata { "chrome":"71" } + esnext.reflect.get-metadata { "chrome":"71" } + esnext.reflect.get-metadata-keys { "chrome":"71" } + esnext.reflect.get-own-metadata { "chrome":"71" } + esnext.reflect.get-own-metadata-keys { "chrome":"71" } + esnext.reflect.has-metadata { "chrome":"71" } + esnext.reflect.has-own-metadata { "chrome":"71" } + esnext.reflect.metadata { "chrome":"71" } + esnext.set.add-all { "chrome":"71" } + esnext.set.delete-all { "chrome":"71" } + esnext.set.difference { "chrome":"71" } + esnext.set.every { "chrome":"71" } + esnext.set.filter { "chrome":"71" } + esnext.set.find { "chrome":"71" } + esnext.set.from { "chrome":"71" } + esnext.set.intersection { "chrome":"71" } + esnext.set.is-disjoint-from { "chrome":"71" } + esnext.set.is-subset-of { "chrome":"71" } + esnext.set.is-superset-of { "chrome":"71" } + esnext.set.join { "chrome":"71" } + esnext.set.map { "chrome":"71" } + esnext.set.of { "chrome":"71" } + esnext.set.reduce { "chrome":"71" } + esnext.set.some { "chrome":"71" } + esnext.set.symmetric-difference { "chrome":"71" } + esnext.set.union { "chrome":"71" } + esnext.string.at { "chrome":"71" } + esnext.string.code-points { "chrome":"71" } + esnext.string.match-all { "chrome":"71" } + esnext.string.replace-all { "chrome":"71" } + esnext.symbol.dispose { "chrome":"71" } + esnext.symbol.observable { "chrome":"71" } + esnext.symbol.pattern-match { "chrome":"71" } + esnext.weak-map.delete-all { "chrome":"71" } + esnext.weak-map.from { "chrome":"71" } + esnext.weak-map.of { "chrome":"71" } + esnext.weak-set.add-all { "chrome":"71" } + esnext.weak-set.delete-all { "chrome":"71" } + esnext.weak-set.from { "chrome":"71" } + esnext.weak-set.of { "chrome":"71" } + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/in/in.js new file mode 100644 index 0000000000..b721678e02 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/proposals'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/options.json new file mode 100644 index 0000000000..5600525658 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/options.json @@ -0,0 +1,9 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "useBuiltIns": "entry", + "corejs": { "version": 3, "proposals": true } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/stdout.txt new file mode 100644 index 0000000000..fff62d29ac --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-proposals/stdout.txt @@ -0,0 +1,127 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + esnext.aggregate-error {} + esnext.array.last-index {} + esnext.array.last-item {} + esnext.composite-key {} + esnext.composite-symbol {} + esnext.global-this {} + esnext.map.delete-all {} + esnext.map.every {} + esnext.map.filter {} + esnext.map.find {} + esnext.map.find-key {} + esnext.map.from {} + esnext.map.group-by {} + esnext.map.includes {} + esnext.map.key-by {} + esnext.map.key-of {} + esnext.map.map-keys {} + esnext.map.map-values {} + esnext.map.merge {} + esnext.map.of {} + esnext.map.reduce {} + esnext.map.some {} + esnext.map.update {} + esnext.math.clamp {} + esnext.math.deg-per-rad {} + esnext.math.degrees {} + esnext.math.fscale {} + esnext.math.iaddh {} + esnext.math.imulh {} + esnext.math.isubh {} + esnext.math.rad-per-deg {} + esnext.math.radians {} + esnext.math.scale {} + esnext.math.seeded-prng {} + esnext.math.signbit {} + esnext.math.umulh {} + esnext.number.from-string {} + esnext.observable {} + esnext.promise.all-settled {} + esnext.promise.any {} + esnext.promise.try {} + esnext.reflect.define-metadata {} + esnext.reflect.delete-metadata {} + esnext.reflect.get-metadata {} + esnext.reflect.get-metadata-keys {} + esnext.reflect.get-own-metadata {} + esnext.reflect.get-own-metadata-keys {} + esnext.reflect.has-metadata {} + esnext.reflect.has-own-metadata {} + esnext.reflect.metadata {} + esnext.set.add-all {} + esnext.set.delete-all {} + esnext.set.difference {} + esnext.set.every {} + esnext.set.filter {} + esnext.set.find {} + esnext.set.from {} + esnext.set.intersection {} + esnext.set.is-disjoint-from {} + esnext.set.is-subset-of {} + esnext.set.is-superset-of {} + esnext.set.join {} + esnext.set.map {} + esnext.set.of {} + esnext.set.reduce {} + esnext.set.some {} + esnext.set.symmetric-difference {} + esnext.set.union {} + esnext.string.at {} + esnext.string.code-points {} + esnext.string.match-all {} + esnext.string.replace-all {} + esnext.symbol.dispose {} + esnext.symbol.observable {} + esnext.symbol.pattern-match {} + esnext.weak-map.delete-all {} + esnext.weak-map.from {} + esnext.weak-map.of {} + esnext.weak-set.add-all {} + esnext.weak-set.delete-all {} + esnext.weak-set.from {} + esnext.weak-set.of {} + web.url {} + web.url.to-json {} + web.url-search-params {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/in/in.js new file mode 100644 index 0000000000..b535f6a2cc --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/in/in.js @@ -0,0 +1 @@ +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/options.json new file mode 100644 index 0000000000..b9db1e21e4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/stdout.txt new file mode 100644 index 0000000000..2420ffb75e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only-chrome-71/stdout.txt @@ -0,0 +1,21 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Import of core-js was not found. + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/in/in.js new file mode 100644 index 0000000000..b535f6a2cc --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/in/in.js @@ -0,0 +1 @@ +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/options.json new file mode 100644 index 0000000000..b9db1e21e4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/stdout.txt new file mode 100644 index 0000000000..2420ffb75e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-runtime-only/stdout.txt @@ -0,0 +1,21 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Import of core-js was not found. + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/in/in.js new file mode 100644 index 0000000000..694e78444f --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/in/in.js @@ -0,0 +1,4 @@ +import 'core-js/es/object'; +import 'core-js/features/reflect'; +import 'core-js/something'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/options.json new file mode 100644 index 0000000000..b9db1e21e4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/stdout.txt new file mode 100644 index 0000000000..e77af2686b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries-chrome-71/stdout.txt @@ -0,0 +1,31 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.object.from-entries { "chrome":"71" } + esnext.reflect.define-metadata { "chrome":"71" } + esnext.reflect.delete-metadata { "chrome":"71" } + esnext.reflect.get-metadata { "chrome":"71" } + esnext.reflect.get-metadata-keys { "chrome":"71" } + esnext.reflect.get-own-metadata { "chrome":"71" } + esnext.reflect.get-own-metadata-keys { "chrome":"71" } + esnext.reflect.has-metadata { "chrome":"71" } + esnext.reflect.has-own-metadata { "chrome":"71" } + esnext.reflect.metadata { "chrome":"71" } + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/in/in.js new file mode 100644 index 0000000000..694e78444f --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/in/in.js @@ -0,0 +1,4 @@ +import 'core-js/es/object'; +import 'core-js/features/reflect'; +import 'core-js/something'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/options.json new file mode 100644 index 0000000000..1e5ef9ed0a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/options.json @@ -0,0 +1,10 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/stdout.txt new file mode 100644 index 0000000000..55b6a5e28e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-entries/stdout.txt @@ -0,0 +1,92 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol {} + es.json.to-string-tag {} + es.math.to-string-tag {} + es.object.assign {} + es.object.create {} + es.object.define-getter {} + es.object.define-properties {} + es.object.define-property {} + es.object.define-setter {} + es.object.entries {} + es.object.freeze {} + es.object.from-entries {} + es.object.get-own-property-descriptor {} + es.object.get-own-property-descriptors {} + es.object.get-own-property-names {} + es.object.get-prototype-of {} + es.object.is {} + es.object.is-extensible {} + es.object.is-frozen {} + es.object.is-sealed {} + es.object.keys {} + es.object.lookup-getter {} + es.object.lookup-setter {} + es.object.prevent-extensions {} + es.object.seal {} + es.object.set-prototype-of {} + es.object.to-string {} + es.object.values {} + es.reflect.apply {} + es.reflect.construct {} + es.reflect.define-property {} + es.reflect.delete-property {} + es.reflect.get {} + es.reflect.get-own-property-descriptor {} + es.reflect.get-prototype-of {} + es.reflect.has {} + es.reflect.is-extensible {} + es.reflect.own-keys {} + es.reflect.prevent-extensions {} + es.reflect.set {} + es.reflect.set-prototype-of {} + esnext.reflect.define-metadata {} + esnext.reflect.delete-metadata {} + esnext.reflect.get-metadata {} + esnext.reflect.get-metadata-keys {} + esnext.reflect.get-own-metadata {} + esnext.reflect.get-own-metadata-keys {} + esnext.reflect.has-metadata {} + esnext.reflect.has-own-metadata {} + esnext.reflect.metadata {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/options.json new file mode 100644 index 0000000000..b569366935 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "ie 10, ios 9, safari 7, edge 13, chrome 54, firefox 49" + }, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/stdout.txt new file mode 100644 index 0000000000..0be270e411 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-specific-targets/stdout.txt @@ -0,0 +1,252 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "54", + "edge": "13", + "firefox": "49", + "ie": "10", + "ios": "9", + "safari": "7" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"10", "ios":"9", "safari":"7" } + transform-literals { "firefox":"49", "ie":"10", "safari":"7" } + transform-function-name { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + transform-arrow-functions { "ie":"10", "ios":"9", "safari":"7" } + transform-block-scoped-functions { "ie":"10", "ios":"9", "safari":"7" } + transform-classes { "ie":"10", "ios":"9", "safari":"7" } + transform-object-super { "ie":"10", "ios":"9", "safari":"7" } + transform-shorthand-properties { "ie":"10", "safari":"7" } + transform-duplicate-keys { "ie":"10", "safari":"7" } + transform-computed-properties { "ie":"10", "safari":"7" } + transform-for-of { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + transform-sticky-regex { "ie":"10", "ios":"9", "safari":"7" } + transform-dotall-regex { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + transform-unicode-regex { "ie":"10", "ios":"9", "safari":"7" } + transform-spread { "ie":"10", "ios":"9", "safari":"7" } + transform-parameters { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + transform-destructuring { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + transform-block-scoping { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + transform-typeof-symbol { "ie":"10", "safari":"7" } + transform-new-target { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + transform-regenerator { "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + transform-exponentiation-operator { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + transform-async-to-generator { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + proposal-async-generator-functions { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + proposal-object-rest-spread { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + proposal-unicode-property-regex { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + proposal-json-strings { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + proposal-optional-catch-binding { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + transform-named-capturing-groups-regex { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.description { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.async-iterator { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.has-instance { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.is-concat-spreadable { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.iterator { "ie":"10", "safari":"7" } + es.symbol.match { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.replace { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.search { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.species { "ie":"10", "ios":"9", "safari":"7" } + es.symbol.split { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.to-primitive { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.to-string-tag { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.symbol.unscopables { "ie":"10", "safari":"7" } + es.array.concat { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.array.copy-within { "ie":"10", "safari":"7" } + es.array.every { "safari":"7" } + es.array.fill { "ie":"10", "safari":"7" } + es.array.filter { "ie":"10", "ios":"9", "safari":"7" } + es.array.find { "ie":"10", "safari":"7" } + es.array.find-index { "ie":"10", "safari":"7" } + es.array.flat { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.array.flat-map { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.array.for-each { "safari":"7" } + es.array.from { "edge":"13", "firefox":"49", "ie":"10", "safari":"7" } + es.array.includes { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.array.index-of { "safari":"7" } + es.array.iterator { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.array.join { "ie":"10", "safari":"7" } + es.array.last-index-of { "safari":"7" } + es.array.map { "ie":"10", "ios":"9", "safari":"7" } + es.array.of { "ie":"10", "safari":"7" } + es.array.reduce { "safari":"7" } + es.array.reduce-right { "safari":"7" } + es.array.reverse { "ios":"9", "safari":"7" } + es.array.slice { "ie":"10", "ios":"9", "safari":"7" } + es.array.some { "safari":"7" } + es.array.sort { "chrome":"54", "ios":"9", "safari":"7" } + es.array.species { "ie":"10", "ios":"9", "safari":"7" } + es.array.splice { "ie":"10", "ios":"9", "safari":"7" } + es.array.unscopables.flat { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.array.unscopables.flat-map { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.array-buffer.constructor { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.array-buffer.is-view { "ie":"10", "safari":"7" } + es.array-buffer.slice { "ie":"10", "ios":"9", "safari":"7" } + es.data-view { "safari":"7" } + es.date.to-iso-string { "safari":"7" } + es.date.to-json { "ios":"9", "safari":"7" } + es.date.to-primitive { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.date.to-string { "safari":"7" } + es.function.has-instance { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.function.name { "edge":"13", "ie":"10", "safari":"7" } + es.json.to-string-tag { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.map { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.math.acosh { "ie":"10", "safari":"7" } + es.math.asinh { "ie":"10", "safari":"7" } + es.math.atanh { "ie":"10", "safari":"7" } + es.math.cbrt { "ie":"10", "safari":"7" } + es.math.clz32 { "ie":"10", "safari":"7" } + es.math.cosh { "ie":"10", "safari":"7" } + es.math.expm1 { "ie":"10", "safari":"7" } + es.math.fround { "ie":"10", "safari":"7" } + es.math.hypot { "ie":"10", "safari":"7" } + es.math.imul { "ie":"10", "safari":"7" } + es.math.log10 { "ie":"10", "safari":"7" } + es.math.log1p { "ie":"10", "safari":"7" } + es.math.log2 { "ie":"10", "safari":"7" } + es.math.sign { "ie":"10", "safari":"7" } + es.math.sinh { "ie":"10", "safari":"7" } + es.math.tanh { "ie":"10", "safari":"7" } + es.math.to-string-tag { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.math.trunc { "ie":"10", "safari":"7" } + es.number.constructor { "ie":"10", "safari":"7" } + es.number.epsilon { "ie":"10", "safari":"7" } + es.number.is-finite { "ie":"10", "safari":"7" } + es.number.is-integer { "ie":"10", "safari":"7" } + es.number.is-nan { "ie":"10", "safari":"7" } + es.number.is-safe-integer { "ie":"10", "safari":"7" } + es.number.max-safe-integer { "ie":"10", "safari":"7" } + es.number.min-safe-integer { "ie":"10", "safari":"7" } + es.number.parse-float { "ie":"10", "ios":"9", "safari":"7" } + es.number.parse-int { "ie":"10", "safari":"7" } + es.number.to-fixed { "edge":"13", "ie":"10", "safari":"7" } + es.number.to-precision { "safari":"7" } + es.object.assign { "ie":"10", "safari":"7" } + es.object.define-getter { "chrome":"54", "edge":"13", "ie":"10", "safari":"7" } + es.object.define-properties { "safari":"7" } + es.object.define-property { "safari":"7" } + es.object.define-setter { "chrome":"54", "edge":"13", "ie":"10", "safari":"7" } + es.object.entries { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.object.freeze { "ie":"10", "safari":"7" } + es.object.from-entries { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.object.get-own-property-descriptor { "ie":"10", "safari":"7" } + es.object.get-own-property-descriptors { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.object.get-own-property-names { "ie":"10", "safari":"7" } + es.object.get-prototype-of { "ie":"10", "safari":"7" } + es.object.is { "ie":"10", "safari":"7" } + es.object.is-extensible { "ie":"10", "safari":"7" } + es.object.is-frozen { "ie":"10", "safari":"7" } + es.object.is-sealed { "ie":"10", "safari":"7" } + es.object.keys { "ie":"10", "safari":"7" } + es.object.lookup-getter { "chrome":"54", "edge":"13", "ie":"10", "safari":"7" } + es.object.lookup-setter { "chrome":"54", "edge":"13", "ie":"10", "safari":"7" } + es.object.prevent-extensions { "ie":"10", "safari":"7" } + es.object.seal { "ie":"10", "safari":"7" } + es.object.set-prototype-of { "ie":"10", "safari":"7" } + es.object.to-string { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.object.values { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.parse-float { "safari":"7" } + es.parse-int { "safari":"7" } + es.promise { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.promise.finally { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.reflect.apply { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.reflect.construct { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.reflect.define-property { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.delete-property { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.get { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.get-own-property-descriptor { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.get-prototype-of { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.has { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.is-extensible { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.own-keys { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.prevent-extensions { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.set { "ie":"10", "ios":"9", "safari":"7" } + es.reflect.set-prototype-of { "ie":"10", "ios":"9", "safari":"7" } + es.regexp.constructor { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.regexp.exec { "safari":"7" } + es.regexp.flags { "edge":"13", "ie":"10", "safari":"7" } + es.regexp.to-string { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.set { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.string.code-point-at { "ie":"10", "safari":"7" } + es.string.ends-with { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.string.from-code-point { "ie":"10", "safari":"7" } + es.string.includes { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.string.iterator { "ie":"10", "safari":"7" } + es.string.match { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.string.pad-end { "chrome":"54", "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.string.pad-start { "chrome":"54", "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.string.raw { "ie":"10", "safari":"7" } + es.string.repeat { "ie":"10", "safari":"7" } + es.string.replace { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.string.search { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.string.split { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.string.starts-with { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.string.trim { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.string.trim-end { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.string.trim-start { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.string.anchor { "ie":"10", "safari":"7" } + es.string.big { "ie":"10", "safari":"7" } + es.string.blink { "ie":"10", "safari":"7" } + es.string.bold { "ie":"10", "safari":"7" } + es.string.fixed { "ie":"10", "safari":"7" } + es.string.fontcolor { "ie":"10", "safari":"7" } + es.string.fontsize { "ie":"10", "safari":"7" } + es.string.italics { "ie":"10", "safari":"7" } + es.string.link { "ie":"10", "safari":"7" } + es.string.small { "ie":"10", "safari":"7" } + es.string.strike { "ie":"10", "safari":"7" } + es.string.sub { "ie":"10", "safari":"7" } + es.string.sup { "ie":"10", "safari":"7" } + es.typed-array.float32-array { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.float64-array { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.int8-array { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.int16-array { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.int32-array { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.uint8-array { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.uint8-clamped-array { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.uint16-array { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.uint32-array { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.copy-within { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.every { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.fill { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.filter { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.find { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.find-index { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.for-each { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.from { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.includes { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.index-of { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.iterator { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.join { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.last-index-of { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.map { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.of { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.reduce { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.reduce-right { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.reverse { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.set { "ie":"10", "safari":"7" } + es.typed-array.slice { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.some { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.sort { "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.subarray { "ie":"10", "safari":"7" } + es.typed-array.to-locale-string { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.typed-array.to-string { "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.weak-map { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + es.weak-set { "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + web.dom-collections.for-each { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + web.dom-collections.iterator { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + web.immediate { "chrome":"54", "firefox":"49", "ios":"9", "safari":"7" } + web.queue-microtask { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + web.url { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + web.url.to-json { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + web.url-search-params { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/options.json new file mode 100644 index 0000000000..b9db1e21e4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/stdout.txt new file mode 100644 index 0000000000..781f32ad09 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-chrome-71/stdout.txt @@ -0,0 +1,25 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.array.unscopables.flat { "chrome":"71" } + es.array.unscopables.flat-map { "chrome":"71" } + es.object.from-entries { "chrome":"71" } + web.immediate { "chrome":"71" } + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/options.json new file mode 100644 index 0000000000..3817499588 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "samsung 8.2" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/stdout.txt new file mode 100644 index 0000000000..50f7b3e20e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable-samsung-8.2/stdout.txt @@ -0,0 +1,39 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "samsung": "8.2" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "samsung":"8.2" } + syntax-object-rest-spread { "samsung":"8.2" } + proposal-unicode-property-regex { "samsung":"8.2" } + proposal-json-strings { "samsung":"8.2" } + proposal-optional-catch-binding { "samsung":"8.2" } + transform-named-capturing-groups-regex { "samsung":"8.2" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol.description { "samsung":"8.2" } + es.array.flat { "samsung":"8.2" } + es.array.flat-map { "samsung":"8.2" } + es.array.iterator { "samsung":"8.2" } + es.array.unscopables.flat { "samsung":"8.2" } + es.array.unscopables.flat-map { "samsung":"8.2" } + es.object.from-entries { "samsung":"8.2" } + es.promise { "samsung":"8.2" } + es.promise.finally { "samsung":"8.2" } + es.string.replace { "samsung":"8.2" } + es.string.trim-end { "samsung":"8.2" } + es.string.trim-start { "samsung":"8.2" } + web.dom-collections.iterator { "samsung":"8.2" } + web.immediate { "samsung":"8.2" } + web.queue-microtask { "samsung":"8.2" } + web.url.to-json { "samsung":"8.2" } + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/options.json new file mode 100644 index 0000000000..1e5ef9ed0a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/options.json @@ -0,0 +1,10 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/stdout.txt new file mode 100644 index 0000000000..19ad972cfd --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stable/stdout.txt @@ -0,0 +1,250 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol {} + es.symbol.description {} + es.symbol.async-iterator {} + es.symbol.has-instance {} + es.symbol.is-concat-spreadable {} + es.symbol.iterator {} + es.symbol.match {} + es.symbol.replace {} + es.symbol.search {} + es.symbol.species {} + es.symbol.split {} + es.symbol.to-primitive {} + es.symbol.to-string-tag {} + es.symbol.unscopables {} + es.array.concat {} + es.array.copy-within {} + es.array.every {} + es.array.fill {} + es.array.filter {} + es.array.find {} + es.array.find-index {} + es.array.flat {} + es.array.flat-map {} + es.array.for-each {} + es.array.from {} + es.array.includes {} + es.array.index-of {} + es.array.is-array {} + es.array.iterator {} + es.array.join {} + es.array.last-index-of {} + es.array.map {} + es.array.of {} + es.array.reduce {} + es.array.reduce-right {} + es.array.reverse {} + es.array.slice {} + es.array.some {} + es.array.sort {} + es.array.species {} + es.array.splice {} + es.array.unscopables.flat {} + es.array.unscopables.flat-map {} + es.array-buffer.constructor {} + es.array-buffer.is-view {} + es.array-buffer.slice {} + es.data-view {} + es.date.now {} + es.date.to-iso-string {} + es.date.to-json {} + es.date.to-primitive {} + es.date.to-string {} + es.function.bind {} + es.function.has-instance {} + es.function.name {} + es.json.to-string-tag {} + es.map {} + es.math.acosh {} + es.math.asinh {} + es.math.atanh {} + es.math.cbrt {} + es.math.clz32 {} + es.math.cosh {} + es.math.expm1 {} + es.math.fround {} + es.math.hypot {} + es.math.imul {} + es.math.log10 {} + es.math.log1p {} + es.math.log2 {} + es.math.sign {} + es.math.sinh {} + es.math.tanh {} + es.math.to-string-tag {} + es.math.trunc {} + es.number.constructor {} + es.number.epsilon {} + es.number.is-finite {} + es.number.is-integer {} + es.number.is-nan {} + es.number.is-safe-integer {} + es.number.max-safe-integer {} + es.number.min-safe-integer {} + es.number.parse-float {} + es.number.parse-int {} + es.number.to-fixed {} + es.number.to-precision {} + es.object.assign {} + es.object.create {} + es.object.define-getter {} + es.object.define-properties {} + es.object.define-property {} + es.object.define-setter {} + es.object.entries {} + es.object.freeze {} + es.object.from-entries {} + es.object.get-own-property-descriptor {} + es.object.get-own-property-descriptors {} + es.object.get-own-property-names {} + es.object.get-prototype-of {} + es.object.is {} + es.object.is-extensible {} + es.object.is-frozen {} + es.object.is-sealed {} + es.object.keys {} + es.object.lookup-getter {} + es.object.lookup-setter {} + es.object.prevent-extensions {} + es.object.seal {} + es.object.set-prototype-of {} + es.object.to-string {} + es.object.values {} + es.parse-float {} + es.parse-int {} + es.promise {} + es.promise.finally {} + es.reflect.apply {} + es.reflect.construct {} + es.reflect.define-property {} + es.reflect.delete-property {} + es.reflect.get {} + es.reflect.get-own-property-descriptor {} + es.reflect.get-prototype-of {} + es.reflect.has {} + es.reflect.is-extensible {} + es.reflect.own-keys {} + es.reflect.prevent-extensions {} + es.reflect.set {} + es.reflect.set-prototype-of {} + es.regexp.constructor {} + es.regexp.exec {} + es.regexp.flags {} + es.regexp.to-string {} + es.set {} + es.string.code-point-at {} + es.string.ends-with {} + es.string.from-code-point {} + es.string.includes {} + es.string.iterator {} + es.string.match {} + es.string.pad-end {} + es.string.pad-start {} + es.string.raw {} + es.string.repeat {} + es.string.replace {} + es.string.search {} + es.string.split {} + es.string.starts-with {} + es.string.trim {} + es.string.trim-end {} + es.string.trim-start {} + es.string.anchor {} + es.string.big {} + es.string.blink {} + es.string.bold {} + es.string.fixed {} + es.string.fontcolor {} + es.string.fontsize {} + es.string.italics {} + es.string.link {} + es.string.small {} + es.string.strike {} + es.string.sub {} + es.string.sup {} + es.typed-array.float32-array {} + es.typed-array.float64-array {} + es.typed-array.int8-array {} + es.typed-array.int16-array {} + es.typed-array.int32-array {} + es.typed-array.uint8-array {} + es.typed-array.uint8-clamped-array {} + es.typed-array.uint16-array {} + es.typed-array.uint32-array {} + es.typed-array.copy-within {} + es.typed-array.every {} + es.typed-array.fill {} + es.typed-array.filter {} + es.typed-array.find {} + es.typed-array.find-index {} + es.typed-array.for-each {} + es.typed-array.from {} + es.typed-array.includes {} + es.typed-array.index-of {} + es.typed-array.iterator {} + es.typed-array.join {} + es.typed-array.last-index-of {} + es.typed-array.map {} + es.typed-array.of {} + es.typed-array.reduce {} + es.typed-array.reduce-right {} + es.typed-array.reverse {} + es.typed-array.set {} + es.typed-array.slice {} + es.typed-array.some {} + es.typed-array.sort {} + es.typed-array.subarray {} + es.typed-array.to-locale-string {} + es.typed-array.to-string {} + es.weak-map {} + es.weak-set {} + web.dom-collections.for-each {} + web.dom-collections.iterator {} + web.immediate {} + web.queue-microtask {} + web.timers {} + web.url {} + web.url.to-json {} + web.url-search-params {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/in/in.js new file mode 100644 index 0000000000..d7e24c275a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stage'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/options.json new file mode 100644 index 0000000000..b9db1e21e4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/stdout.txt new file mode 100644 index 0000000000..415f49d210 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage-chrome-71/stdout.txt @@ -0,0 +1,102 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + esnext.aggregate-error { "chrome":"71" } + esnext.array.last-index { "chrome":"71" } + esnext.array.last-item { "chrome":"71" } + esnext.composite-key { "chrome":"71" } + esnext.composite-symbol { "chrome":"71" } + esnext.map.delete-all { "chrome":"71" } + esnext.map.every { "chrome":"71" } + esnext.map.filter { "chrome":"71" } + esnext.map.find { "chrome":"71" } + esnext.map.find-key { "chrome":"71" } + esnext.map.from { "chrome":"71" } + esnext.map.group-by { "chrome":"71" } + esnext.map.includes { "chrome":"71" } + esnext.map.key-by { "chrome":"71" } + esnext.map.key-of { "chrome":"71" } + esnext.map.map-keys { "chrome":"71" } + esnext.map.map-values { "chrome":"71" } + esnext.map.merge { "chrome":"71" } + esnext.map.of { "chrome":"71" } + esnext.map.reduce { "chrome":"71" } + esnext.map.some { "chrome":"71" } + esnext.map.update { "chrome":"71" } + esnext.math.clamp { "chrome":"71" } + esnext.math.deg-per-rad { "chrome":"71" } + esnext.math.degrees { "chrome":"71" } + esnext.math.fscale { "chrome":"71" } + esnext.math.iaddh { "chrome":"71" } + esnext.math.imulh { "chrome":"71" } + esnext.math.isubh { "chrome":"71" } + esnext.math.rad-per-deg { "chrome":"71" } + esnext.math.radians { "chrome":"71" } + esnext.math.scale { "chrome":"71" } + esnext.math.seeded-prng { "chrome":"71" } + esnext.math.signbit { "chrome":"71" } + esnext.math.umulh { "chrome":"71" } + esnext.number.from-string { "chrome":"71" } + esnext.observable { "chrome":"71" } + esnext.promise.all-settled { "chrome":"71" } + esnext.promise.any { "chrome":"71" } + esnext.promise.try { "chrome":"71" } + esnext.reflect.define-metadata { "chrome":"71" } + esnext.reflect.delete-metadata { "chrome":"71" } + esnext.reflect.get-metadata { "chrome":"71" } + esnext.reflect.get-metadata-keys { "chrome":"71" } + esnext.reflect.get-own-metadata { "chrome":"71" } + esnext.reflect.get-own-metadata-keys { "chrome":"71" } + esnext.reflect.has-metadata { "chrome":"71" } + esnext.reflect.has-own-metadata { "chrome":"71" } + esnext.reflect.metadata { "chrome":"71" } + esnext.set.add-all { "chrome":"71" } + esnext.set.delete-all { "chrome":"71" } + esnext.set.difference { "chrome":"71" } + esnext.set.every { "chrome":"71" } + esnext.set.filter { "chrome":"71" } + esnext.set.find { "chrome":"71" } + esnext.set.from { "chrome":"71" } + esnext.set.intersection { "chrome":"71" } + esnext.set.is-disjoint-from { "chrome":"71" } + esnext.set.is-subset-of { "chrome":"71" } + esnext.set.is-superset-of { "chrome":"71" } + esnext.set.join { "chrome":"71" } + esnext.set.map { "chrome":"71" } + esnext.set.of { "chrome":"71" } + esnext.set.reduce { "chrome":"71" } + esnext.set.some { "chrome":"71" } + esnext.set.symmetric-difference { "chrome":"71" } + esnext.set.union { "chrome":"71" } + esnext.string.at { "chrome":"71" } + esnext.string.code-points { "chrome":"71" } + esnext.string.match-all { "chrome":"71" } + esnext.string.replace-all { "chrome":"71" } + esnext.symbol.dispose { "chrome":"71" } + esnext.symbol.observable { "chrome":"71" } + esnext.symbol.pattern-match { "chrome":"71" } + esnext.weak-map.delete-all { "chrome":"71" } + esnext.weak-map.from { "chrome":"71" } + esnext.weak-map.of { "chrome":"71" } + esnext.weak-set.add-all { "chrome":"71" } + esnext.weak-set.delete-all { "chrome":"71" } + esnext.weak-set.from { "chrome":"71" } + esnext.weak-set.of { "chrome":"71" } + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/in/in.js new file mode 100644 index 0000000000..d7e24c275a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stage'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/options.json new file mode 100644 index 0000000000..1e5ef9ed0a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/options.json @@ -0,0 +1,10 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/stdout.txt new file mode 100644 index 0000000000..fff62d29ac --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-stage/stdout.txt @@ -0,0 +1,127 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + esnext.aggregate-error {} + esnext.array.last-index {} + esnext.array.last-item {} + esnext.composite-key {} + esnext.composite-symbol {} + esnext.global-this {} + esnext.map.delete-all {} + esnext.map.every {} + esnext.map.filter {} + esnext.map.find {} + esnext.map.find-key {} + esnext.map.from {} + esnext.map.group-by {} + esnext.map.includes {} + esnext.map.key-by {} + esnext.map.key-of {} + esnext.map.map-keys {} + esnext.map.map-values {} + esnext.map.merge {} + esnext.map.of {} + esnext.map.reduce {} + esnext.map.some {} + esnext.map.update {} + esnext.math.clamp {} + esnext.math.deg-per-rad {} + esnext.math.degrees {} + esnext.math.fscale {} + esnext.math.iaddh {} + esnext.math.imulh {} + esnext.math.isubh {} + esnext.math.rad-per-deg {} + esnext.math.radians {} + esnext.math.scale {} + esnext.math.seeded-prng {} + esnext.math.signbit {} + esnext.math.umulh {} + esnext.number.from-string {} + esnext.observable {} + esnext.promise.all-settled {} + esnext.promise.any {} + esnext.promise.try {} + esnext.reflect.define-metadata {} + esnext.reflect.delete-metadata {} + esnext.reflect.get-metadata {} + esnext.reflect.get-metadata-keys {} + esnext.reflect.get-own-metadata {} + esnext.reflect.get-own-metadata-keys {} + esnext.reflect.has-metadata {} + esnext.reflect.has-own-metadata {} + esnext.reflect.metadata {} + esnext.set.add-all {} + esnext.set.delete-all {} + esnext.set.difference {} + esnext.set.every {} + esnext.set.filter {} + esnext.set.find {} + esnext.set.from {} + esnext.set.intersection {} + esnext.set.is-disjoint-from {} + esnext.set.is-subset-of {} + esnext.set.is-superset-of {} + esnext.set.join {} + esnext.set.map {} + esnext.set.of {} + esnext.set.reduce {} + esnext.set.some {} + esnext.set.symmetric-difference {} + esnext.set.union {} + esnext.string.at {} + esnext.string.code-points {} + esnext.string.match-all {} + esnext.string.replace-all {} + esnext.symbol.dispose {} + esnext.symbol.observable {} + esnext.symbol.pattern-match {} + esnext.weak-map.delete-all {} + esnext.weak-map.from {} + esnext.weak-map.of {} + esnext.weak-set.add-all {} + esnext.weak-set.delete-all {} + esnext.weak-set.from {} + esnext.weak-set.of {} + web.url {} + web.url.to-json {} + web.url-search-params {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/options.json new file mode 100644 index 0000000000..8eebdab425 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + ["../../lib", { + "useBuiltIns": "entry", + "corejs": 3, + "debug": true, + "targets": { + "chrome": 54, + "electron": 0.36, + "node": 6.10, + "ie": 10 + } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/stdout.txt new file mode 100644 index 0000000000..b127ec7383 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-decimals/stdout.txt @@ -0,0 +1,242 @@ +Warning, the following targets are using a decimal version: + + electron: 0.36 + node: 6.1 + +We recommend using a string for minor/patch versions to avoid numbers like 6.10 +getting parsed as 6.1, which can lead to unexpected behavior. + +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "54", + "electron": "0.36", + "ie": "10", + "node": "6.1" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"10" } + transform-literals { "ie":"10" } + transform-function-name { "electron":"0.36", "ie":"10", "node":"6.1" } + transform-arrow-functions { "ie":"10" } + transform-block-scoped-functions { "ie":"10" } + transform-classes { "ie":"10" } + transform-object-super { "ie":"10" } + transform-shorthand-properties { "ie":"10" } + transform-duplicate-keys { "ie":"10" } + transform-computed-properties { "ie":"10" } + transform-for-of { "electron":"0.36", "ie":"10", "node":"6.1" } + transform-sticky-regex { "electron":"0.36", "ie":"10" } + transform-dotall-regex { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + transform-unicode-regex { "electron":"0.36", "ie":"10" } + transform-spread { "ie":"10" } + transform-parameters { "electron":"0.36", "ie":"10" } + transform-destructuring { "electron":"0.36", "ie":"10", "node":"6.1" } + transform-block-scoping { "electron":"0.36", "ie":"10" } + transform-typeof-symbol { "ie":"10" } + transform-new-target { "ie":"10" } + transform-regenerator { "electron":"0.36", "ie":"10" } + transform-exponentiation-operator { "electron":"0.36", "ie":"10", "node":"6.1" } + transform-async-to-generator { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + proposal-async-generator-functions { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + proposal-object-rest-spread { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + proposal-unicode-property-regex { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + proposal-json-strings { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + proposal-optional-catch-binding { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + transform-named-capturing-groups-regex { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol { "electron":"0.36", "ie":"10" } + es.symbol.description { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.symbol.async-iterator { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.symbol.has-instance { "electron":"0.36", "ie":"10" } + es.symbol.is-concat-spreadable { "electron":"0.36", "ie":"10" } + es.symbol.iterator { "ie":"10" } + es.symbol.match { "electron":"0.36", "ie":"10" } + es.symbol.replace { "electron":"0.36", "ie":"10" } + es.symbol.search { "electron":"0.36", "ie":"10" } + es.symbol.species { "electron":"0.36", "ie":"10", "node":"6.1" } + es.symbol.split { "electron":"0.36", "ie":"10" } + es.symbol.to-primitive { "ie":"10" } + es.symbol.to-string-tag { "electron":"0.36", "ie":"10" } + es.symbol.unscopables { "ie":"10" } + es.array.concat { "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.copy-within { "ie":"10" } + es.array.fill { "ie":"10" } + es.array.filter { "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.find { "ie":"10" } + es.array.find-index { "ie":"10" } + es.array.flat { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.flat-map { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.from { "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.includes { "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.index-of { "electron":"0.36", "node":"6.1" } + es.array.iterator { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.join { "ie":"10" } + es.array.last-index-of { "electron":"0.36", "node":"6.1" } + es.array.map { "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.of { "ie":"10" } + es.array.slice { "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.sort { "chrome":"54", "electron":"0.36", "node":"6.1" } + es.array.species { "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.splice { "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.unscopables.flat { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.array.unscopables.flat-map { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.array-buffer.constructor { "ie":"10" } + es.array-buffer.is-view { "ie":"10" } + es.array-buffer.slice { "ie":"10" } + es.date.to-primitive { "ie":"10" } + es.function.has-instance { "electron":"0.36", "ie":"10", "node":"6.1" } + es.function.name { "ie":"10" } + es.json.to-string-tag { "electron":"0.36", "ie":"10" } + es.map { "electron":"0.36", "ie":"10", "node":"6.1" } + es.math.acosh { "electron":"0.36", "ie":"10", "node":"6.1" } + es.math.asinh { "ie":"10" } + es.math.atanh { "ie":"10" } + es.math.cbrt { "ie":"10" } + es.math.clz32 { "ie":"10" } + es.math.cosh { "ie":"10" } + es.math.expm1 { "ie":"10" } + es.math.fround { "ie":"10" } + es.math.hypot { "ie":"10" } + es.math.imul { "ie":"10" } + es.math.log10 { "ie":"10" } + es.math.log1p { "ie":"10" } + es.math.log2 { "ie":"10" } + es.math.sign { "ie":"10" } + es.math.sinh { "ie":"10" } + es.math.tanh { "ie":"10" } + es.math.to-string-tag { "electron":"0.36", "ie":"10" } + es.math.trunc { "ie":"10" } + es.number.constructor { "ie":"10" } + es.number.epsilon { "ie":"10" } + es.number.is-finite { "ie":"10" } + es.number.is-integer { "ie":"10" } + es.number.is-nan { "ie":"10" } + es.number.is-safe-integer { "ie":"10" } + es.number.max-safe-integer { "ie":"10" } + es.number.min-safe-integer { "ie":"10" } + es.number.parse-float { "ie":"10" } + es.number.parse-int { "ie":"10" } + es.number.to-fixed { "ie":"10" } + es.object.assign { "electron":"0.36", "ie":"10" } + es.object.define-getter { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.object.define-setter { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.object.entries { "electron":"0.36", "ie":"10", "node":"6.1" } + es.object.freeze { "ie":"10" } + es.object.from-entries { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.object.get-own-property-descriptor { "ie":"10" } + es.object.get-own-property-descriptors { "electron":"0.36", "ie":"10", "node":"6.1" } + es.object.get-own-property-names { "ie":"10" } + es.object.get-prototype-of { "ie":"10" } + es.object.is { "ie":"10" } + es.object.is-extensible { "ie":"10" } + es.object.is-frozen { "ie":"10" } + es.object.is-sealed { "ie":"10" } + es.object.keys { "ie":"10" } + es.object.lookup-getter { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.object.lookup-setter { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.object.prevent-extensions { "ie":"10" } + es.object.seal { "ie":"10" } + es.object.set-prototype-of { "ie":"10" } + es.object.to-string { "electron":"0.36", "ie":"10" } + es.object.values { "electron":"0.36", "ie":"10", "node":"6.1" } + es.promise { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.promise.finally { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.reflect.apply { "electron":"0.36", "ie":"10" } + es.reflect.construct { "electron":"0.36", "ie":"10" } + es.reflect.define-property { "electron":"0.36", "ie":"10" } + es.reflect.delete-property { "electron":"0.36", "ie":"10" } + es.reflect.get { "electron":"0.36", "ie":"10" } + es.reflect.get-own-property-descriptor { "electron":"0.36", "ie":"10" } + es.reflect.get-prototype-of { "electron":"0.36", "ie":"10" } + es.reflect.has { "electron":"0.36", "ie":"10" } + es.reflect.is-extensible { "electron":"0.36", "ie":"10" } + es.reflect.own-keys { "electron":"0.36", "ie":"10" } + es.reflect.prevent-extensions { "electron":"0.36", "ie":"10" } + es.reflect.set { "electron":"0.36", "ie":"10" } + es.reflect.set-prototype-of { "electron":"0.36", "ie":"10" } + es.regexp.constructor { "electron":"0.36", "ie":"10", "node":"6.1" } + es.regexp.flags { "electron":"0.36", "ie":"10" } + es.regexp.to-string { "electron":"0.36", "ie":"10" } + es.set { "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.code-point-at { "ie":"10" } + es.string.ends-with { "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.from-code-point { "ie":"10" } + es.string.includes { "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.iterator { "ie":"10" } + es.string.match { "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.pad-end { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.pad-start { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.raw { "ie":"10" } + es.string.repeat { "ie":"10" } + es.string.replace { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.search { "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.split { "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.starts-with { "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.trim { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.trim-end { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.trim-start { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + es.string.anchor { "ie":"10" } + es.string.big { "ie":"10" } + es.string.blink { "ie":"10" } + es.string.bold { "ie":"10" } + es.string.fixed { "ie":"10" } + es.string.fontcolor { "ie":"10" } + es.string.fontsize { "ie":"10" } + es.string.italics { "ie":"10" } + es.string.link { "ie":"10" } + es.string.small { "ie":"10" } + es.string.strike { "ie":"10" } + es.string.sub { "ie":"10" } + es.string.sup { "ie":"10" } + es.typed-array.float32-array { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.float64-array { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.int8-array { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.int16-array { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.int32-array { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.uint8-array { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.uint8-clamped-array { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.uint16-array { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.uint32-array { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.copy-within { "ie":"10" } + es.typed-array.every { "ie":"10" } + es.typed-array.fill { "ie":"10" } + es.typed-array.filter { "ie":"10" } + es.typed-array.find { "ie":"10" } + es.typed-array.find-index { "ie":"10" } + es.typed-array.for-each { "ie":"10" } + es.typed-array.from { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.includes { "electron":"0.36", "ie":"10" } + es.typed-array.index-of { "ie":"10" } + es.typed-array.iterator { "ie":"10" } + es.typed-array.join { "ie":"10" } + es.typed-array.last-index-of { "ie":"10" } + es.typed-array.map { "ie":"10" } + es.typed-array.of { "electron":"0.36", "ie":"10", "node":"6.1" } + es.typed-array.reduce { "ie":"10" } + es.typed-array.reduce-right { "ie":"10" } + es.typed-array.reverse { "ie":"10" } + es.typed-array.set { "ie":"10" } + es.typed-array.slice { "ie":"10" } + es.typed-array.some { "ie":"10" } + es.typed-array.sort { "ie":"10" } + es.typed-array.subarray { "ie":"10" } + es.typed-array.to-locale-string { "ie":"10" } + es.typed-array.to-string { "electron":"0.36", "ie":"10", "node":"6.1" } + es.weak-map { "electron":"0.36", "ie":"10", "node":"6.1" } + es.weak-set { "electron":"0.36", "ie":"10", "node":"6.1" } + web.dom-collections.for-each { "chrome":"54", "electron":"0.36", "ie":"10" } + web.dom-collections.iterator { "chrome":"54", "electron":"0.36", "ie":"10" } + web.immediate { "chrome":"54", "electron":"0.36" } + web.queue-microtask { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + web.url { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + web.url.to-json { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + web.url-search-params { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/options.json new file mode 100644 index 0000000000..41cfee6450 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "useBuiltIns": "entry", + "corejs": "3.0", + "debug": true, + "targets": { + "chrome": "54", + "node": "6.10", + "ie": "10" + } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/stdout.txt new file mode 100644 index 0000000000..d51520a95c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.0/stdout.txt @@ -0,0 +1,231 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "54", + "ie": "10", + "node": "6.10" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"10" } + transform-literals { "ie":"10" } + transform-function-name { "ie":"10" } + transform-arrow-functions { "ie":"10" } + transform-block-scoped-functions { "ie":"10" } + transform-classes { "ie":"10" } + transform-object-super { "ie":"10" } + transform-shorthand-properties { "ie":"10" } + transform-duplicate-keys { "ie":"10" } + transform-computed-properties { "ie":"10" } + transform-for-of { "ie":"10" } + transform-sticky-regex { "ie":"10" } + transform-dotall-regex { "chrome":"54", "ie":"10", "node":"6.10" } + transform-unicode-regex { "ie":"10" } + transform-spread { "ie":"10" } + transform-parameters { "ie":"10" } + transform-destructuring { "ie":"10" } + transform-block-scoping { "ie":"10" } + transform-typeof-symbol { "ie":"10" } + transform-new-target { "ie":"10" } + transform-regenerator { "ie":"10" } + transform-exponentiation-operator { "ie":"10", "node":"6.10" } + transform-async-to-generator { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-async-generator-functions { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-object-rest-spread { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-unicode-property-regex { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-json-strings { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-optional-catch-binding { "chrome":"54", "ie":"10", "node":"6.10" } + transform-named-capturing-groups-regex { "chrome":"54", "ie":"10", "node":"6.10" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol { "ie":"10" } + es.symbol.description { "chrome":"54", "ie":"10", "node":"6.10" } + es.symbol.async-iterator { "chrome":"54", "ie":"10", "node":"6.10" } + es.symbol.has-instance { "ie":"10" } + es.symbol.is-concat-spreadable { "ie":"10" } + es.symbol.iterator { "ie":"10" } + es.symbol.match { "ie":"10" } + es.symbol.replace { "ie":"10" } + es.symbol.search { "ie":"10" } + es.symbol.species { "ie":"10" } + es.symbol.split { "ie":"10" } + es.symbol.to-primitive { "ie":"10" } + es.symbol.to-string-tag { "ie":"10" } + es.symbol.unscopables { "ie":"10" } + es.array.concat { "ie":"10" } + es.array.copy-within { "ie":"10" } + es.array.fill { "ie":"10" } + es.array.filter { "ie":"10" } + es.array.find { "ie":"10" } + es.array.find-index { "ie":"10" } + es.array.flat { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.flat-map { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.from { "ie":"10" } + es.array.includes { "ie":"10", "node":"6.10" } + es.array.iterator { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.join { "ie":"10" } + es.array.map { "ie":"10" } + es.array.of { "ie":"10" } + es.array.slice { "ie":"10" } + es.array.sort { "chrome":"54", "node":"6.10" } + es.array.species { "ie":"10" } + es.array.splice { "ie":"10" } + es.array.unscopables.flat { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.unscopables.flat-map { "chrome":"54", "ie":"10", "node":"6.10" } + es.array-buffer.constructor { "ie":"10" } + es.array-buffer.is-view { "ie":"10" } + es.array-buffer.slice { "ie":"10" } + es.date.to-primitive { "ie":"10" } + es.function.has-instance { "ie":"10" } + es.function.name { "ie":"10" } + es.json.to-string-tag { "ie":"10" } + es.map { "ie":"10" } + es.math.acosh { "ie":"10", "node":"6.10" } + es.math.asinh { "ie":"10" } + es.math.atanh { "ie":"10" } + es.math.cbrt { "ie":"10" } + es.math.clz32 { "ie":"10" } + es.math.cosh { "ie":"10" } + es.math.expm1 { "ie":"10" } + es.math.fround { "ie":"10" } + es.math.hypot { "ie":"10" } + es.math.imul { "ie":"10" } + es.math.log10 { "ie":"10" } + es.math.log1p { "ie":"10" } + es.math.log2 { "ie":"10" } + es.math.sign { "ie":"10" } + es.math.sinh { "ie":"10" } + es.math.tanh { "ie":"10" } + es.math.to-string-tag { "ie":"10" } + es.math.trunc { "ie":"10" } + es.number.constructor { "ie":"10" } + es.number.epsilon { "ie":"10" } + es.number.is-finite { "ie":"10" } + es.number.is-integer { "ie":"10" } + es.number.is-nan { "ie":"10" } + es.number.is-safe-integer { "ie":"10" } + es.number.max-safe-integer { "ie":"10" } + es.number.min-safe-integer { "ie":"10" } + es.number.parse-float { "ie":"10" } + es.number.parse-int { "ie":"10" } + es.number.to-fixed { "ie":"10" } + es.object.assign { "ie":"10" } + es.object.define-getter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.define-setter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.entries { "ie":"10", "node":"6.10" } + es.object.freeze { "ie":"10" } + es.object.from-entries { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.get-own-property-descriptor { "ie":"10" } + es.object.get-own-property-descriptors { "ie":"10", "node":"6.10" } + es.object.get-own-property-names { "ie":"10" } + es.object.get-prototype-of { "ie":"10" } + es.object.is { "ie":"10" } + es.object.is-extensible { "ie":"10" } + es.object.is-frozen { "ie":"10" } + es.object.is-sealed { "ie":"10" } + es.object.keys { "ie":"10" } + es.object.lookup-getter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.lookup-setter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.prevent-extensions { "ie":"10" } + es.object.seal { "ie":"10" } + es.object.set-prototype-of { "ie":"10" } + es.object.to-string { "ie":"10" } + es.object.values { "ie":"10", "node":"6.10" } + es.promise { "chrome":"54", "ie":"10", "node":"6.10" } + es.promise.finally { "chrome":"54", "ie":"10", "node":"6.10" } + es.reflect.apply { "ie":"10" } + es.reflect.construct { "ie":"10" } + es.reflect.define-property { "ie":"10" } + es.reflect.delete-property { "ie":"10" } + es.reflect.get { "ie":"10" } + es.reflect.get-own-property-descriptor { "ie":"10" } + es.reflect.get-prototype-of { "ie":"10" } + es.reflect.has { "ie":"10" } + es.reflect.is-extensible { "ie":"10" } + es.reflect.own-keys { "ie":"10" } + es.reflect.prevent-extensions { "ie":"10" } + es.reflect.set { "ie":"10" } + es.reflect.set-prototype-of { "ie":"10" } + es.regexp.constructor { "ie":"10" } + es.regexp.flags { "ie":"10" } + es.regexp.to-string { "ie":"10" } + es.set { "ie":"10" } + es.string.code-point-at { "ie":"10" } + es.string.ends-with { "ie":"10" } + es.string.from-code-point { "ie":"10" } + es.string.includes { "ie":"10" } + es.string.iterator { "ie":"10" } + es.string.match { "ie":"10" } + es.string.pad-end { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.pad-start { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.raw { "ie":"10" } + es.string.repeat { "ie":"10" } + es.string.replace { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.search { "ie":"10" } + es.string.split { "ie":"10", "node":"6.10" } + es.string.starts-with { "ie":"10" } + es.string.trim { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.trim-end { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.trim-start { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.anchor { "ie":"10" } + es.string.big { "ie":"10" } + es.string.blink { "ie":"10" } + es.string.bold { "ie":"10" } + es.string.fixed { "ie":"10" } + es.string.fontcolor { "ie":"10" } + es.string.fontsize { "ie":"10" } + es.string.italics { "ie":"10" } + es.string.link { "ie":"10" } + es.string.small { "ie":"10" } + es.string.strike { "ie":"10" } + es.string.sub { "ie":"10" } + es.string.sup { "ie":"10" } + es.typed-array.float32-array { "ie":"10", "node":"6.10" } + es.typed-array.float64-array { "ie":"10", "node":"6.10" } + es.typed-array.int8-array { "ie":"10", "node":"6.10" } + es.typed-array.int16-array { "ie":"10", "node":"6.10" } + es.typed-array.int32-array { "ie":"10", "node":"6.10" } + es.typed-array.uint8-array { "ie":"10", "node":"6.10" } + es.typed-array.uint8-clamped-array { "ie":"10", "node":"6.10" } + es.typed-array.uint16-array { "ie":"10", "node":"6.10" } + es.typed-array.uint32-array { "ie":"10", "node":"6.10" } + es.typed-array.copy-within { "ie":"10" } + es.typed-array.every { "ie":"10" } + es.typed-array.fill { "ie":"10" } + es.typed-array.filter { "ie":"10" } + es.typed-array.find { "ie":"10" } + es.typed-array.find-index { "ie":"10" } + es.typed-array.for-each { "ie":"10" } + es.typed-array.from { "ie":"10", "node":"6.10" } + es.typed-array.includes { "ie":"10" } + es.typed-array.index-of { "ie":"10" } + es.typed-array.iterator { "ie":"10" } + es.typed-array.join { "ie":"10" } + es.typed-array.last-index-of { "ie":"10" } + es.typed-array.map { "ie":"10" } + es.typed-array.of { "ie":"10", "node":"6.10" } + es.typed-array.reduce { "ie":"10" } + es.typed-array.reduce-right { "ie":"10" } + es.typed-array.reverse { "ie":"10" } + es.typed-array.set { "ie":"10" } + es.typed-array.slice { "ie":"10" } + es.typed-array.some { "ie":"10" } + es.typed-array.sort { "ie":"10" } + es.typed-array.subarray { "ie":"10" } + es.typed-array.to-locale-string { "ie":"10" } + es.typed-array.to-string { "ie":"10" } + es.weak-map { "ie":"10" } + es.weak-set { "ie":"10" } + web.dom-collections.for-each { "chrome":"54", "ie":"10" } + web.dom-collections.iterator { "chrome":"54", "ie":"10" } + web.immediate { "chrome":"54" } + web.queue-microtask { "chrome":"54", "ie":"10", "node":"6.10" } + web.url { "chrome":"54", "ie":"10", "node":"6.10" } + web.url.to-json { "chrome":"54", "ie":"10", "node":"6.10" } + web.url-search-params { "chrome":"54", "ie":"10", "node":"6.10" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/options.json new file mode 100644 index 0000000000..fd88d31055 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "useBuiltIns": "entry", + "corejs": "3.1", + "debug": true, + "targets": { + "chrome": "54", + "node": "6.10", + "ie": "10" + } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/stdout.txt new file mode 100644 index 0000000000..d51520a95c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings-minor-3.1/stdout.txt @@ -0,0 +1,231 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "54", + "ie": "10", + "node": "6.10" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"10" } + transform-literals { "ie":"10" } + transform-function-name { "ie":"10" } + transform-arrow-functions { "ie":"10" } + transform-block-scoped-functions { "ie":"10" } + transform-classes { "ie":"10" } + transform-object-super { "ie":"10" } + transform-shorthand-properties { "ie":"10" } + transform-duplicate-keys { "ie":"10" } + transform-computed-properties { "ie":"10" } + transform-for-of { "ie":"10" } + transform-sticky-regex { "ie":"10" } + transform-dotall-regex { "chrome":"54", "ie":"10", "node":"6.10" } + transform-unicode-regex { "ie":"10" } + transform-spread { "ie":"10" } + transform-parameters { "ie":"10" } + transform-destructuring { "ie":"10" } + transform-block-scoping { "ie":"10" } + transform-typeof-symbol { "ie":"10" } + transform-new-target { "ie":"10" } + transform-regenerator { "ie":"10" } + transform-exponentiation-operator { "ie":"10", "node":"6.10" } + transform-async-to-generator { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-async-generator-functions { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-object-rest-spread { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-unicode-property-regex { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-json-strings { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-optional-catch-binding { "chrome":"54", "ie":"10", "node":"6.10" } + transform-named-capturing-groups-regex { "chrome":"54", "ie":"10", "node":"6.10" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol { "ie":"10" } + es.symbol.description { "chrome":"54", "ie":"10", "node":"6.10" } + es.symbol.async-iterator { "chrome":"54", "ie":"10", "node":"6.10" } + es.symbol.has-instance { "ie":"10" } + es.symbol.is-concat-spreadable { "ie":"10" } + es.symbol.iterator { "ie":"10" } + es.symbol.match { "ie":"10" } + es.symbol.replace { "ie":"10" } + es.symbol.search { "ie":"10" } + es.symbol.species { "ie":"10" } + es.symbol.split { "ie":"10" } + es.symbol.to-primitive { "ie":"10" } + es.symbol.to-string-tag { "ie":"10" } + es.symbol.unscopables { "ie":"10" } + es.array.concat { "ie":"10" } + es.array.copy-within { "ie":"10" } + es.array.fill { "ie":"10" } + es.array.filter { "ie":"10" } + es.array.find { "ie":"10" } + es.array.find-index { "ie":"10" } + es.array.flat { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.flat-map { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.from { "ie":"10" } + es.array.includes { "ie":"10", "node":"6.10" } + es.array.iterator { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.join { "ie":"10" } + es.array.map { "ie":"10" } + es.array.of { "ie":"10" } + es.array.slice { "ie":"10" } + es.array.sort { "chrome":"54", "node":"6.10" } + es.array.species { "ie":"10" } + es.array.splice { "ie":"10" } + es.array.unscopables.flat { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.unscopables.flat-map { "chrome":"54", "ie":"10", "node":"6.10" } + es.array-buffer.constructor { "ie":"10" } + es.array-buffer.is-view { "ie":"10" } + es.array-buffer.slice { "ie":"10" } + es.date.to-primitive { "ie":"10" } + es.function.has-instance { "ie":"10" } + es.function.name { "ie":"10" } + es.json.to-string-tag { "ie":"10" } + es.map { "ie":"10" } + es.math.acosh { "ie":"10", "node":"6.10" } + es.math.asinh { "ie":"10" } + es.math.atanh { "ie":"10" } + es.math.cbrt { "ie":"10" } + es.math.clz32 { "ie":"10" } + es.math.cosh { "ie":"10" } + es.math.expm1 { "ie":"10" } + es.math.fround { "ie":"10" } + es.math.hypot { "ie":"10" } + es.math.imul { "ie":"10" } + es.math.log10 { "ie":"10" } + es.math.log1p { "ie":"10" } + es.math.log2 { "ie":"10" } + es.math.sign { "ie":"10" } + es.math.sinh { "ie":"10" } + es.math.tanh { "ie":"10" } + es.math.to-string-tag { "ie":"10" } + es.math.trunc { "ie":"10" } + es.number.constructor { "ie":"10" } + es.number.epsilon { "ie":"10" } + es.number.is-finite { "ie":"10" } + es.number.is-integer { "ie":"10" } + es.number.is-nan { "ie":"10" } + es.number.is-safe-integer { "ie":"10" } + es.number.max-safe-integer { "ie":"10" } + es.number.min-safe-integer { "ie":"10" } + es.number.parse-float { "ie":"10" } + es.number.parse-int { "ie":"10" } + es.number.to-fixed { "ie":"10" } + es.object.assign { "ie":"10" } + es.object.define-getter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.define-setter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.entries { "ie":"10", "node":"6.10" } + es.object.freeze { "ie":"10" } + es.object.from-entries { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.get-own-property-descriptor { "ie":"10" } + es.object.get-own-property-descriptors { "ie":"10", "node":"6.10" } + es.object.get-own-property-names { "ie":"10" } + es.object.get-prototype-of { "ie":"10" } + es.object.is { "ie":"10" } + es.object.is-extensible { "ie":"10" } + es.object.is-frozen { "ie":"10" } + es.object.is-sealed { "ie":"10" } + es.object.keys { "ie":"10" } + es.object.lookup-getter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.lookup-setter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.prevent-extensions { "ie":"10" } + es.object.seal { "ie":"10" } + es.object.set-prototype-of { "ie":"10" } + es.object.to-string { "ie":"10" } + es.object.values { "ie":"10", "node":"6.10" } + es.promise { "chrome":"54", "ie":"10", "node":"6.10" } + es.promise.finally { "chrome":"54", "ie":"10", "node":"6.10" } + es.reflect.apply { "ie":"10" } + es.reflect.construct { "ie":"10" } + es.reflect.define-property { "ie":"10" } + es.reflect.delete-property { "ie":"10" } + es.reflect.get { "ie":"10" } + es.reflect.get-own-property-descriptor { "ie":"10" } + es.reflect.get-prototype-of { "ie":"10" } + es.reflect.has { "ie":"10" } + es.reflect.is-extensible { "ie":"10" } + es.reflect.own-keys { "ie":"10" } + es.reflect.prevent-extensions { "ie":"10" } + es.reflect.set { "ie":"10" } + es.reflect.set-prototype-of { "ie":"10" } + es.regexp.constructor { "ie":"10" } + es.regexp.flags { "ie":"10" } + es.regexp.to-string { "ie":"10" } + es.set { "ie":"10" } + es.string.code-point-at { "ie":"10" } + es.string.ends-with { "ie":"10" } + es.string.from-code-point { "ie":"10" } + es.string.includes { "ie":"10" } + es.string.iterator { "ie":"10" } + es.string.match { "ie":"10" } + es.string.pad-end { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.pad-start { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.raw { "ie":"10" } + es.string.repeat { "ie":"10" } + es.string.replace { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.search { "ie":"10" } + es.string.split { "ie":"10", "node":"6.10" } + es.string.starts-with { "ie":"10" } + es.string.trim { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.trim-end { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.trim-start { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.anchor { "ie":"10" } + es.string.big { "ie":"10" } + es.string.blink { "ie":"10" } + es.string.bold { "ie":"10" } + es.string.fixed { "ie":"10" } + es.string.fontcolor { "ie":"10" } + es.string.fontsize { "ie":"10" } + es.string.italics { "ie":"10" } + es.string.link { "ie":"10" } + es.string.small { "ie":"10" } + es.string.strike { "ie":"10" } + es.string.sub { "ie":"10" } + es.string.sup { "ie":"10" } + es.typed-array.float32-array { "ie":"10", "node":"6.10" } + es.typed-array.float64-array { "ie":"10", "node":"6.10" } + es.typed-array.int8-array { "ie":"10", "node":"6.10" } + es.typed-array.int16-array { "ie":"10", "node":"6.10" } + es.typed-array.int32-array { "ie":"10", "node":"6.10" } + es.typed-array.uint8-array { "ie":"10", "node":"6.10" } + es.typed-array.uint8-clamped-array { "ie":"10", "node":"6.10" } + es.typed-array.uint16-array { "ie":"10", "node":"6.10" } + es.typed-array.uint32-array { "ie":"10", "node":"6.10" } + es.typed-array.copy-within { "ie":"10" } + es.typed-array.every { "ie":"10" } + es.typed-array.fill { "ie":"10" } + es.typed-array.filter { "ie":"10" } + es.typed-array.find { "ie":"10" } + es.typed-array.find-index { "ie":"10" } + es.typed-array.for-each { "ie":"10" } + es.typed-array.from { "ie":"10", "node":"6.10" } + es.typed-array.includes { "ie":"10" } + es.typed-array.index-of { "ie":"10" } + es.typed-array.iterator { "ie":"10" } + es.typed-array.join { "ie":"10" } + es.typed-array.last-index-of { "ie":"10" } + es.typed-array.map { "ie":"10" } + es.typed-array.of { "ie":"10", "node":"6.10" } + es.typed-array.reduce { "ie":"10" } + es.typed-array.reduce-right { "ie":"10" } + es.typed-array.reverse { "ie":"10" } + es.typed-array.set { "ie":"10" } + es.typed-array.slice { "ie":"10" } + es.typed-array.some { "ie":"10" } + es.typed-array.sort { "ie":"10" } + es.typed-array.subarray { "ie":"10" } + es.typed-array.to-locale-string { "ie":"10" } + es.typed-array.to-string { "ie":"10" } + es.weak-map { "ie":"10" } + es.weak-set { "ie":"10" } + web.dom-collections.for-each { "chrome":"54", "ie":"10" } + web.dom-collections.iterator { "chrome":"54", "ie":"10" } + web.immediate { "chrome":"54" } + web.queue-microtask { "chrome":"54", "ie":"10", "node":"6.10" } + web.url { "chrome":"54", "ie":"10", "node":"6.10" } + web.url.to-json { "chrome":"54", "ie":"10", "node":"6.10" } + web.url-search-params { "chrome":"54", "ie":"10", "node":"6.10" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/options.json new file mode 100644 index 0000000000..7cda7fb38c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "useBuiltIns": "entry", + "corejs": 3, + "debug": true, + "targets": { + "chrome": "54", + "node": "6.10", + "ie": "10" + } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/stdout.txt new file mode 100644 index 0000000000..d51520a95c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-versions-strings/stdout.txt @@ -0,0 +1,231 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "54", + "ie": "10", + "node": "6.10" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"10" } + transform-literals { "ie":"10" } + transform-function-name { "ie":"10" } + transform-arrow-functions { "ie":"10" } + transform-block-scoped-functions { "ie":"10" } + transform-classes { "ie":"10" } + transform-object-super { "ie":"10" } + transform-shorthand-properties { "ie":"10" } + transform-duplicate-keys { "ie":"10" } + transform-computed-properties { "ie":"10" } + transform-for-of { "ie":"10" } + transform-sticky-regex { "ie":"10" } + transform-dotall-regex { "chrome":"54", "ie":"10", "node":"6.10" } + transform-unicode-regex { "ie":"10" } + transform-spread { "ie":"10" } + transform-parameters { "ie":"10" } + transform-destructuring { "ie":"10" } + transform-block-scoping { "ie":"10" } + transform-typeof-symbol { "ie":"10" } + transform-new-target { "ie":"10" } + transform-regenerator { "ie":"10" } + transform-exponentiation-operator { "ie":"10", "node":"6.10" } + transform-async-to-generator { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-async-generator-functions { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-object-rest-spread { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-unicode-property-regex { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-json-strings { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-optional-catch-binding { "chrome":"54", "ie":"10", "node":"6.10" } + transform-named-capturing-groups-regex { "chrome":"54", "ie":"10", "node":"6.10" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol { "ie":"10" } + es.symbol.description { "chrome":"54", "ie":"10", "node":"6.10" } + es.symbol.async-iterator { "chrome":"54", "ie":"10", "node":"6.10" } + es.symbol.has-instance { "ie":"10" } + es.symbol.is-concat-spreadable { "ie":"10" } + es.symbol.iterator { "ie":"10" } + es.symbol.match { "ie":"10" } + es.symbol.replace { "ie":"10" } + es.symbol.search { "ie":"10" } + es.symbol.species { "ie":"10" } + es.symbol.split { "ie":"10" } + es.symbol.to-primitive { "ie":"10" } + es.symbol.to-string-tag { "ie":"10" } + es.symbol.unscopables { "ie":"10" } + es.array.concat { "ie":"10" } + es.array.copy-within { "ie":"10" } + es.array.fill { "ie":"10" } + es.array.filter { "ie":"10" } + es.array.find { "ie":"10" } + es.array.find-index { "ie":"10" } + es.array.flat { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.flat-map { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.from { "ie":"10" } + es.array.includes { "ie":"10", "node":"6.10" } + es.array.iterator { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.join { "ie":"10" } + es.array.map { "ie":"10" } + es.array.of { "ie":"10" } + es.array.slice { "ie":"10" } + es.array.sort { "chrome":"54", "node":"6.10" } + es.array.species { "ie":"10" } + es.array.splice { "ie":"10" } + es.array.unscopables.flat { "chrome":"54", "ie":"10", "node":"6.10" } + es.array.unscopables.flat-map { "chrome":"54", "ie":"10", "node":"6.10" } + es.array-buffer.constructor { "ie":"10" } + es.array-buffer.is-view { "ie":"10" } + es.array-buffer.slice { "ie":"10" } + es.date.to-primitive { "ie":"10" } + es.function.has-instance { "ie":"10" } + es.function.name { "ie":"10" } + es.json.to-string-tag { "ie":"10" } + es.map { "ie":"10" } + es.math.acosh { "ie":"10", "node":"6.10" } + es.math.asinh { "ie":"10" } + es.math.atanh { "ie":"10" } + es.math.cbrt { "ie":"10" } + es.math.clz32 { "ie":"10" } + es.math.cosh { "ie":"10" } + es.math.expm1 { "ie":"10" } + es.math.fround { "ie":"10" } + es.math.hypot { "ie":"10" } + es.math.imul { "ie":"10" } + es.math.log10 { "ie":"10" } + es.math.log1p { "ie":"10" } + es.math.log2 { "ie":"10" } + es.math.sign { "ie":"10" } + es.math.sinh { "ie":"10" } + es.math.tanh { "ie":"10" } + es.math.to-string-tag { "ie":"10" } + es.math.trunc { "ie":"10" } + es.number.constructor { "ie":"10" } + es.number.epsilon { "ie":"10" } + es.number.is-finite { "ie":"10" } + es.number.is-integer { "ie":"10" } + es.number.is-nan { "ie":"10" } + es.number.is-safe-integer { "ie":"10" } + es.number.max-safe-integer { "ie":"10" } + es.number.min-safe-integer { "ie":"10" } + es.number.parse-float { "ie":"10" } + es.number.parse-int { "ie":"10" } + es.number.to-fixed { "ie":"10" } + es.object.assign { "ie":"10" } + es.object.define-getter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.define-setter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.entries { "ie":"10", "node":"6.10" } + es.object.freeze { "ie":"10" } + es.object.from-entries { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.get-own-property-descriptor { "ie":"10" } + es.object.get-own-property-descriptors { "ie":"10", "node":"6.10" } + es.object.get-own-property-names { "ie":"10" } + es.object.get-prototype-of { "ie":"10" } + es.object.is { "ie":"10" } + es.object.is-extensible { "ie":"10" } + es.object.is-frozen { "ie":"10" } + es.object.is-sealed { "ie":"10" } + es.object.keys { "ie":"10" } + es.object.lookup-getter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.lookup-setter { "chrome":"54", "ie":"10", "node":"6.10" } + es.object.prevent-extensions { "ie":"10" } + es.object.seal { "ie":"10" } + es.object.set-prototype-of { "ie":"10" } + es.object.to-string { "ie":"10" } + es.object.values { "ie":"10", "node":"6.10" } + es.promise { "chrome":"54", "ie":"10", "node":"6.10" } + es.promise.finally { "chrome":"54", "ie":"10", "node":"6.10" } + es.reflect.apply { "ie":"10" } + es.reflect.construct { "ie":"10" } + es.reflect.define-property { "ie":"10" } + es.reflect.delete-property { "ie":"10" } + es.reflect.get { "ie":"10" } + es.reflect.get-own-property-descriptor { "ie":"10" } + es.reflect.get-prototype-of { "ie":"10" } + es.reflect.has { "ie":"10" } + es.reflect.is-extensible { "ie":"10" } + es.reflect.own-keys { "ie":"10" } + es.reflect.prevent-extensions { "ie":"10" } + es.reflect.set { "ie":"10" } + es.reflect.set-prototype-of { "ie":"10" } + es.regexp.constructor { "ie":"10" } + es.regexp.flags { "ie":"10" } + es.regexp.to-string { "ie":"10" } + es.set { "ie":"10" } + es.string.code-point-at { "ie":"10" } + es.string.ends-with { "ie":"10" } + es.string.from-code-point { "ie":"10" } + es.string.includes { "ie":"10" } + es.string.iterator { "ie":"10" } + es.string.match { "ie":"10" } + es.string.pad-end { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.pad-start { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.raw { "ie":"10" } + es.string.repeat { "ie":"10" } + es.string.replace { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.search { "ie":"10" } + es.string.split { "ie":"10", "node":"6.10" } + es.string.starts-with { "ie":"10" } + es.string.trim { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.trim-end { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.trim-start { "chrome":"54", "ie":"10", "node":"6.10" } + es.string.anchor { "ie":"10" } + es.string.big { "ie":"10" } + es.string.blink { "ie":"10" } + es.string.bold { "ie":"10" } + es.string.fixed { "ie":"10" } + es.string.fontcolor { "ie":"10" } + es.string.fontsize { "ie":"10" } + es.string.italics { "ie":"10" } + es.string.link { "ie":"10" } + es.string.small { "ie":"10" } + es.string.strike { "ie":"10" } + es.string.sub { "ie":"10" } + es.string.sup { "ie":"10" } + es.typed-array.float32-array { "ie":"10", "node":"6.10" } + es.typed-array.float64-array { "ie":"10", "node":"6.10" } + es.typed-array.int8-array { "ie":"10", "node":"6.10" } + es.typed-array.int16-array { "ie":"10", "node":"6.10" } + es.typed-array.int32-array { "ie":"10", "node":"6.10" } + es.typed-array.uint8-array { "ie":"10", "node":"6.10" } + es.typed-array.uint8-clamped-array { "ie":"10", "node":"6.10" } + es.typed-array.uint16-array { "ie":"10", "node":"6.10" } + es.typed-array.uint32-array { "ie":"10", "node":"6.10" } + es.typed-array.copy-within { "ie":"10" } + es.typed-array.every { "ie":"10" } + es.typed-array.fill { "ie":"10" } + es.typed-array.filter { "ie":"10" } + es.typed-array.find { "ie":"10" } + es.typed-array.find-index { "ie":"10" } + es.typed-array.for-each { "ie":"10" } + es.typed-array.from { "ie":"10", "node":"6.10" } + es.typed-array.includes { "ie":"10" } + es.typed-array.index-of { "ie":"10" } + es.typed-array.iterator { "ie":"10" } + es.typed-array.join { "ie":"10" } + es.typed-array.last-index-of { "ie":"10" } + es.typed-array.map { "ie":"10" } + es.typed-array.of { "ie":"10", "node":"6.10" } + es.typed-array.reduce { "ie":"10" } + es.typed-array.reduce-right { "ie":"10" } + es.typed-array.reverse { "ie":"10" } + es.typed-array.set { "ie":"10" } + es.typed-array.slice { "ie":"10" } + es.typed-array.some { "ie":"10" } + es.typed-array.sort { "ie":"10" } + es.typed-array.subarray { "ie":"10" } + es.typed-array.to-locale-string { "ie":"10" } + es.typed-array.to-string { "ie":"10" } + es.weak-map { "ie":"10" } + es.weak-set { "ie":"10" } + web.dom-collections.for-each { "chrome":"54", "ie":"10" } + web.dom-collections.iterator { "chrome":"54", "ie":"10" } + web.immediate { "chrome":"54" } + web.queue-microtask { "chrome":"54", "ie":"10", "node":"6.10" } + web.url { "chrome":"54", "ie":"10", "node":"6.10" } + web.url.to-json { "chrome":"54", "ie":"10", "node":"6.10" } + web.url-search-params { "chrome":"54", "ie":"10", "node":"6.10" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/in/in.js new file mode 100644 index 0000000000..807283757d --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/web'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/options.json new file mode 100644 index 0000000000..b9db1e21e4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome 71" + }, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/stdout.txt new file mode 100644 index 0000000000..47e1b712c2 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web-chrome-71/stdout.txt @@ -0,0 +1,22 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfill: + web.immediate { "chrome":"71" } + +[/src/in.js] Based on your targets, regenerator-runtime import excluded. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/in/in.js new file mode 100644 index 0000000000..807283757d --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/web'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/options.json new file mode 100644 index 0000000000..1e5ef9ed0a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/options.json @@ -0,0 +1,10 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "shippedProposals": true, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/stdout.txt new file mode 100644 index 0000000000..788bc4eca9 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3-web/stdout.txt @@ -0,0 +1,50 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + web.dom-collections.for-each {} + web.dom-collections.iterator {} + web.immediate {} + web.queue-microtask {} + web.timers {} + web.url {} + web.url.to-json {} + web.url-search-params {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3/in/in.js new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3/in/in.js @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3/options.json new file mode 100644 index 0000000000..d4af133772 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "browsers": "chrome >= 54, ie 10", + "node": 6 + }, + "useBuiltIns": "entry", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-corejs3/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3/stdout.txt new file mode 100644 index 0000000000..be4132d6b1 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-corejs3/stdout.txt @@ -0,0 +1,233 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "54", + "ie": "10", + "node": "6" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"10" } + transform-literals { "ie":"10" } + transform-function-name { "ie":"10", "node":"6" } + transform-arrow-functions { "ie":"10" } + transform-block-scoped-functions { "ie":"10" } + transform-classes { "ie":"10" } + transform-object-super { "ie":"10" } + transform-shorthand-properties { "ie":"10" } + transform-duplicate-keys { "ie":"10" } + transform-computed-properties { "ie":"10" } + transform-for-of { "ie":"10", "node":"6" } + transform-sticky-regex { "ie":"10" } + transform-dotall-regex { "chrome":"54", "ie":"10", "node":"6" } + transform-unicode-regex { "ie":"10" } + transform-spread { "ie":"10" } + transform-parameters { "ie":"10" } + transform-destructuring { "ie":"10", "node":"6" } + transform-block-scoping { "ie":"10" } + transform-typeof-symbol { "ie":"10" } + transform-new-target { "ie":"10" } + transform-regenerator { "ie":"10" } + transform-exponentiation-operator { "ie":"10", "node":"6" } + transform-async-to-generator { "chrome":"54", "ie":"10", "node":"6" } + proposal-async-generator-functions { "chrome":"54", "ie":"10", "node":"6" } + proposal-object-rest-spread { "chrome":"54", "ie":"10", "node":"6" } + proposal-unicode-property-regex { "chrome":"54", "ie":"10", "node":"6" } + proposal-json-strings { "chrome":"54", "ie":"10", "node":"6" } + proposal-optional-catch-binding { "chrome":"54", "ie":"10", "node":"6" } + transform-named-capturing-groups-regex { "chrome":"54", "ie":"10", "node":"6" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced core-js entries with the following polyfills: + es.symbol { "ie":"10" } + es.symbol.description { "chrome":"54", "ie":"10", "node":"6" } + es.symbol.async-iterator { "chrome":"54", "ie":"10", "node":"6" } + es.symbol.has-instance { "ie":"10" } + es.symbol.is-concat-spreadable { "ie":"10" } + es.symbol.iterator { "ie":"10" } + es.symbol.match { "ie":"10" } + es.symbol.replace { "ie":"10" } + es.symbol.search { "ie":"10" } + es.symbol.species { "ie":"10", "node":"6" } + es.symbol.split { "ie":"10" } + es.symbol.to-primitive { "ie":"10" } + es.symbol.to-string-tag { "ie":"10" } + es.symbol.unscopables { "ie":"10" } + es.array.concat { "ie":"10", "node":"6" } + es.array.copy-within { "ie":"10" } + es.array.fill { "ie":"10" } + es.array.filter { "ie":"10", "node":"6" } + es.array.find { "ie":"10" } + es.array.find-index { "ie":"10" } + es.array.flat { "chrome":"54", "ie":"10", "node":"6" } + es.array.flat-map { "chrome":"54", "ie":"10", "node":"6" } + es.array.from { "ie":"10", "node":"6" } + es.array.includes { "ie":"10", "node":"6" } + es.array.index-of { "node":"6" } + es.array.iterator { "chrome":"54", "ie":"10", "node":"6" } + es.array.join { "ie":"10" } + es.array.last-index-of { "node":"6" } + es.array.map { "ie":"10", "node":"6" } + es.array.of { "ie":"10" } + es.array.slice { "ie":"10", "node":"6" } + es.array.sort { "chrome":"54", "node":"6" } + es.array.species { "ie":"10", "node":"6" } + es.array.splice { "ie":"10", "node":"6" } + es.array.unscopables.flat { "chrome":"54", "ie":"10", "node":"6" } + es.array.unscopables.flat-map { "chrome":"54", "ie":"10", "node":"6" } + es.array-buffer.constructor { "ie":"10" } + es.array-buffer.is-view { "ie":"10" } + es.array-buffer.slice { "ie":"10" } + es.date.to-primitive { "ie":"10" } + es.function.has-instance { "ie":"10", "node":"6" } + es.function.name { "ie":"10" } + es.json.to-string-tag { "ie":"10" } + es.map { "ie":"10", "node":"6" } + es.math.acosh { "ie":"10", "node":"6" } + es.math.asinh { "ie":"10" } + es.math.atanh { "ie":"10" } + es.math.cbrt { "ie":"10" } + es.math.clz32 { "ie":"10" } + es.math.cosh { "ie":"10" } + es.math.expm1 { "ie":"10" } + es.math.fround { "ie":"10" } + es.math.hypot { "ie":"10" } + es.math.imul { "ie":"10" } + es.math.log10 { "ie":"10" } + es.math.log1p { "ie":"10" } + es.math.log2 { "ie":"10" } + es.math.sign { "ie":"10" } + es.math.sinh { "ie":"10" } + es.math.tanh { "ie":"10" } + es.math.to-string-tag { "ie":"10" } + es.math.trunc { "ie":"10" } + es.number.constructor { "ie":"10" } + es.number.epsilon { "ie":"10" } + es.number.is-finite { "ie":"10" } + es.number.is-integer { "ie":"10" } + es.number.is-nan { "ie":"10" } + es.number.is-safe-integer { "ie":"10" } + es.number.max-safe-integer { "ie":"10" } + es.number.min-safe-integer { "ie":"10" } + es.number.parse-float { "ie":"10" } + es.number.parse-int { "ie":"10" } + es.number.to-fixed { "ie":"10" } + es.object.assign { "ie":"10" } + es.object.define-getter { "chrome":"54", "ie":"10", "node":"6" } + es.object.define-setter { "chrome":"54", "ie":"10", "node":"6" } + es.object.entries { "ie":"10", "node":"6" } + es.object.freeze { "ie":"10" } + es.object.from-entries { "chrome":"54", "ie":"10", "node":"6" } + es.object.get-own-property-descriptor { "ie":"10" } + es.object.get-own-property-descriptors { "ie":"10", "node":"6" } + es.object.get-own-property-names { "ie":"10" } + es.object.get-prototype-of { "ie":"10" } + es.object.is { "ie":"10" } + es.object.is-extensible { "ie":"10" } + es.object.is-frozen { "ie":"10" } + es.object.is-sealed { "ie":"10" } + es.object.keys { "ie":"10" } + es.object.lookup-getter { "chrome":"54", "ie":"10", "node":"6" } + es.object.lookup-setter { "chrome":"54", "ie":"10", "node":"6" } + es.object.prevent-extensions { "ie":"10" } + es.object.seal { "ie":"10" } + es.object.set-prototype-of { "ie":"10" } + es.object.to-string { "ie":"10" } + es.object.values { "ie":"10", "node":"6" } + es.promise { "chrome":"54", "ie":"10", "node":"6" } + es.promise.finally { "chrome":"54", "ie":"10", "node":"6" } + es.reflect.apply { "ie":"10" } + es.reflect.construct { "ie":"10" } + es.reflect.define-property { "ie":"10" } + es.reflect.delete-property { "ie":"10" } + es.reflect.get { "ie":"10" } + es.reflect.get-own-property-descriptor { "ie":"10" } + es.reflect.get-prototype-of { "ie":"10" } + es.reflect.has { "ie":"10" } + es.reflect.is-extensible { "ie":"10" } + es.reflect.own-keys { "ie":"10" } + es.reflect.prevent-extensions { "ie":"10" } + es.reflect.set { "ie":"10" } + es.reflect.set-prototype-of { "ie":"10" } + es.regexp.constructor { "ie":"10", "node":"6" } + es.regexp.flags { "ie":"10" } + es.regexp.to-string { "ie":"10" } + es.set { "ie":"10", "node":"6" } + es.string.code-point-at { "ie":"10" } + es.string.ends-with { "ie":"10", "node":"6" } + es.string.from-code-point { "ie":"10" } + es.string.includes { "ie":"10", "node":"6" } + es.string.iterator { "ie":"10" } + es.string.match { "ie":"10", "node":"6" } + es.string.pad-end { "chrome":"54", "ie":"10", "node":"6" } + es.string.pad-start { "chrome":"54", "ie":"10", "node":"6" } + es.string.raw { "ie":"10" } + es.string.repeat { "ie":"10" } + es.string.replace { "chrome":"54", "ie":"10", "node":"6" } + es.string.search { "ie":"10", "node":"6" } + es.string.split { "ie":"10", "node":"6" } + es.string.starts-with { "ie":"10", "node":"6" } + es.string.trim { "chrome":"54", "ie":"10", "node":"6" } + es.string.trim-end { "chrome":"54", "ie":"10", "node":"6" } + es.string.trim-start { "chrome":"54", "ie":"10", "node":"6" } + es.string.anchor { "ie":"10" } + es.string.big { "ie":"10" } + es.string.blink { "ie":"10" } + es.string.bold { "ie":"10" } + es.string.fixed { "ie":"10" } + es.string.fontcolor { "ie":"10" } + es.string.fontsize { "ie":"10" } + es.string.italics { "ie":"10" } + es.string.link { "ie":"10" } + es.string.small { "ie":"10" } + es.string.strike { "ie":"10" } + es.string.sub { "ie":"10" } + es.string.sup { "ie":"10" } + es.typed-array.float32-array { "ie":"10", "node":"6" } + es.typed-array.float64-array { "ie":"10", "node":"6" } + es.typed-array.int8-array { "ie":"10", "node":"6" } + es.typed-array.int16-array { "ie":"10", "node":"6" } + es.typed-array.int32-array { "ie":"10", "node":"6" } + es.typed-array.uint8-array { "ie":"10", "node":"6" } + es.typed-array.uint8-clamped-array { "ie":"10", "node":"6" } + es.typed-array.uint16-array { "ie":"10", "node":"6" } + es.typed-array.uint32-array { "ie":"10", "node":"6" } + es.typed-array.copy-within { "ie":"10" } + es.typed-array.every { "ie":"10" } + es.typed-array.fill { "ie":"10" } + es.typed-array.filter { "ie":"10" } + es.typed-array.find { "ie":"10" } + es.typed-array.find-index { "ie":"10" } + es.typed-array.for-each { "ie":"10" } + es.typed-array.from { "ie":"10", "node":"6" } + es.typed-array.includes { "ie":"10" } + es.typed-array.index-of { "ie":"10" } + es.typed-array.iterator { "ie":"10" } + es.typed-array.join { "ie":"10" } + es.typed-array.last-index-of { "ie":"10" } + es.typed-array.map { "ie":"10" } + es.typed-array.of { "ie":"10", "node":"6" } + es.typed-array.reduce { "ie":"10" } + es.typed-array.reduce-right { "ie":"10" } + es.typed-array.reverse { "ie":"10" } + es.typed-array.set { "ie":"10" } + es.typed-array.slice { "ie":"10" } + es.typed-array.some { "ie":"10" } + es.typed-array.sort { "ie":"10" } + es.typed-array.subarray { "ie":"10" } + es.typed-array.to-locale-string { "ie":"10" } + es.typed-array.to-string { "ie":"10", "node":"6" } + es.weak-map { "ie":"10", "node":"6" } + es.weak-set { "ie":"10", "node":"6" } + web.dom-collections.for-each { "chrome":"54", "ie":"10" } + web.dom-collections.iterator { "chrome":"54", "ie":"10" } + web.immediate { "chrome":"54" } + web.queue-microtask { "chrome":"54", "ie":"10", "node":"6" } + web.url { "chrome":"54", "ie":"10", "node":"6" } + web.url.to-json { "chrome":"54", "ie":"10", "node":"6" } + web.url-search-params { "chrome":"54", "ie":"10", "node":"6" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/in/in.js new file mode 100644 index 0000000000..e31333abc5 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/in/in.js @@ -0,0 +1 @@ +function hasAnyoneSeenImportBabelPolyfill() { return false }; diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins-no-import/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/options.json similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/builtins-no-import/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/options.json diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/stdout.txt new file mode 100644 index 0000000000..4987bd443c --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-no-import/stdout.txt @@ -0,0 +1,29 @@ +With `useBuiltIns` option, required direct setting of `corejs` option + +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "node": "6" +} + +Using modules transform: auto + +Using plugins: + transform-function-name { "node":"6" } + transform-for-of { "node":"6" } + transform-dotall-regex { "node":"6" } + transform-destructuring { "node":"6" } + transform-exponentiation-operator { "node":"6" } + transform-async-to-generator { "node":"6" } + proposal-async-generator-functions { "node":"6" } + proposal-object-rest-spread { "node":"6" } + proposal-unicode-property-regex { "node":"6" } + proposal-json-strings { "node":"6" } + proposal-optional-catch-binding { "node":"6" } + transform-named-capturing-groups-regex { "node":"6" } + +Using polyfills with `entry` option: + +[/src/in.js] Import of @babel/polyfill was not found. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/in/in.js new file mode 100644 index 0000000000..c3030bdd62 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/in/in.js @@ -0,0 +1 @@ +import '@babel/polyfill'; diff --git a/packages/babel-preset-env/test/debug-fixtures/shippedProposals/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/options.json similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/shippedProposals/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/options.json diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/stdout.txt new file mode 100644 index 0000000000..dc07d391aa --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-shippedProposals/stdout.txt @@ -0,0 +1,192 @@ +With `useBuiltIns` option, required direct setting of `corejs` option + +@babel/preset-env: `DEBUG` option + +Using targets: +{} + +Using modules transform: auto + +Using plugins: + transform-template-literals {} + transform-literals {} + transform-function-name {} + transform-arrow-functions {} + transform-block-scoped-functions {} + transform-classes {} + transform-object-super {} + transform-shorthand-properties {} + transform-duplicate-keys {} + transform-computed-properties {} + transform-for-of {} + transform-sticky-regex {} + transform-dotall-regex {} + transform-unicode-regex {} + transform-spread {} + transform-parameters {} + transform-destructuring {} + transform-block-scoping {} + transform-typeof-symbol {} + transform-new-target {} + transform-regenerator {} + transform-exponentiation-operator {} + transform-async-to-generator {} + proposal-async-generator-functions {} + proposal-object-rest-spread {} + proposal-unicode-property-regex {} + proposal-json-strings {} + proposal-optional-catch-binding {} + transform-named-capturing-groups-regex {} + +Using polyfills with `entry` option: + +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: + es6.array.copy-within {} + es6.array.every {} + es6.array.fill {} + es6.array.filter {} + es6.array.find {} + es6.array.find-index {} + es7.array.flat-map {} + es6.array.for-each {} + es6.array.from {} + es7.array.includes {} + es6.array.index-of {} + es6.array.is-array {} + es6.array.iterator {} + es6.array.last-index-of {} + es6.array.map {} + es6.array.of {} + es6.array.reduce {} + es6.array.reduce-right {} + es6.array.some {} + es6.array.sort {} + es6.array.species {} + es6.date.now {} + es6.date.to-iso-string {} + es6.date.to-json {} + es6.date.to-primitive {} + es6.date.to-string {} + es6.function.bind {} + es6.function.has-instance {} + es6.function.name {} + es6.map {} + es6.math.acosh {} + es6.math.asinh {} + es6.math.atanh {} + es6.math.cbrt {} + es6.math.clz32 {} + es6.math.cosh {} + es6.math.expm1 {} + es6.math.fround {} + es6.math.hypot {} + es6.math.imul {} + es6.math.log1p {} + es6.math.log10 {} + es6.math.log2 {} + es6.math.sign {} + es6.math.sinh {} + es6.math.tanh {} + es6.math.trunc {} + es6.number.constructor {} + es6.number.epsilon {} + es6.number.is-finite {} + es6.number.is-integer {} + es6.number.is-nan {} + es6.number.is-safe-integer {} + es6.number.max-safe-integer {} + es6.number.min-safe-integer {} + es6.number.parse-float {} + es6.number.parse-int {} + es6.object.assign {} + es6.object.create {} + es7.object.define-getter {} + es7.object.define-setter {} + es6.object.define-property {} + es6.object.define-properties {} + es7.object.entries {} + es6.object.freeze {} + es6.object.get-own-property-descriptor {} + es7.object.get-own-property-descriptors {} + es6.object.get-own-property-names {} + es6.object.get-prototype-of {} + es7.object.lookup-getter {} + es7.object.lookup-setter {} + es6.object.prevent-extensions {} + es6.object.to-string {} + es6.object.is {} + es6.object.is-frozen {} + es6.object.is-sealed {} + es6.object.is-extensible {} + es6.object.keys {} + es6.object.seal {} + es6.object.set-prototype-of {} + es7.object.values {} + es6.promise {} + es7.promise.finally {} + es6.reflect.apply {} + es6.reflect.construct {} + es6.reflect.define-property {} + es6.reflect.delete-property {} + es6.reflect.get {} + es6.reflect.get-own-property-descriptor {} + es6.reflect.get-prototype-of {} + es6.reflect.has {} + es6.reflect.is-extensible {} + es6.reflect.own-keys {} + es6.reflect.prevent-extensions {} + es6.reflect.set {} + es6.reflect.set-prototype-of {} + es6.regexp.constructor {} + es6.regexp.flags {} + es6.regexp.match {} + es6.regexp.replace {} + es6.regexp.split {} + es6.regexp.search {} + es6.regexp.to-string {} + es6.set {} + es6.symbol {} + es7.symbol.async-iterator {} + es6.string.anchor {} + es6.string.big {} + es6.string.blink {} + es6.string.bold {} + es6.string.code-point-at {} + es6.string.ends-with {} + es6.string.fixed {} + es6.string.fontcolor {} + es6.string.fontsize {} + es6.string.from-code-point {} + es6.string.includes {} + es6.string.italics {} + es6.string.iterator {} + es6.string.link {} + es7.string.pad-start {} + es7.string.pad-end {} + es6.string.raw {} + es6.string.repeat {} + es6.string.small {} + es6.string.starts-with {} + es6.string.strike {} + es6.string.sub {} + es6.string.sup {} + es6.string.trim {} + es7.string.trim-left {} + es7.string.trim-right {} + es6.typed.array-buffer {} + es6.typed.data-view {} + es6.typed.int8-array {} + es6.typed.uint8-array {} + es6.typed.uint8-clamped-array {} + es6.typed.int16-array {} + es6.typed.uint16-array {} + es6.typed.int32-array {} + es6.typed.uint32-array {} + es6.typed.float32-array {} + es6.typed.float64-array {} + es6.weak-map {} + es6.weak-set {} + web.timers {} + web.immediate {} + web.dom.iterable {} +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-uglify/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-uglify/in/in.js new file mode 100644 index 0000000000..c3030bdd62 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-uglify/in/in.js @@ -0,0 +1 @@ +import '@babel/polyfill'; diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins-uglify/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-uglify/options.json similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/builtins-uglify/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-uglify/options.json diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins-uglify/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-uglify/stdout.txt similarity index 84% rename from packages/babel-preset-env/test/debug-fixtures/builtins-uglify/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-uglify/stdout.txt index fd71d14d21..d5b0639d7c 100644 --- a/packages/babel-preset-env/test/debug-fixtures/builtins-uglify/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs-uglify/stdout.txt @@ -1,3 +1,6 @@ +With `useBuiltIns` option, required direct setting of `corejs` option + + The uglify target has been deprecated. Set the top level option `forceAllTransforms: true` instead. @@ -43,16 +46,20 @@ Using plugins: Using polyfills with `entry` option: -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: + es7.array.flat-map { "chrome":"55" } es6.array.sort { "chrome":"55" } es7.object.define-getter { "chrome":"55" } es7.object.define-setter { "chrome":"55" } es7.object.lookup-getter { "chrome":"55" } es7.object.lookup-setter { "chrome":"55" } + es6.object.to-string { "chrome":"55" } es7.promise.finally { "chrome":"55" } es7.symbol.async-iterator { "chrome":"55" } es7.string.pad-start { "chrome":"55" } es7.string.pad-end { "chrome":"55" } + es7.string.trim-left { "chrome":"55" } + es7.string.trim-right { "chrome":"55" } web.timers { "chrome":"55" } web.immediate { "chrome":"55" } web.dom.iterable { "chrome":"55" } diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/in/in.js b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/in/in.js new file mode 100644 index 0000000000..c3030bdd62 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/in/in.js @@ -0,0 +1 @@ +import '@babel/polyfill'; diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins/options.json b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/options.json similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/builtins/options.json rename to packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/options.json diff --git a/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/stdout.txt new file mode 100644 index 0000000000..f9bd620ce4 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/entry-no-corejs/stdout.txt @@ -0,0 +1,176 @@ +With `useBuiltIns` option, required direct setting of `corejs` option + +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "54", + "ie": "10", + "node": "6" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"10" } + transform-literals { "ie":"10" } + transform-function-name { "ie":"10", "node":"6" } + transform-arrow-functions { "ie":"10" } + transform-block-scoped-functions { "ie":"10" } + transform-classes { "ie":"10" } + transform-object-super { "ie":"10" } + transform-shorthand-properties { "ie":"10" } + transform-duplicate-keys { "ie":"10" } + transform-computed-properties { "ie":"10" } + transform-for-of { "ie":"10", "node":"6" } + transform-sticky-regex { "ie":"10" } + transform-dotall-regex { "chrome":"54", "ie":"10", "node":"6" } + transform-unicode-regex { "ie":"10" } + transform-spread { "ie":"10" } + transform-parameters { "ie":"10" } + transform-destructuring { "ie":"10", "node":"6" } + transform-block-scoping { "ie":"10" } + transform-typeof-symbol { "ie":"10" } + transform-new-target { "ie":"10" } + transform-regenerator { "ie":"10" } + transform-exponentiation-operator { "ie":"10", "node":"6" } + transform-async-to-generator { "chrome":"54", "ie":"10", "node":"6" } + proposal-async-generator-functions { "chrome":"54", "ie":"10", "node":"6" } + proposal-object-rest-spread { "chrome":"54", "ie":"10", "node":"6" } + proposal-unicode-property-regex { "chrome":"54", "ie":"10", "node":"6" } + proposal-json-strings { "chrome":"54", "ie":"10", "node":"6" } + proposal-optional-catch-binding { "chrome":"54", "ie":"10", "node":"6" } + transform-named-capturing-groups-regex { "chrome":"54", "ie":"10", "node":"6" } + +Using polyfills with `entry` option: + +[/src/in.js] Replaced @babel/polyfill entries with the following polyfills: + es6.array.copy-within { "ie":"10" } + es6.array.fill { "ie":"10" } + es6.array.find { "ie":"10" } + es6.array.find-index { "ie":"10" } + es7.array.flat-map { "chrome":"54", "ie":"10", "node":"6" } + es6.array.from { "ie":"10", "node":"6" } + es7.array.includes { "ie":"10" } + es6.array.iterator { "ie":"10" } + es6.array.of { "ie":"10" } + es6.array.sort { "chrome":"54", "node":"6" } + es6.array.species { "ie":"10", "node":"6" } + es6.date.to-primitive { "ie":"10" } + es6.function.has-instance { "ie":"10", "node":"6" } + es6.function.name { "ie":"10" } + es6.map { "ie":"10", "node":"6" } + es6.math.acosh { "ie":"10" } + es6.math.asinh { "ie":"10" } + es6.math.atanh { "ie":"10" } + es6.math.cbrt { "ie":"10" } + es6.math.clz32 { "ie":"10" } + es6.math.cosh { "ie":"10" } + es6.math.expm1 { "ie":"10" } + es6.math.fround { "ie":"10" } + es6.math.hypot { "ie":"10" } + es6.math.imul { "ie":"10" } + es6.math.log1p { "ie":"10" } + es6.math.log10 { "ie":"10" } + es6.math.log2 { "ie":"10" } + es6.math.sign { "ie":"10" } + es6.math.sinh { "ie":"10" } + es6.math.tanh { "ie":"10" } + es6.math.trunc { "ie":"10" } + es6.number.constructor { "ie":"10" } + es6.number.epsilon { "ie":"10" } + es6.number.is-finite { "ie":"10" } + es6.number.is-integer { "ie":"10" } + es6.number.is-nan { "ie":"10" } + es6.number.is-safe-integer { "ie":"10" } + es6.number.max-safe-integer { "ie":"10" } + es6.number.min-safe-integer { "ie":"10" } + es6.number.parse-float { "ie":"10" } + es6.number.parse-int { "ie":"10" } + es6.object.assign { "ie":"10" } + es7.object.define-getter { "chrome":"54", "ie":"10", "node":"6" } + es7.object.define-setter { "chrome":"54", "ie":"10", "node":"6" } + es7.object.entries { "ie":"10", "node":"6" } + es6.object.freeze { "ie":"10" } + es6.object.get-own-property-descriptor { "ie":"10" } + es7.object.get-own-property-descriptors { "ie":"10", "node":"6" } + es6.object.get-own-property-names { "ie":"10" } + es6.object.get-prototype-of { "ie":"10" } + es7.object.lookup-getter { "chrome":"54", "ie":"10", "node":"6" } + es7.object.lookup-setter { "chrome":"54", "ie":"10", "node":"6" } + es6.object.prevent-extensions { "ie":"10" } + es6.object.to-string { "chrome":"54", "ie":"10", "node":"6" } + es6.object.is { "ie":"10" } + es6.object.is-frozen { "ie":"10" } + es6.object.is-sealed { "ie":"10" } + es6.object.is-extensible { "ie":"10" } + es6.object.keys { "ie":"10" } + es6.object.seal { "ie":"10" } + es6.object.set-prototype-of { "ie":"10" } + es7.object.values { "ie":"10", "node":"6" } + es6.promise { "ie":"10", "node":"6" } + es7.promise.finally { "chrome":"54", "ie":"10", "node":"6" } + es6.reflect.apply { "ie":"10" } + es6.reflect.construct { "ie":"10" } + es6.reflect.define-property { "ie":"10" } + es6.reflect.delete-property { "ie":"10" } + es6.reflect.get { "ie":"10" } + es6.reflect.get-own-property-descriptor { "ie":"10" } + es6.reflect.get-prototype-of { "ie":"10" } + es6.reflect.has { "ie":"10" } + es6.reflect.is-extensible { "ie":"10" } + es6.reflect.own-keys { "ie":"10" } + es6.reflect.prevent-extensions { "ie":"10" } + es6.reflect.set { "ie":"10" } + es6.reflect.set-prototype-of { "ie":"10" } + es6.regexp.constructor { "ie":"10" } + es6.regexp.flags { "ie":"10" } + es6.regexp.match { "ie":"10" } + es6.regexp.replace { "ie":"10" } + es6.regexp.split { "ie":"10" } + es6.regexp.search { "ie":"10" } + es6.regexp.to-string { "ie":"10" } + es6.set { "ie":"10", "node":"6" } + es6.symbol { "ie":"10", "node":"6" } + es7.symbol.async-iterator { "chrome":"54", "ie":"10", "node":"6" } + es6.string.anchor { "ie":"10" } + es6.string.big { "ie":"10" } + es6.string.blink { "ie":"10" } + es6.string.bold { "ie":"10" } + es6.string.code-point-at { "ie":"10" } + es6.string.ends-with { "ie":"10" } + es6.string.fixed { "ie":"10" } + es6.string.fontcolor { "ie":"10" } + es6.string.fontsize { "ie":"10" } + es6.string.from-code-point { "ie":"10" } + es6.string.includes { "ie":"10" } + es6.string.italics { "ie":"10" } + es6.string.iterator { "ie":"10" } + es6.string.link { "ie":"10" } + es7.string.pad-start { "chrome":"54", "ie":"10", "node":"6" } + es7.string.pad-end { "chrome":"54", "ie":"10", "node":"6" } + es6.string.raw { "ie":"10" } + es6.string.repeat { "ie":"10" } + es6.string.small { "ie":"10" } + es6.string.starts-with { "ie":"10" } + es6.string.strike { "ie":"10" } + es6.string.sub { "ie":"10" } + es6.string.sup { "ie":"10" } + es7.string.trim-left { "chrome":"54", "ie":"10", "node":"6" } + es7.string.trim-right { "chrome":"54", "ie":"10", "node":"6" } + es6.typed.array-buffer { "ie":"10", "node":"6" } + es6.typed.int8-array { "ie":"10", "node":"6" } + es6.typed.uint8-array { "ie":"10", "node":"6" } + es6.typed.uint8-clamped-array { "ie":"10", "node":"6" } + es6.typed.int16-array { "ie":"10", "node":"6" } + es6.typed.uint16-array { "ie":"10", "node":"6" } + es6.typed.int32-array { "ie":"10", "node":"6" } + es6.typed.uint32-array { "ie":"10", "node":"6" } + es6.typed.float32-array { "ie":"10", "node":"6" } + es6.typed.float64-array { "ie":"10", "node":"6" } + es6.weak-map { "ie":"10", "node":"6" } + es6.weak-set { "ie":"10", "node":"6" } + web.timers { "chrome":"54", "ie":"10", "node":"6" } + web.immediate { "chrome":"54", "ie":"10", "node":"6" } + web.dom.iterable { "chrome":"54", "ie":"10", "node":"6" } +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/plugins-only/in/in.js b/packages/babel-preset-env/test/debug-fixtures/plugins-only/in/in.js new file mode 100644 index 0000000000..c3030bdd62 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/plugins-only/in/in.js @@ -0,0 +1 @@ +import '@babel/polyfill'; diff --git a/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/stdout.txt deleted file mode 100644 index a481f8e2a2..0000000000 --- a/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/stdout.txt +++ /dev/null @@ -1,33 +0,0 @@ -@babel/preset-env: `DEBUG` option - -Using targets: -{ - "chrome": "60" -} - -Using modules transform: auto - -Using plugins: - transform-dotall-regex { "chrome":"60" } - proposal-async-generator-functions { "chrome":"60" } - syntax-object-rest-spread { "chrome":"60" } - proposal-unicode-property-regex { "chrome":"60" } - proposal-json-strings { "chrome":"60" } - proposal-optional-catch-binding { "chrome":"60" } - transform-named-capturing-groups-regex { "chrome":"60" } - -Using polyfills with `entry` option: - -[/src/in.js] Replaced `@babel/polyfill` with the following polyfills: - es6.array.sort { "chrome":"60" } - es7.object.define-getter { "chrome":"60" } - es7.object.define-setter { "chrome":"60" } - es7.object.lookup-getter { "chrome":"60" } - es7.object.lookup-setter { "chrome":"60" } - es7.promise.finally { "chrome":"60" } - es7.symbol.async-iterator { "chrome":"60" } - es7.array.flat-map { "chrome":"60" } - web.timers { "chrome":"60" } - web.immediate { "chrome":"60" } - web.dom.iterable { "chrome":"60" } -Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/in/in.js similarity index 53% rename from packages/babel-preset-env/test/debug-fixtures/usage/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/in/in.js index b464d7f172..6113c3b69b 100644 --- a/packages/babel-preset-env/test/debug-fixtures/usage/in/in.js +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/in/in.js @@ -1,3 +1,7 @@ const foo = new Promise((resolve) => { resolve(new Map()); }); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/in/in2.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/usage/in/in2.js rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/in/in2.js diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/options.json new file mode 100644 index 0000000000..b2ed793a35 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 71 + }, + "useBuiltIns": "usage", + "corejs": 2 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/stdout.txt new file mode 100644 index 0000000000..b3df5f0872 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-chrome-71/stdout.txt @@ -0,0 +1,23 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfill: + web.dom.iterable { "chrome":"71" } + +[/src/in2.js] Added following core-js polyfill: + web.dom.iterable { "chrome":"71" } +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-none/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/in/in.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/usage-none/in/in.js rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/in/in.js diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-none/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/in/in2.js similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/usage-none/in/in2.js rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/in/in2.js diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/options.json new file mode 100644 index 0000000000..087a0efc9f --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "useBuiltIns": "usage", + "corejs": 2 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-none/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/stdout.txt similarity index 91% rename from packages/babel-preset-env/test/debug-fixtures/usage-none/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/stdout.txt index 1c3253551d..fafdcfca18 100644 --- a/packages/babel-preset-env/test/debug-fixtures/usage-none/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-none/stdout.txt @@ -41,7 +41,7 @@ Using plugins: Using polyfills with `usage` option: -[/src/in.js] Based on your code and targets, none were added. +[/src/in.js] Based on your code and targets, core-js polyfills were not added. -[/src/in2.js] Based on your code and targets, none were added. +[/src/in2.js] Based on your code and targets, core-js polyfills were not added. Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/input.mjs b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/in/in2.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/input.mjs rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/in/in2.js diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/options.json new file mode 100644 index 0000000000..b2110d7ec8 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 71 + }, + "useBuiltIns": "usage", + "corejs": { "version": 2, "proposals": true } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/stdout.txt new file mode 100644 index 0000000000..b3df5f0872 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals-chrome-71/stdout.txt @@ -0,0 +1,23 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfill: + web.dom.iterable { "chrome":"71" } + +[/src/in2.js] Added following core-js polyfill: + web.dom.iterable { "chrome":"71" } +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/options.json new file mode 100644 index 0000000000..04beb327c6 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "useBuiltIns": "usage", + "corejs": { "version": 2, "proposals": true } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/stdout.txt similarity index 88% rename from packages/babel-preset-env/test/debug-fixtures/usage/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/stdout.txt index b903694b99..8d1136d823 100644 --- a/packages/babel-preset-env/test/debug-fixtures/usage/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-proposals/stdout.txt @@ -41,14 +41,16 @@ Using plugins: Using polyfills with `usage` option: -[/src/in.js] Added following polyfills: +[/src/in.js] Added following core-js polyfills: + es6.object.to-string { "chrome":"52", "firefox":"50", "ie":"11" } es6.promise { "ie":"11" } es6.map { "firefox":"50", "ie":"11" } es6.string.iterator { "ie":"11" } es6.array.iterator { "ie":"11" } web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" } -[/src/in2.js] Added following polyfills: - regenerator-runtime { "chrome":"52", "firefox":"50", "ie":"11" } +[/src/in2.js] Added following core-js polyfill: web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Based on your code and targets, added regenerator-runtime. Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/options.json new file mode 100644 index 0000000000..448b3d6f1e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "shippedProposals": true, + "useBuiltIns": "usage", + "corejs": 2 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/stdout.txt new file mode 100644 index 0000000000..8d1136d823 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-shippedProposals/stdout.txt @@ -0,0 +1,56 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfills: + es6.object.to-string { "chrome":"52", "firefox":"50", "ie":"11" } + es6.promise { "ie":"11" } + es6.map { "firefox":"50", "ie":"11" } + es6.string.iterator { "ie":"11" } + es6.array.iterator { "ie":"11" } + web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Added following core-js polyfill: + web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Based on your code and targets, added regenerator-runtime. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/in/in.js new file mode 100644 index 0000000000..c3030bdd62 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/in/in.js @@ -0,0 +1 @@ +import '@babel/polyfill'; diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/options.json similarity index 71% rename from packages/babel-preset-env/test/debug-fixtures/usage-with-import/options.json rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/options.json index bd129237f8..ab34fa8b51 100644 --- a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/options.json +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/options.json @@ -5,7 +5,8 @@ "targets": { "chrome": 55 }, - "useBuiltIns": "usage" + "useBuiltIns": "usage", + "corejs": 2 }] ] } diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stderr.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/stderr.txt similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/usage-with-import/stderr.txt rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/stderr.txt diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/stdout.txt similarity index 86% rename from packages/babel-preset-env/test/debug-fixtures/usage-with-import/stdout.txt rename to packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/stdout.txt index 8f0c3d14fb..e976e00c5f 100644 --- a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2-with-import/stdout.txt @@ -18,5 +18,5 @@ Using plugins: Using polyfills with `usage` option: -[/src/in.js] Based on your code and targets, none were added. +[/src/in.js] Based on your code and targets, core-js polyfills were not added. Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/options.json new file mode 100644 index 0000000000..087a0efc9f --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "useBuiltIns": "usage", + "corejs": 2 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/stdout.txt new file mode 100644 index 0000000000..8d1136d823 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs2/stdout.txt @@ -0,0 +1,56 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfills: + es6.object.to-string { "chrome":"52", "firefox":"50", "ie":"11" } + es6.promise { "ie":"11" } + es6.map { "firefox":"50", "ie":"11" } + es6.string.iterator { "ie":"11" } + es6.array.iterator { "ie":"11" } + web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Added following core-js polyfill: + web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Based on your code and targets, added regenerator-runtime. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/options.json new file mode 100644 index 0000000000..31c2a9c77a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 71 + }, + "useBuiltIns": "usage", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/stdout.txt new file mode 100644 index 0000000000..3b0d7b9137 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-chrome-71/stdout.txt @@ -0,0 +1,21 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `usage` option: + +[/src/in.js] Based on your code and targets, core-js polyfills were not added. + +[/src/in2.js] Based on your code and targets, core-js polyfills were not added. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/in/in.js new file mode 100644 index 0000000000..4ec1fa479e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/in/in.js @@ -0,0 +1 @@ +var foo = "bar"; diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/in/in2.js new file mode 100644 index 0000000000..3fbea9d211 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/in/in2.js @@ -0,0 +1,5 @@ +var x = 0; + +for (var i = 0; i < 5; i++) { + x += i; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/options.json new file mode 100644 index 0000000000..6c2922e897 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "useBuiltIns": "usage", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/stdout.txt new file mode 100644 index 0000000000..fafdcfca18 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-none/stdout.txt @@ -0,0 +1,47 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Based on your code and targets, core-js polyfills were not added. + +[/src/in2.js] Based on your code and targets, core-js polyfills were not added. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/options.json new file mode 100644 index 0000000000..24bc77a0d5 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 71 + }, + "useBuiltIns": "usage", + "corejs": { "version": 3, "proposals": true } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/stdout.txt new file mode 100644 index 0000000000..e3546e022a --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals-chrome-71/stdout.txt @@ -0,0 +1,36 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "71" +} + +Using modules transform: auto + +Using plugins: + syntax-async-generators { "chrome":"71" } + syntax-object-rest-spread { "chrome":"71" } + syntax-json-strings { "chrome":"71" } + syntax-optional-catch-binding { "chrome":"71" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfills: + esnext.map.delete-all { "chrome":"71" } + esnext.map.every { "chrome":"71" } + esnext.map.filter { "chrome":"71" } + esnext.map.find { "chrome":"71" } + esnext.map.find-key { "chrome":"71" } + esnext.map.includes { "chrome":"71" } + esnext.map.key-of { "chrome":"71" } + esnext.map.map-keys { "chrome":"71" } + esnext.map.map-values { "chrome":"71" } + esnext.map.merge { "chrome":"71" } + esnext.map.reduce { "chrome":"71" } + esnext.map.some { "chrome":"71" } + esnext.map.update { "chrome":"71" } + esnext.observable { "chrome":"71" } + esnext.symbol.observable { "chrome":"71" } + +[/src/in2.js] Based on your code and targets, core-js polyfills were not added. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/options.json new file mode 100644 index 0000000000..437b707652 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "useBuiltIns": "usage", + "corejs": { "version": 3, "proposals": true } + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/stdout.txt new file mode 100644 index 0000000000..cec7b68039 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-proposals/stdout.txt @@ -0,0 +1,75 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.map { "firefox":"50", "ie":"11" } + es.object.to-string { "firefox":"50", "ie":"11" } + es.promise { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + esnext.global-this { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.delete-all { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.every { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.filter { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.find { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.find-key { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.includes { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.key-of { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.map-keys { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.map-values { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.merge { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.reduce { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.some { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.map.update { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.observable { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.symbol.observable { "chrome":"52", "firefox":"50", "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + web.queue-microtask { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Based on your code and targets, added regenerator-runtime. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/options.json new file mode 100644 index 0000000000..0c80d936a7 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "shippedProposals": true, + "useBuiltIns": "usage", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/stdout.txt new file mode 100644 index 0000000000..c9d333c582 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-shippedProposals/stdout.txt @@ -0,0 +1,60 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.map { "firefox":"50", "ie":"11" } + es.object.to-string { "firefox":"50", "ie":"11" } + es.promise { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + web.queue-microtask { "chrome":"52", "firefox":"50", "ie":"11" } + esnext.global-this { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Based on your code and targets, added regenerator-runtime. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/options.json new file mode 100644 index 0000000000..b0adb5c091 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "useBuiltIns": "usage", + "corejs": "3.0" + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/stdout.txt new file mode 100644 index 0000000000..5c7a633450 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.0/stdout.txt @@ -0,0 +1,59 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.map { "firefox":"50", "ie":"11" } + es.object.to-string { "firefox":"50", "ie":"11" } + es.promise { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + web.queue-microtask { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Based on your code and targets, added regenerator-runtime. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/options.json new file mode 100644 index 0000000000..c2e64be323 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "useBuiltIns": "usage", + "corejs": "3.1" + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/stdout.txt new file mode 100644 index 0000000000..5c7a633450 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-versions-strings-minor-3.1/stdout.txt @@ -0,0 +1,59 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.map { "firefox":"50", "ie":"11" } + es.object.to-string { "firefox":"50", "ie":"11" } + es.promise { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + web.queue-microtask { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Based on your code and targets, added regenerator-runtime. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/in/in.js new file mode 100644 index 0000000000..c3030bdd62 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/in/in.js @@ -0,0 +1 @@ +import '@babel/polyfill'; diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/options.json new file mode 100644 index 0000000000..66118c78ad --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 55 + }, + "useBuiltIns": "usage", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/stderr.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/stderr.txt new file mode 100644 index 0000000000..e2d9ca85e8 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/stderr.txt @@ -0,0 +1,2 @@ +When setting `useBuiltIns: 'usage'`, polyfills are automatically imported when needed. + Please remove the direct import of `core-js` or use `useBuiltIns: 'entry'` instead. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/stdout.txt new file mode 100644 index 0000000000..e976e00c5f --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3-with-import/stdout.txt @@ -0,0 +1,22 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "55" +} + +Using modules transform: auto + +Using plugins: + transform-dotall-regex { "chrome":"55" } + proposal-async-generator-functions { "chrome":"55" } + proposal-object-rest-spread { "chrome":"55" } + proposal-unicode-property-regex { "chrome":"55" } + proposal-json-strings { "chrome":"55" } + proposal-optional-catch-binding { "chrome":"55" } + transform-named-capturing-groups-regex { "chrome":"55" } + +Using polyfills with `usage` option: + +[/src/in.js] Based on your code and targets, core-js polyfills were not added. +Successfully compiled 1 file with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/options.json new file mode 100644 index 0000000000..6c2922e897 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + ["../../lib", { + "debug": true, + "targets": { + "chrome": 52, + "firefox": 50, + "ie": 11 + }, + "useBuiltIns": "usage", + "corejs": 3 + }] + ] +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/stdout.txt new file mode 100644 index 0000000000..5c7a633450 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-corejs3/stdout.txt @@ -0,0 +1,59 @@ +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.map { "firefox":"50", "ie":"11" } + es.object.to-string { "firefox":"50", "ie":"11" } + es.promise { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + web.queue-microtask { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Added following core-js polyfills: + es.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + es.string.iterator { "ie":"11" } + web.dom-collections.iterator { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Based on your code and targets, added regenerator-runtime. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/in/in.js new file mode 100644 index 0000000000..4ec1fa479e --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/in/in.js @@ -0,0 +1 @@ +var foo = "bar"; diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/in/in2.js new file mode 100644 index 0000000000..3fbea9d211 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/in/in2.js @@ -0,0 +1,5 @@ +var x = 0; + +for (var i = 0; i < 5; i++) { + x += i; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-none/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/options.json similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/usage-none/options.json rename to packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/options.json diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/stdout.txt new file mode 100644 index 0000000000..44fbb60277 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs-none/stdout.txt @@ -0,0 +1,49 @@ +With `useBuiltIns` option, required direct setting of `corejs` option + +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Based on your code and targets, core-js polyfills were not added. + +[/src/in2.js] Based on your code and targets, core-js polyfills were not added. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/in/in.js b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/in/in.js new file mode 100644 index 0000000000..6113c3b69b --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/in/in.js @@ -0,0 +1,7 @@ +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/in/in2.js b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/in/in2.js new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/in/in2.js @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/debug-fixtures/usage/options.json b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/options.json similarity index 100% rename from packages/babel-preset-env/test/debug-fixtures/usage/options.json rename to packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/options.json diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/stdout.txt new file mode 100644 index 0000000000..f0f6376575 --- /dev/null +++ b/packages/babel-preset-env/test/debug-fixtures/usage-no-corejs/stdout.txt @@ -0,0 +1,58 @@ +With `useBuiltIns` option, required direct setting of `corejs` option + +@babel/preset-env: `DEBUG` option + +Using targets: +{ + "chrome": "52", + "firefox": "50", + "ie": "11" +} + +Using modules transform: auto + +Using plugins: + transform-template-literals { "ie":"11" } + transform-literals { "firefox":"50", "ie":"11" } + transform-function-name { "firefox":"50", "ie":"11" } + transform-arrow-functions { "ie":"11" } + transform-classes { "ie":"11" } + transform-object-super { "ie":"11" } + transform-shorthand-properties { "ie":"11" } + transform-duplicate-keys { "ie":"11" } + transform-computed-properties { "ie":"11" } + transform-for-of { "firefox":"50", "ie":"11" } + transform-sticky-regex { "ie":"11" } + transform-dotall-regex { "chrome":"52", "firefox":"50", "ie":"11" } + transform-unicode-regex { "ie":"11" } + transform-spread { "ie":"11" } + transform-parameters { "firefox":"50", "ie":"11" } + transform-destructuring { "firefox":"50", "ie":"11" } + transform-block-scoping { "firefox":"50", "ie":"11" } + transform-typeof-symbol { "ie":"11" } + transform-new-target { "ie":"11" } + transform-regenerator { "firefox":"50", "ie":"11" } + transform-exponentiation-operator { "firefox":"50", "ie":"11" } + transform-async-to-generator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } + transform-named-capturing-groups-regex { "chrome":"52", "firefox":"50", "ie":"11" } + +Using polyfills with `usage` option: + +[/src/in.js] Added following core-js polyfills: + es6.object.to-string { "chrome":"52", "firefox":"50", "ie":"11" } + es6.promise { "ie":"11" } + es6.map { "firefox":"50", "ie":"11" } + es6.string.iterator { "ie":"11" } + es6.array.iterator { "ie":"11" } + web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Added following core-js polyfill: + web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" } + +[/src/in2.js] Based on your code and targets, added regenerator-runtime. +Successfully compiled 2 files with Babel. \ No newline at end of file diff --git a/packages/babel-preset-env/test/defaults.js b/packages/babel-preset-env/test/defaults.js deleted file mode 100644 index 376c93e1f5..0000000000 --- a/packages/babel-preset-env/test/defaults.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; - -const defaults = require("../lib/defaults.js"); - -const { - getPlatformSpecificDefaultFor, - getOptionSpecificExcludesFor, -} = defaults; - -describe("defaults", () => { - describe("getPlatformSpecificDefaultFor", () => { - it("should return web polyfills for non-`node` platform", () => { - const defaultWebIncludesForChromeAndNode = getPlatformSpecificDefaultFor({ - chrome: "63", - node: "8", - }); - expect(defaultWebIncludesForChromeAndNode).toEqual([ - "web.timers", - "web.immediate", - "web.dom.iterable", - ]); - }); - - it("shouldn't return web polyfills for node platform", () => { - const defaultWebIncludesForChromeAndNode = getPlatformSpecificDefaultFor({ - node: "8", - }); - expect(defaultWebIncludesForChromeAndNode).toBeNull(); - }); - }); - - describe("getOptionSpecificExcludesFor", () => { - it("should return correct excludes for `loose` mode", () => { - const defaultWebIncludesForChromeAndNode = getOptionSpecificExcludesFor({ - loose: true, - }); - expect(defaultWebIncludesForChromeAndNode).toEqual([ - "transform-typeof-symbol", - ]); - }); - - it("shouldn't return excludes for non-`loose` mode", () => { - const defaultWebIncludesForChromeAndNode = getOptionSpecificExcludesFor({ - loose: false, - }); - expect(defaultWebIncludesForChromeAndNode).toBeNull(); - }); - }); -}); diff --git a/packages/babel-preset-env/test/filter-items.spec.js b/packages/babel-preset-env/test/filter-items.spec.js new file mode 100644 index 0000000000..6488e03d03 --- /dev/null +++ b/packages/babel-preset-env/test/filter-items.spec.js @@ -0,0 +1,84 @@ +"use strict"; + +const filterItems = require("../lib/filter-items"); + +describe("filter-items", () => { + describe("isPluginRequired", () => { + const MAX_VERSION = `${Number.MAX_SAFE_INTEGER}.0.0`; + + it("returns true if no targets are specified", () => { + expect(filterItems.isPluginRequired({}, {})).toBe(true); + }); + + it("returns true if plugin feature is not implemented in one or more targets", () => { + let targets; + const plugin = { + edge: false, + firefox: 45, + chrome: 49, + }; + + targets = { + chrome: MAX_VERSION, + firefox: MAX_VERSION, + }; + expect(filterItems.isPluginRequired(targets, plugin)).toBe(false); + + targets = { + edge: "12", + }; + expect(filterItems.isPluginRequired(targets, plugin)).toBe(true); + }); + + it("returns false if plugin feature is implemented by lower than target", () => { + const plugin = { + chrome: 49, + }; + const targets = { + chrome: MAX_VERSION, + }; + + expect(filterItems.isPluginRequired(targets, plugin)).toBe(false); + }); + + it("returns false if plugin feature is implemented is equal to target", () => { + const plugin = { + chrome: 49, + }; + const targets = { + chrome: "49.0.0", + }; + expect(filterItems.isPluginRequired(targets, plugin)).toBe(false); + }); + + it("returns true if plugin feature is implemented is greater than target", () => { + const plugin = { + chrome: 50, + }; + const targets = { + chrome: "49.0.0", + }; + expect(filterItems.isPluginRequired(targets, plugin)).toBe(true); + }); + + it("returns when target is a decimal", () => { + const plugin = { + node: 6.9, + }; + const targets = { + node: "6.10.0", + }; + expect(filterItems.isPluginRequired(targets, plugin)).toBe(false); + }); + + it("throws an error if target version is invalid", () => { + const plugin = { + chrome: 50, + }; + const targets = { + chrome: 55, + }; + expect(() => filterItems.isPluginRequired(targets, plugin)).toThrow(); + }); + }); +}); diff --git a/packages/babel-preset-env/test/fixtures/preset-options/.use-builtins-all-exec/exec.js b/packages/babel-preset-env/test/fixtures/corejs2/.entry-all-exec/exec.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/.use-builtins-all-exec/exec.js rename to packages/babel-preset-env/test/fixtures/corejs2/.entry-all-exec/exec.js diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/options.json b/packages/babel-preset-env/test/fixtures/corejs2/.entry-all-exec/options.json similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/.entry-all-exec/options.json diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-all/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-all/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-all/options.json similarity index 66% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-all/options.json index 315805ef81..e5716ed34f 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-all/options.json @@ -4,7 +4,8 @@ "../../../../lib", { "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-all/output.mjs similarity index 97% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-all/output.mjs index 70fb9c5525..50550d4322 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-all/output.mjs @@ -4,6 +4,7 @@ import "core-js/modules/es6.array.fill"; import "core-js/modules/es6.array.filter"; import "core-js/modules/es6.array.find"; import "core-js/modules/es6.array.find-index"; +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.for-each"; import "core-js/modules/es6.array.from"; import "core-js/modules/es7.array.includes"; @@ -69,6 +70,7 @@ import "core-js/modules/es6.object.get-prototype-of"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; import "core-js/modules/es6.object.prevent-extensions"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es6.object.is"; import "core-js/modules/es6.object.is-frozen"; import "core-js/modules/es6.object.is-sealed"; @@ -126,6 +128,8 @@ import "core-js/modules/es6.string.strike"; import "core-js/modules/es6.string.sub"; import "core-js/modules/es6.string.sup"; import "core-js/modules/es6.string.trim"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.data-view"; import "core-js/modules/es6.typed.int8-array"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-48/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-48/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-48/options.json similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-48/options.json index 24aed40ad1..e6be8cd4b1 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-48/options.json @@ -7,7 +7,8 @@ "chrome": 48 }, "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-48/output.mjs similarity index 93% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-48/output.mjs index fee20819e4..7f3479ae14 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-48/output.mjs @@ -1,3 +1,4 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.from"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es6.array.species"; @@ -10,6 +11,7 @@ import "core-js/modules/es7.object.entries"; import "core-js/modules/es7.object.get-own-property-descriptors"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.object.values"; import "core-js/modules/es6.promise"; import "core-js/modules/es7.promise.finally"; @@ -38,6 +40,8 @@ import "core-js/modules/es6.symbol"; import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.int8-array"; import "core-js/modules/es6.typed.uint8-array"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-49/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-49/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-49/options.json similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-49/options.json index c1d306666c..29a64d797c 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-49/options.json @@ -7,7 +7,8 @@ "chrome": 49 }, "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-49/output.mjs similarity index 90% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-49/output.mjs index a231fd04af..d424cb017c 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-49/output.mjs @@ -1,3 +1,4 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.from"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es6.array.species"; @@ -9,6 +10,7 @@ import "core-js/modules/es7.object.entries"; import "core-js/modules/es7.object.get-own-property-descriptors"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.object.values"; import "core-js/modules/es6.promise"; import "core-js/modules/es7.promise.finally"; @@ -23,6 +25,8 @@ import "core-js/modules/es6.symbol"; import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.int8-array"; import "core-js/modules/es6.typed.uint8-array"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-66/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-66/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-66/options.json similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-66/options.json index 70efcddddc..5a0151ae5b 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-66/options.json @@ -7,7 +7,8 @@ "chrome": "66" }, "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-66/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-66/output.mjs new file mode 100644 index 0000000000..ce33befd11 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-66/output.mjs @@ -0,0 +1,16 @@ +import "core-js/modules/es7.array.flat-map"; +import "core-js/modules/web.timers"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.dom.iterable"; +const foo = { + a: true +}; +const bar = { ...foo, + b: false +}; + +async function baz() { + for await (const x of someAsyncThing()) { + console.log(x); + } +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/input.mjs new file mode 100644 index 0000000000..b475c7ae52 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/input.mjs @@ -0,0 +1,16 @@ +import "@babel/polyfill"; + +const foo = { + a: true, +}; + +const bar = { + ...foo, + b: false, +}; + +async function baz() { + for await (const x of someAsyncThing()) { + console.log(x); + } +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/options.json new file mode 100644 index 0000000000..344aa0ae65 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 2 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chrome-71/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chromeandroid/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chromeandroid/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-chromeandroid/options.json similarity index 77% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chromeandroid/options.json index 463fc50978..167d33395b 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-chromeandroid/options.json @@ -7,7 +7,8 @@ "browsers": "chromeandroid 59" }, "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-chromeandroid/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-chromeandroid/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/input.mjs new file mode 100644 index 0000000000..640bc11864 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/input.mjs @@ -0,0 +1 @@ +require("core-js"); \ No newline at end of file diff --git a/packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/options.json similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/options.json index 6053ab0e29..19b78ca457 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/options.json @@ -7,7 +7,8 @@ "chrome": 55 }, "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/core-js/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/output.mjs similarity index 74% rename from packages/babel-preset-env/test/fixtures/preset-options/core-js/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/output.mjs index 8241589a94..0d844da812 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/core-js/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main-require/output.mjs @@ -1,12 +1,16 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es7.object.define-getter"; import "core-js/modules/es7.object.define-setter"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.promise.finally"; import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/web.timers"; import "core-js/modules/web.immediate"; import "core-js/modules/web.dom.iterable"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/core-js/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/core-js/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/options.json new file mode 100644 index 0000000000..19b78ca457 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 2 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/output.mjs new file mode 100644 index 0000000000..0d844da812 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-core-js-main/output.mjs @@ -0,0 +1,16 @@ +import "core-js/modules/es7.array.flat-map"; +import "core-js/modules/es6.array.sort"; +import "core-js/modules/es7.object.define-getter"; +import "core-js/modules/es7.object.define-setter"; +import "core-js/modules/es7.object.lookup-getter"; +import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; +import "core-js/modules/es7.promise.finally"; +import "core-js/modules/es7.symbol.async-iterator"; +import "core-js/modules/es7.string.pad-start"; +import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; +import "core-js/modules/web.timers"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.dom.iterable"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/electron/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-electron/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/electron/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-electron/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/electron/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-electron/options.json similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/electron/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-electron/options.json index 0ebb752220..fe07d418a7 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/electron/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-electron/options.json @@ -7,7 +7,8 @@ "electron": "1.4" }, "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/electron/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-electron/output.mjs similarity index 80% rename from packages/babel-preset-env/test/fixtures/preset-options/electron/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-electron/output.mjs index ebe428ccf6..c71a6a9b40 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/electron/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-electron/output.mjs @@ -1,3 +1,4 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es6.function.bind"; import "core-js/modules/es7.object.define-getter"; @@ -6,11 +7,14 @@ import "core-js/modules/es7.object.entries"; import "core-js/modules/es7.object.get-own-property-descriptors"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.object.values"; import "core-js/modules/es7.promise.finally"; import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/web.timers"; import "core-js/modules/web.immediate"; import "core-js/modules/web.dom.iterable"; diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-11/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-ie-11/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-11/options.json similarity index 90% rename from packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-ie-11/options.json index be71dc8e11..d18d83616e 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-11/options.json @@ -8,6 +8,7 @@ }, "modules": false, "useBuiltIns": "entry", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-11/output.mjs similarity index 96% rename from packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-ie-11/output.mjs index 8ace0aa1e2..220ad965ed 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-11/output.mjs @@ -2,6 +2,7 @@ import "core-js/modules/es6.array.copy-within"; import "core-js/modules/es6.array.fill"; import "core-js/modules/es6.array.find"; import "core-js/modules/es6.array.find-index"; +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.from"; import "core-js/modules/es7.array.includes"; import "core-js/modules/es6.array.iterator"; @@ -50,6 +51,7 @@ import "core-js/modules/es6.object.get-prototype-of"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; import "core-js/modules/es6.object.prevent-extensions"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es6.object.is"; import "core-js/modules/es6.object.is-frozen"; import "core-js/modules/es6.object.is-sealed"; @@ -105,6 +107,8 @@ import "core-js/modules/es6.string.starts-with"; import "core-js/modules/es6.string.strike"; import "core-js/modules/es6.string.sub"; import "core-js/modules/es6.string.sup"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.int8-array"; import "core-js/modules/es6.typed.uint8-array"; diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-9/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-ie-9/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-9/options.json similarity index 90% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-ie-9/options.json index cb0e9069ff..d927322850 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-9/options.json @@ -8,6 +8,7 @@ }, "modules": false, "useBuiltIns": "entry", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-9/output.mjs similarity index 96% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-ie-9/output.mjs index a0f5cab607..9012ed720c 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-ie-9/output.mjs @@ -2,6 +2,7 @@ import "core-js/modules/es6.array.copy-within"; import "core-js/modules/es6.array.fill"; import "core-js/modules/es6.array.find"; import "core-js/modules/es6.array.find-index"; +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.from"; import "core-js/modules/es7.array.includes"; import "core-js/modules/es6.array.iterator"; @@ -51,6 +52,7 @@ import "core-js/modules/es6.object.get-prototype-of"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; import "core-js/modules/es6.object.prevent-extensions"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es6.object.is"; import "core-js/modules/es6.object.is-frozen"; import "core-js/modules/es6.object.is-sealed"; @@ -107,6 +109,8 @@ import "core-js/modules/es6.string.starts-with"; import "core-js/modules/es6.string.strike"; import "core-js/modules/es6.string.sub"; import "core-js/modules/es6.string.sup"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.data-view"; import "core-js/modules/es6.typed.int8-array"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-import/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-import/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-import/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-import/options.json new file mode 100644 index 0000000000..19b78ca457 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-import/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 2 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-import/output.mjs similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-import/output.mjs index f7c13851bd..68e37cc3ea 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-import/output.mjs @@ -1,12 +1,16 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es7.object.define-getter"; import "core-js/modules/es7.object.define-setter"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.promise.finally"; import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/web.timers"; import "core-js/modules/web.immediate"; import "core-js/modules/web.dom.iterable"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-10_13/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-10.13/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-10_13/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-node-10.13/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-10_13/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-10.13/options.json similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-10_13/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-node-10.13/options.json index 9377984c59..0bc0d53b84 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-10_13/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-10.13/options.json @@ -7,7 +7,8 @@ "node": "10.13" }, "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-node-10.13/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-10.13/output.mjs new file mode 100644 index 0000000000..0518d02b9c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-10.13/output.mjs @@ -0,0 +1 @@ +import "core-js/modules/es7.array.flat-map"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/input.mjs similarity index 96% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/input.mjs index b4ece7b964..cce2c112e0 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/input.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/input.mjs @@ -1 +1,2 @@ import "@babel/polyfill"; + diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/options.json new file mode 100644 index 0000000000..c8b34662cf --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "node": "11" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 2 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/output.mjs new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-11/output.mjs @@ -0,0 +1 @@ + diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-built-ins/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-web/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude-built-ins/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-node-web/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-web/options.json similarity index 79% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-node-web/options.json index 594b2443f2..56fd28fa3d 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-web/options.json @@ -9,7 +9,8 @@ }, "modules": false, "useBuiltIns": "entry", - "forceAllTransforms": true + "forceAllTransforms": true, + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-web/output.mjs similarity index 76% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-node-web/output.mjs index 86694d57ca..a9f27a4dce 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-node-web/output.mjs @@ -1,12 +1,16 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es7.object.define-getter"; import "core-js/modules/es7.object.define-setter"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.promise.finally"; import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/web.timers"; import "core-js/modules/web.immediate"; import "core-js/modules/web.dom.iterable"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-node/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-node/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-node/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-node/options.json new file mode 100644 index 0000000000..fc9b166ab9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-node/options.json @@ -0,0 +1,16 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "node": "7.6" + }, + "modules": false, + "useBuiltIns": "entry", + "forceAllTransforms": true, + "corejs": 2 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/entry-node/output.mjs similarity index 71% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/entry-node/output.mjs index 6f861c0172..2afa855ac7 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-node/output.mjs @@ -1,10 +1,14 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es7.object.define-getter"; import "core-js/modules/es7.object.define-setter"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.promise.finally"; import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "regenerator-runtime/runtime"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/input.js b/packages/babel-preset-env/test/fixtures/corejs2/entry-require/input.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/input.js rename to packages/babel-preset-env/test/fixtures/corejs2/entry-require/input.js diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-require/options.json similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-require/options.json index 1e2b3ea2c1..b1dae07978 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-require/options.json @@ -7,7 +7,8 @@ "chrome": "55" }, "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/output.js b/packages/babel-preset-env/test/fixtures/corejs2/entry-require/output.js similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/output.js rename to packages/babel-preset-env/test/fixtures/corejs2/entry-require/output.js index 6d828e5bde..70393b8eae 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/output.js +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-require/output.js @@ -1,3 +1,5 @@ +require("core-js/modules/es7.array.flat-map"); + require("core-js/modules/es6.array.sort"); require("core-js/modules/es7.object.define-getter"); @@ -8,6 +10,8 @@ require("core-js/modules/es7.object.lookup-getter"); require("core-js/modules/es7.object.lookup-setter"); +require("core-js/modules/es6.object.to-string"); + require("core-js/modules/es7.promise.finally"); require("core-js/modules/es7.symbol.async-iterator"); @@ -16,6 +20,10 @@ require("core-js/modules/es7.string.pad-start"); require("core-js/modules/es7.string.pad-end"); +require("core-js/modules/es7.string.trim-left"); + +require("core-js/modules/es7.string.trim-right"); + require("core-js/modules/web.timers"); require("core-js/modules/web.immediate"); diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/input.js b/packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/input.js similarity index 80% rename from packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/input.js rename to packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/input.js index d95854b64f..139b7c19f8 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/input.js +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/input.js @@ -1,3 +1,5 @@ +require("@babel/polyfill"); + let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; let n = { x, y, ...z }; async function* agf() { diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/options.json b/packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/options.json similarity index 67% rename from packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/options.json index c5b86606ca..10e3737d2b 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/options.json @@ -4,7 +4,8 @@ "../../../../lib", { "shippedProposals": true, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/output.js b/packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/output.js new file mode 100644 index 0000000000..047e3843b1 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/entry-shippedProposals/output.js @@ -0,0 +1,365 @@ +require("core-js/modules/es6.array.copy-within"); + +require("core-js/modules/es6.array.every"); + +require("core-js/modules/es6.array.fill"); + +require("core-js/modules/es6.array.filter"); + +require("core-js/modules/es6.array.find"); + +require("core-js/modules/es6.array.find-index"); + +require("core-js/modules/es7.array.flat-map"); + +require("core-js/modules/es6.array.for-each"); + +require("core-js/modules/es6.array.from"); + +require("core-js/modules/es7.array.includes"); + +require("core-js/modules/es6.array.index-of"); + +require("core-js/modules/es6.array.is-array"); + +require("core-js/modules/es6.array.iterator"); + +require("core-js/modules/es6.array.last-index-of"); + +require("core-js/modules/es6.array.map"); + +require("core-js/modules/es6.array.of"); + +require("core-js/modules/es6.array.reduce"); + +require("core-js/modules/es6.array.reduce-right"); + +require("core-js/modules/es6.array.some"); + +require("core-js/modules/es6.array.sort"); + +require("core-js/modules/es6.array.species"); + +require("core-js/modules/es6.date.now"); + +require("core-js/modules/es6.date.to-iso-string"); + +require("core-js/modules/es6.date.to-json"); + +require("core-js/modules/es6.date.to-primitive"); + +require("core-js/modules/es6.date.to-string"); + +require("core-js/modules/es6.function.bind"); + +require("core-js/modules/es6.function.has-instance"); + +require("core-js/modules/es6.function.name"); + +require("core-js/modules/es6.map"); + +require("core-js/modules/es6.math.acosh"); + +require("core-js/modules/es6.math.asinh"); + +require("core-js/modules/es6.math.atanh"); + +require("core-js/modules/es6.math.cbrt"); + +require("core-js/modules/es6.math.clz32"); + +require("core-js/modules/es6.math.cosh"); + +require("core-js/modules/es6.math.expm1"); + +require("core-js/modules/es6.math.fround"); + +require("core-js/modules/es6.math.hypot"); + +require("core-js/modules/es6.math.imul"); + +require("core-js/modules/es6.math.log1p"); + +require("core-js/modules/es6.math.log10"); + +require("core-js/modules/es6.math.log2"); + +require("core-js/modules/es6.math.sign"); + +require("core-js/modules/es6.math.sinh"); + +require("core-js/modules/es6.math.tanh"); + +require("core-js/modules/es6.math.trunc"); + +require("core-js/modules/es6.number.constructor"); + +require("core-js/modules/es6.number.epsilon"); + +require("core-js/modules/es6.number.is-finite"); + +require("core-js/modules/es6.number.is-integer"); + +require("core-js/modules/es6.number.is-nan"); + +require("core-js/modules/es6.number.is-safe-integer"); + +require("core-js/modules/es6.number.max-safe-integer"); + +require("core-js/modules/es6.number.min-safe-integer"); + +require("core-js/modules/es6.number.parse-float"); + +require("core-js/modules/es6.number.parse-int"); + +require("core-js/modules/es6.object.assign"); + +require("core-js/modules/es6.object.create"); + +require("core-js/modules/es7.object.define-getter"); + +require("core-js/modules/es7.object.define-setter"); + +require("core-js/modules/es6.object.define-property"); + +require("core-js/modules/es6.object.define-properties"); + +require("core-js/modules/es7.object.entries"); + +require("core-js/modules/es6.object.freeze"); + +require("core-js/modules/es6.object.get-own-property-descriptor"); + +require("core-js/modules/es7.object.get-own-property-descriptors"); + +require("core-js/modules/es6.object.get-own-property-names"); + +require("core-js/modules/es6.object.get-prototype-of"); + +require("core-js/modules/es7.object.lookup-getter"); + +require("core-js/modules/es7.object.lookup-setter"); + +require("core-js/modules/es6.object.prevent-extensions"); + +require("core-js/modules/es6.object.to-string"); + +require("core-js/modules/es6.object.is"); + +require("core-js/modules/es6.object.is-frozen"); + +require("core-js/modules/es6.object.is-sealed"); + +require("core-js/modules/es6.object.is-extensible"); + +require("core-js/modules/es6.object.keys"); + +require("core-js/modules/es6.object.seal"); + +require("core-js/modules/es6.object.set-prototype-of"); + +require("core-js/modules/es7.object.values"); + +require("core-js/modules/es6.promise"); + +require("core-js/modules/es7.promise.finally"); + +require("core-js/modules/es6.reflect.apply"); + +require("core-js/modules/es6.reflect.construct"); + +require("core-js/modules/es6.reflect.define-property"); + +require("core-js/modules/es6.reflect.delete-property"); + +require("core-js/modules/es6.reflect.get"); + +require("core-js/modules/es6.reflect.get-own-property-descriptor"); + +require("core-js/modules/es6.reflect.get-prototype-of"); + +require("core-js/modules/es6.reflect.has"); + +require("core-js/modules/es6.reflect.is-extensible"); + +require("core-js/modules/es6.reflect.own-keys"); + +require("core-js/modules/es6.reflect.prevent-extensions"); + +require("core-js/modules/es6.reflect.set"); + +require("core-js/modules/es6.reflect.set-prototype-of"); + +require("core-js/modules/es6.regexp.constructor"); + +require("core-js/modules/es6.regexp.flags"); + +require("core-js/modules/es6.regexp.match"); + +require("core-js/modules/es6.regexp.replace"); + +require("core-js/modules/es6.regexp.split"); + +require("core-js/modules/es6.regexp.search"); + +require("core-js/modules/es6.regexp.to-string"); + +require("core-js/modules/es6.set"); + +require("core-js/modules/es6.symbol"); + +require("core-js/modules/es7.symbol.async-iterator"); + +require("core-js/modules/es6.string.anchor"); + +require("core-js/modules/es6.string.big"); + +require("core-js/modules/es6.string.blink"); + +require("core-js/modules/es6.string.bold"); + +require("core-js/modules/es6.string.code-point-at"); + +require("core-js/modules/es6.string.ends-with"); + +require("core-js/modules/es6.string.fixed"); + +require("core-js/modules/es6.string.fontcolor"); + +require("core-js/modules/es6.string.fontsize"); + +require("core-js/modules/es6.string.from-code-point"); + +require("core-js/modules/es6.string.includes"); + +require("core-js/modules/es6.string.italics"); + +require("core-js/modules/es6.string.iterator"); + +require("core-js/modules/es6.string.link"); + +require("core-js/modules/es7.string.pad-start"); + +require("core-js/modules/es7.string.pad-end"); + +require("core-js/modules/es6.string.raw"); + +require("core-js/modules/es6.string.repeat"); + +require("core-js/modules/es6.string.small"); + +require("core-js/modules/es6.string.starts-with"); + +require("core-js/modules/es6.string.strike"); + +require("core-js/modules/es6.string.sub"); + +require("core-js/modules/es6.string.sup"); + +require("core-js/modules/es6.string.trim"); + +require("core-js/modules/es7.string.trim-left"); + +require("core-js/modules/es7.string.trim-right"); + +require("core-js/modules/es6.typed.array-buffer"); + +require("core-js/modules/es6.typed.data-view"); + +require("core-js/modules/es6.typed.int8-array"); + +require("core-js/modules/es6.typed.uint8-array"); + +require("core-js/modules/es6.typed.uint8-clamped-array"); + +require("core-js/modules/es6.typed.int16-array"); + +require("core-js/modules/es6.typed.uint16-array"); + +require("core-js/modules/es6.typed.int32-array"); + +require("core-js/modules/es6.typed.uint32-array"); + +require("core-js/modules/es6.typed.float32-array"); + +require("core-js/modules/es6.typed.float64-array"); + +require("core-js/modules/es6.weak-map"); + +require("core-js/modules/es6.weak-set"); + +require("core-js/modules/web.timers"); + +require("core-js/modules/web.immediate"); + +require("core-js/modules/web.dom.iterable"); + +require("regenerator-runtime/runtime"); + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } + +function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } + +function _awaitAsyncGenerator(value) { return new _AwaitValue(value); } + +function _wrapAsyncGenerator(fn) { return function () { return new _AsyncGenerator(fn.apply(this, arguments)); }; } + +function _AsyncGenerator(gen) { var front, back; function send(key, arg) { return new Promise(function (resolve, reject) { var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null }; if (back) { back = back.next = request; } else { front = back = request; resume(key, arg); } }); } function resume(key, arg) { try { var result = gen[key](arg); var value = result.value; var wrappedAwait = value instanceof _AwaitValue; Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { if (wrappedAwait) { resume("next", arg); return; } settle(result.done ? "return" : "normal", arg); }, function (err) { resume("throw", err); }); } catch (err) { settle("throw", err); } } function settle(type, value) { switch (type) { case "return": front.resolve({ value: value, done: true }); break; case "throw": front.reject(value); break; default: front.resolve({ value: value, done: false }); break; } front = front.next; if (front) { resume(front.key, front.arg); } else { back = null; } } this._invoke = send; if (typeof gen.return !== "function") { this.return = undefined; } } + +if (typeof Symbol === "function" && Symbol.asyncIterator) { _AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; }; } + +_AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); }; + +_AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); }; + +_AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); }; + +function _AwaitValue(value) { this.wrapped = value; } + +var _x$y$a$b = { + x: 1, + y: 2, + a: 3, + b: 4 +}, + x = _x$y$a$b.x, + y = _x$y$a$b.y, + z = _objectWithoutProperties(_x$y$a$b, ["x", "y"]); + +var n = _objectSpread({ + x: x, + y: y +}, z); + +function agf() { + return _agf.apply(this, arguments); +} + +function _agf() { + _agf = _wrapAsyncGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _awaitAsyncGenerator(1); + + case 2: + _context.next = 4; + return 2; + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + return _agf.apply(this, arguments); +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/exclude-built-ins/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/exclude-built-ins/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-built-ins/options.json b/packages/babel-preset-env/test/fixtures/corejs2/exclude-built-ins/options.json similarity index 81% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude-built-ins/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/exclude-built-ins/options.json index 368eff47d4..f3f1b4733a 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude-built-ins/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/exclude-built-ins/options.json @@ -8,9 +8,9 @@ }, "modules": false, "useBuiltIns": "entry", + "corejs": 2, "exclude": [ - "es7.string.pad-start", - "es7.string.pad-end", + "es7.array.flat-map", "web.timers", "web.immediate", "web.dom.iterable" diff --git a/packages/babel-preset-env/test/fixtures/corejs2/exclude-built-ins/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/exclude-built-ins/output.mjs new file mode 100644 index 0000000000..71b8fdb1d8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/exclude-built-ins/output.mjs @@ -0,0 +1,2 @@ +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-include/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/exclude-include/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude-include/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/exclude-include/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-include/options.json b/packages/babel-preset-env/test/fixtures/corejs2/exclude-include/options.json similarity index 87% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude-include/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/exclude-include/options.json index 5835e72a36..73ac204862 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude-include/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/exclude-include/options.json @@ -8,10 +8,11 @@ }, "modules": false, "useBuiltIns": "entry", + "corejs": 2, "exclude": [ "transform-async-to-generator", "transform-regenerator", - "es7.string.pad-start" + "es6.string.repeat" ], "include": ["transform-arrow-functions", "es6.map"] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-include/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/exclude-include/output.mjs similarity index 71% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude-include/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/exclude-include/output.mjs index 7417071cd2..265ac0ac03 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude-include/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/exclude-include/output.mjs @@ -1,12 +1,17 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es6.map"; import "core-js/modules/es7.object.define-getter"; import "core-js/modules/es7.object.define-setter"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.promise.finally"; import "core-js/modules/es7.symbol.async-iterator"; +import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/web.timers"; import "core-js/modules/web.immediate"; import "core-js/modules/web.dom.iterable"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/exclude-regenerator/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/exclude-regenerator/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/options.json b/packages/babel-preset-env/test/fixtures/corejs2/exclude-regenerator/options.json similarity index 89% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/exclude-regenerator/options.json index 7e047ae37c..376e039037 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/exclude-regenerator/options.json @@ -5,6 +5,7 @@ { "modules": false, "useBuiltIns": "entry", + "corejs": 2, "exclude": ["transform-regenerator"] } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/exclude-regenerator/output.mjs similarity index 97% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/exclude-regenerator/output.mjs index 7201ee62c9..e8994bd763 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/exclude-regenerator/output.mjs @@ -4,6 +4,7 @@ import "core-js/modules/es6.array.fill"; import "core-js/modules/es6.array.filter"; import "core-js/modules/es6.array.find"; import "core-js/modules/es6.array.find-index"; +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.for-each"; import "core-js/modules/es6.array.from"; import "core-js/modules/es7.array.includes"; @@ -69,6 +70,7 @@ import "core-js/modules/es6.object.get-prototype-of"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; import "core-js/modules/es6.object.prevent-extensions"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es6.object.is"; import "core-js/modules/es6.object.is-frozen"; import "core-js/modules/es6.object.is-sealed"; @@ -126,6 +128,8 @@ import "core-js/modules/es6.string.strike"; import "core-js/modules/es6.string.sub"; import "core-js/modules/es6.string.sup"; import "core-js/modules/es6.string.trim"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.data-view"; import "core-js/modules/es6.typed.int8-array"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/exclude/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/exclude/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude/options.json b/packages/babel-preset-env/test/fixtures/corejs2/exclude/options.json similarity index 90% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/exclude/options.json index ffe95aded8..0dd4237202 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/exclude/options.json @@ -5,6 +5,7 @@ { "modules": false, "useBuiltIns": "usage", + "corejs": 2, "exclude": ["transform-async-to-generator", "transform-regenerator"] } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/exclude/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/exclude/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/exclude/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/force-all-transforms/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/force-all-transforms/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/options.json b/packages/babel-preset-env/test/fixtures/corejs2/force-all-transforms/options.json similarity index 91% rename from packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/force-all-transforms/options.json index bbb2830a6b..a16df6bc3e 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/force-all-transforms/options.json @@ -8,6 +8,7 @@ }, "modules": false, "useBuiltIns": "entry", + "corejs": 2, "forceAllTransforms": true } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/force-all-transforms/output.mjs similarity index 76% rename from packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/force-all-transforms/output.mjs index 814a9aefea..3cb3bf4ca5 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/force-all-transforms/output.mjs @@ -1,12 +1,16 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es7.object.define-getter"; import "core-js/modules/es7.object.define-setter"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.promise.finally"; import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/web.timers"; import "core-js/modules/web.immediate"; import "core-js/modules/web.dom.iterable"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/include-built-ins/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/include-built-ins/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/options.json b/packages/babel-preset-env/test/fixtures/corejs2/include-built-ins/options.json similarity index 79% rename from packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/include-built-ins/options.json index efae471651..c6fc181232 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/include-built-ins/options.json @@ -8,7 +8,8 @@ }, "include": ["es6.map", "es6.set"], "modules": false, - "useBuiltIns": "entry" + "useBuiltIns": "entry", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/include-built-ins/output.mjs similarity index 76% rename from packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/include-built-ins/output.mjs index 2188ac33c9..cdc603eea1 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/include-built-ins/output.mjs @@ -1,14 +1,18 @@ +import "core-js/modules/es7.array.flat-map"; import "core-js/modules/es6.array.sort"; import "core-js/modules/es6.map"; import "core-js/modules/es7.object.define-getter"; import "core-js/modules/es7.object.define-setter"; import "core-js/modules/es7.object.lookup-getter"; import "core-js/modules/es7.object.lookup-setter"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es7.promise.finally"; import "core-js/modules/es6.set"; import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/es7.string.trim-left"; +import "core-js/modules/es7.string.trim-right"; import "core-js/modules/web.timers"; import "core-js/modules/web.immediate"; import "core-js/modules/web.dom.iterable"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-all/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-all/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-all/options.json similarity index 86% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-all/options.json index 0724294c9b..fe3e4d6cf9 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-all/options.json @@ -4,6 +4,7 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-all/output.mjs similarity index 94% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-all/output.mjs index 207b714432..ccc11ee5c7 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-all/output.mjs @@ -4,6 +4,7 @@ import "core-js/modules/es6.regexp.match"; import "core-js/modules/es6.promise"; import "core-js/modules/web.dom.iterable"; import "core-js/modules/es6.array.iterator"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es6.map"; import "core-js/modules/es6.string.iterator"; import "core-js/modules/es6.array.from"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/browserslist b/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/browserslist similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/browserslist rename to packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/browserslist diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/options.json similarity index 93% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/options.json index 3928236676..f0e1e2cba6 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/options.json @@ -7,6 +7,7 @@ "modules": false, "targets": { "esmodules": true }, "useBuiltIns": "usage", + "corejs": 2, "debug": true } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/input.mjs new file mode 100644 index 0000000000..bf62d9f751 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/input.mjs @@ -0,0 +1 @@ +[a, b] = c; diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/options.json new file mode 100644 index 0000000000..e58bc7432b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/output.mjs new file mode 100644 index 0000000000..bf62d9f751 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-assignment/output.mjs @@ -0,0 +1 @@ +[a, b] = c; diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/input.mjs new file mode 100644 index 0000000000..cb50832b47 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/input.mjs @@ -0,0 +1,3 @@ +try { + a(); +} catch([b, c]) { } diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/options.json new file mode 100644 index 0000000000..e58bc7432b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/output.mjs new file mode 100644 index 0000000000..830d37b850 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-catch/output.mjs @@ -0,0 +1,3 @@ +try { + a(); +} catch ([b, c]) {} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/input.mjs new file mode 100644 index 0000000000..027d407b5e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/input.mjs @@ -0,0 +1 @@ +for (let [a, b] in c); diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/options.json new file mode 100644 index 0000000000..e58bc7432b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/output.mjs new file mode 100644 index 0000000000..ca32ae08c5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-for-x/output.mjs @@ -0,0 +1,3 @@ +for (var [a, b] in c) { + ; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/input.mjs new file mode 100644 index 0000000000..0b8c72fe4c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/input.mjs @@ -0,0 +1 @@ +function a([b, c]) {} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/options.json new file mode 100644 index 0000000000..e58bc7432b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/output.mjs new file mode 100644 index 0000000000..db332778ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-params/output.mjs @@ -0,0 +1,3 @@ +function a(_ref) { + var [b, c] = _ref; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/input.mjs new file mode 100644 index 0000000000..e68aeb23a8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/input.mjs @@ -0,0 +1 @@ +const [a, b] = c; diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/options.json new file mode 100644 index 0000000000..e58bc7432b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/output.mjs new file mode 100644 index 0000000000..6f950af748 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-destructuring-variable-declaration/output.mjs @@ -0,0 +1 @@ +var [a, b] = c; diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-class-methods/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-class-methods/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-class-methods/options.json similarity index 86% rename from packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-class-methods/options.json index 0724294c9b..fe3e4d6cf9 100644 --- a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-class-methods/options.json @@ -4,6 +4,7 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-class-methods/output.mjs similarity index 91% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-class-methods/output.mjs index 094de00c82..113f840cdd 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-class-methods/output.mjs @@ -1,6 +1,7 @@ import "core-js/modules/es6.object.assign"; import "core-js/modules/web.dom.iterable"; import "core-js/modules/es6.array.iterator"; +import "core-js/modules/es6.object.to-string"; var objectClass = Object; var arrayInstance = []; var assignStr = "assign"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-instance-methods/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-instance-methods/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-instance-methods/options.json similarity index 86% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-instance-methods/options.json index 0724294c9b..fe3e4d6cf9 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-instance-methods/options.json @@ -4,6 +4,7 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-instance-methods/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-instance-methods/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-with/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-with/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-with/options.json similarity index 89% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-with/options.json index c7849884df..53c96ff421 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-with/options.json @@ -7,6 +7,7 @@ "node": "7" }, "useBuiltIns": "usage", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-with/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-with/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/options.json new file mode 100644 index 0000000000..ec23cad4bd --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "node": "11" + }, + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/output.mjs new file mode 100644 index 0000000000..9b8c02b13b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of-destructure-without/output.mjs @@ -0,0 +1,5 @@ +for (const { + a +} of foo) { + console.log(a); +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/input.mjs new file mode 100644 index 0000000000..9f6660a25f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/input.mjs @@ -0,0 +1 @@ +for (let a of b); diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/options.json new file mode 100644 index 0000000000..ef3d4db9f2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false, + "exclude": ["transform-for-of"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/output.mjs new file mode 100644 index 0000000000..0399fdab41 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-for-of/output.mjs @@ -0,0 +1,3 @@ +for (var a of b) { + ; +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods-native-support/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods-native-support/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods-native-support/options.json similarity index 78% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods-native-support/options.json index b1891c2b58..de79358da2 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods-native-support/options.json @@ -4,9 +4,10 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 2, "modules": false, "targets": { - "chrome": 58 + "chrome": 71 } } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods-native-support/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods-native-support/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods/options.json similarity index 86% rename from packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods/options.json index 0724294c9b..fe3e4d6cf9 100644 --- a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods/options.json @@ -4,6 +4,7 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods/output.mjs similarity index 97% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods/output.mjs index 7ea36860ca..e0f8fc879b 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-instance-methods/output.mjs @@ -15,6 +15,7 @@ import "core-js/modules/es7.array.includes"; import "core-js/modules/es6.string.includes"; import "core-js/modules/web.dom.iterable"; import "core-js/modules/es6.array.iterator"; +import "core-js/modules/es6.object.to-string"; import "core-js/modules/es6.map"; import "core-js/modules/es6.string.iterator"; import "core-js/modules/es6.array.from"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-modules-transform/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-modules-transform/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-modules-transform/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-modules-transform/options.json new file mode 100644 index 0000000000..32ed21fb6f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-modules-transform/options.json @@ -0,0 +1,11 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/output.js b/packages/babel-preset-env/test/fixtures/corejs2/usage-modules-transform/output.js similarity index 56% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/output.js rename to packages/babel-preset-env/test/fixtures/corejs2/usage-modules-transform/output.js index 0c96091886..4a62ea9e81 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/output.js +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-modules-transform/output.js @@ -2,4 +2,6 @@ require("core-js/modules/es6.promise"); +require("core-js/modules/es6.object.to-string"); + Promise; diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-native-support/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-native-support/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-native-support/options.json new file mode 100644 index 0000000000..de79358da2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-native-support/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false, + "targets": { + "chrome": 71 + } + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-native-support/output.mjs similarity index 91% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-native-support/output.mjs index c266710b0f..845aac57c5 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-native-support/output.mjs @@ -1,4 +1,3 @@ -import "core-js/modules/es7.symbol.async-iterator"; import "core-js/modules/web.dom.iterable"; Array.from; // static method diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-no-builtins/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-no-builtins/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-no-builtins/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-no-builtins/options.json new file mode 100644 index 0000000000..fe3e4d6cf9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-no-builtins/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-no-builtins/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-no-builtins/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/no-transform/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-no-transform/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/no-transform/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-no-transform/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/no-transform/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-no-transform/options.json similarity index 75% rename from packages/babel-preset-env/test/fixtures/preset-options/no-transform/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-no-transform/options.json index 993ea7009f..ff03663237 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/no-transform/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-no-transform/options.json @@ -7,7 +7,8 @@ "chrome": "55" }, "modules": false, - "useBuiltIns": "usage" + "useBuiltIns": "usage", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/no-transform/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-no-transform/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/no-transform/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-no-transform/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/number-ie11/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-number-ie-11/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/number-ie11/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-number-ie-11/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/number-ie11/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-number-ie-11/options.json similarity index 89% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/number-ie11/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-number-ie-11/options.json index a7327659bd..e793b91733 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/number-ie11/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-number-ie-11/options.json @@ -7,6 +7,7 @@ "ie": "11" }, "useBuiltIns": "usage", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/number-ie11/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-number-ie-11/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/number-ie11/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-number-ie-11/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-all/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-promise-all/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-all/options.json similarity index 90% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-promise-all/options.json index eeb3ed89dd..133e1e9298 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-all/options.json @@ -7,6 +7,7 @@ "browsers": ["ie > 10"] }, "useBuiltIns": "usage", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-all/output.mjs similarity index 84% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-promise-all/output.mjs index 2a50ee751f..199377053c 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-all/output.mjs @@ -2,6 +2,7 @@ import "core-js/modules/web.dom.iterable"; import "core-js/modules/es6.array.iterator"; import "core-js/modules/es6.string.iterator"; import "core-js/modules/es6.promise"; +import "core-js/modules/es6.object.to-string"; var p = Promise.resolve(0); Promise.all([p]).then(function (outcome) { alert("OK"); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-finally/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-promise-finally/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-finally/options.json similarity index 90% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-promise-finally/options.json index eeb3ed89dd..133e1e9298 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-finally/options.json @@ -7,6 +7,7 @@ "browsers": ["ie > 10"] }, "useBuiltIns": "usage", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-finally/output.mjs similarity index 76% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-promise-finally/output.mjs index 966401f6c6..a2103a5120 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-finally/output.mjs @@ -1,5 +1,6 @@ import "core-js/modules/es7.promise.finally"; import "core-js/modules/es6.promise"; +import "core-js/modules/es6.object.to-string"; var p = Promise.resolve(0); p.finally(function () { alert("OK"); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-race/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-promise-race/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-race/options.json similarity index 90% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-promise-race/options.json index eeb3ed89dd..133e1e9298 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-race/options.json @@ -7,6 +7,7 @@ "browsers": ["ie > 10"] }, "useBuiltIns": "usage", + "corejs": 2, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-race/output.mjs similarity index 84% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-promise-race/output.mjs index 099125598e..b4a03612d0 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-promise-race/output.mjs @@ -2,6 +2,7 @@ import "core-js/modules/web.dom.iterable"; import "core-js/modules/es6.array.iterator"; import "core-js/modules/es6.string.iterator"; import "core-js/modules/es6.promise"; +import "core-js/modules/es6.object.to-string"; var p = Promise.resolve(0); Promise.race([p]).then(function (outcome) { alert("OK"); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-and-promise-native-support/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-and-promise-native-support/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-and-promise-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-and-promise-native-support/options.json new file mode 100644 index 0000000000..a1b9ada1e8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-and-promise-native-support/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false, + "targets": { + "chrome": 70 + } + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-and-promise-native-support/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-and-promise-native-support/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-native-support/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-native-support/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-native-support/options.json similarity index 89% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-native-support/options.json index 708d581db6..d5fc31f154 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-native-support/options.json @@ -4,6 +4,7 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 2, "modules": false, "targets": { "chrome": 55 diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-native-support/output.mjs new file mode 100644 index 0000000000..5d965c6200 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async-native-support/output.mjs @@ -0,0 +1 @@ +async function a() {} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/input.mjs new file mode 100644 index 0000000000..8f6724b27f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/input.mjs @@ -0,0 +1 @@ +async function a(){} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/options.json new file mode 100644 index 0000000000..fe3e4d6cf9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/output.mjs similarity index 96% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/output.mjs index c0cd6ca5ef..db18b8bfe1 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/output.mjs +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-async/output.mjs @@ -1,5 +1,6 @@ import "regenerator-runtime/runtime"; import "core-js/modules/es6.promise"; +import "core-js/modules/es6.object.to-string"; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator-native-support/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator-native-support/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator-native-support/options.json similarity index 89% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator-native-support/options.json index 455a456415..2386a90410 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator-native-support/options.json @@ -4,6 +4,7 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 2, "modules": false, "targets": { "node": 6 diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator-native-support/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator-native-support/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator/options.json new file mode 100644 index 0000000000..fe3e4d6cf9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-regenerator-used-generator/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-remove-babel-polyfill-import/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-remove-babel-polyfill-import/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-remove-babel-polyfill-import/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-remove-babel-polyfill-import/options.json new file mode 100644 index 0000000000..fe3e4d6cf9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-remove-babel-polyfill-import/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/input.js b/packages/babel-preset-env/test/fixtures/corejs2/usage-shippedProposals/input.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/input.js rename to packages/babel-preset-env/test/fixtures/corejs2/usage-shippedProposals/input.js diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-shippedProposals/options.json similarity index 72% rename from packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-shippedProposals/options.json index 1f13f288b9..1ff3addd49 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-shippedProposals/options.json @@ -5,7 +5,8 @@ "../../../../lib", { "shippedProposals": true, - "useBuiltIns": "usage" + "useBuiltIns": "usage", + "corejs": 2 } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/output.js b/packages/babel-preset-env/test/fixtures/corejs2/usage-shippedProposals/output.js similarity index 98% rename from packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/output.js rename to packages/babel-preset-env/test/fixtures/corejs2/usage-shippedProposals/output.js index fb7a042bd8..b5161d5ea2 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/output.js +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-shippedProposals/output.js @@ -22,6 +22,8 @@ require("core-js/modules/es6.symbol"); require("core-js/modules/es6.promise"); +require("core-js/modules/es6.object.to-string"); + function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/input.js b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script-query/input.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/input.js rename to packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script-query/input.js diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script-query/options.json similarity index 91% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script-query/options.json index b9f676d131..5bf97a806e 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script-query/options.json @@ -8,6 +8,7 @@ "node": "4.0.0" }, "useBuiltIns": "usage", + "corejs": 2, "shippedProposals": true } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/output.js b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script-query/output.js similarity index 79% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/output.js rename to packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script-query/output.js index d98c7e41c6..6f953a53d4 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/output.js +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script-query/output.js @@ -2,6 +2,8 @@ require("core-js/modules/es7.array.includes"); require("core-js/modules/es6.promise"); +require("core-js/modules/es6.object.to-string"); + require("foo"); var x = new Promise(function (resolve) { diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/input.js b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script/input.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/input.js rename to packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script/input.js diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script/options.json similarity index 91% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script/options.json index b9f676d131..5bf97a806e 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script/options.json @@ -8,6 +8,7 @@ "node": "4.0.0" }, "useBuiltIns": "usage", + "corejs": 2, "shippedProposals": true } ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/output.js b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script/output.js similarity index 79% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/output.js rename to packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script/output.js index d98c7e41c6..6f953a53d4 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/output.js +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-source-type-script/output.js @@ -2,6 +2,8 @@ require("core-js/modules/es7.array.includes"); require("core-js/modules/es6.promise"); +require("core-js/modules/es6.object.to-string"); + require("foo"); var x = new Promise(function (resolve) { diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-spread/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-spread/input.mjs new file mode 100644 index 0000000000..457ddbbd55 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-spread/input.mjs @@ -0,0 +1 @@ +a = [b, ...c]; diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-spread/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-spread/options.json new file mode 100644 index 0000000000..fe86765f38 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-spread/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false, + "exclude": ["transform-spread"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-spread/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-spread/output.mjs new file mode 100644 index 0000000000..457ddbbd55 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-spread/output.mjs @@ -0,0 +1 @@ +a = [b, ...c]; diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator-in/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator-in/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator-in/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator-in/options.json new file mode 100644 index 0000000000..fe3e4d6cf9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator-in/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator-in/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator-in/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator/options.json new file mode 100644 index 0000000000..fe3e4d6cf9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-symbol-iterator/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-timers/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-timers/input.mjs new file mode 100644 index 0000000000..0f5be0d2da --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-timers/input.mjs @@ -0,0 +1,5 @@ +Promise.resolve().then(it => { + setTimeout(foo, 1, 2); + setInterval(foo, 1, 2); + setImmediate(foo, 1, 2); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-timers/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-timers/options.json new file mode 100644 index 0000000000..fe3e4d6cf9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-timers/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-timers/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-timers/output.mjs new file mode 100644 index 0000000000..9f0806068b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-timers/output.mjs @@ -0,0 +1,7 @@ +import "core-js/modules/es6.promise"; +import "core-js/modules/es6.object.to-string"; +Promise.resolve().then(function (it) { + setTimeout(foo, 1, 2); + setInterval(foo, 1, 2); + setImmediate(foo, 1, 2); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/input.mjs new file mode 100644 index 0000000000..b0bc068aa0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/input.mjs @@ -0,0 +1 @@ +new Int8Array(1); diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/options.json new file mode 100644 index 0000000000..057e2ed59b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "targets": { + "edge": "13" + }, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/output.mjs new file mode 100644 index 0000000000..b0bc068aa0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-edge-13/output.mjs @@ -0,0 +1 @@ +new Int8Array(1); diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/input.mjs new file mode 100644 index 0000000000..2394d067f8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/input.mjs @@ -0,0 +1 @@ +Int8Array.of(); diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/options.json new file mode 100644 index 0000000000..fe3e4d6cf9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/output.mjs new file mode 100644 index 0000000000..995d901c5c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array-static/output.mjs @@ -0,0 +1,2 @@ +import "core-js/modules/es6.typed.int8-array"; +Int8Array.of(); diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/input.mjs new file mode 100644 index 0000000000..b0bc068aa0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/input.mjs @@ -0,0 +1 @@ +new Int8Array(1); diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/options.json new file mode 100644 index 0000000000..fe3e4d6cf9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/output.mjs new file mode 100644 index 0000000000..5f5982426d --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-typed-array/output.mjs @@ -0,0 +1,2 @@ +import "core-js/modules/es6.typed.int8-array"; +new Int8Array(1); diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-non-star/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/input.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-yield-non-star/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-non-star/options.json similarity index 89% rename from packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-yield-non-star/options.json index 66d4ffba1a..dae54735f2 100644 --- a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-non-star/options.json @@ -4,6 +4,7 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 2, "targets": { "chrome": 55 }, diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-non-star/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-yield-non-star/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-star/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-star/input.mjs new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-star/input.mjs @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-star/options.json similarity index 89% rename from packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/options.json rename to packages/babel-preset-env/test/fixtures/corejs2/usage-yield-star/options.json index 66d4ffba1a..dae54735f2 100644 --- a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-star/options.json @@ -4,6 +4,7 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 2, "targets": { "chrome": 55 }, diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-yield-star/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/output.mjs rename to packages/babel-preset-env/test/fixtures/corejs2/usage-yield-star/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/corejs3/.entry-all-exec/exec.js b/packages/babel-preset-env/test/fixtures/corejs3/.entry-all-exec/exec.js new file mode 100644 index 0000000000..dc2f5fc562 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/.entry-all-exec/exec.js @@ -0,0 +1,3 @@ +if (parseInt(process.version.slice(1)) > 5) { + require('core-js'); +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/.use-builtins-all-exec/options.json b/packages/babel-preset-env/test/fixtures/corejs3/.entry-all-exec/options.json similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/.use-builtins-all-exec/options.json rename to packages/babel-preset-env/test/fixtures/corejs3/.entry-all-exec/options.json diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/input.mjs new file mode 100644 index 0000000000..c0ce4c954e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/input.mjs @@ -0,0 +1,2 @@ +import 'core-js'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/output.mjs new file mode 100644 index 0000000000..5e6fe80b6a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-all-chrome-71/output.mjs @@ -0,0 +1,85 @@ +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/esnext.aggregate-error"; +import "core-js/modules/esnext.array.last-index"; +import "core-js/modules/esnext.array.last-item"; +import "core-js/modules/esnext.composite-key"; +import "core-js/modules/esnext.composite-symbol"; +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.from"; +import "core-js/modules/esnext.map.group-by"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-by"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.of"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.math.clamp"; +import "core-js/modules/esnext.math.deg-per-rad"; +import "core-js/modules/esnext.math.degrees"; +import "core-js/modules/esnext.math.fscale"; +import "core-js/modules/esnext.math.iaddh"; +import "core-js/modules/esnext.math.imulh"; +import "core-js/modules/esnext.math.isubh"; +import "core-js/modules/esnext.math.rad-per-deg"; +import "core-js/modules/esnext.math.radians"; +import "core-js/modules/esnext.math.scale"; +import "core-js/modules/esnext.math.seeded-prng"; +import "core-js/modules/esnext.math.signbit"; +import "core-js/modules/esnext.math.umulh"; +import "core-js/modules/esnext.number.from-string"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.promise.all-settled"; +import "core-js/modules/esnext.promise.any"; +import "core-js/modules/esnext.promise.try"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.at"; +import "core-js/modules/esnext.string.code-points"; +import "core-js/modules/esnext.string.match-all"; +import "core-js/modules/esnext.string.replace-all"; +import "core-js/modules/esnext.symbol.dispose"; +import "core-js/modules/esnext.symbol.observable"; +import "core-js/modules/esnext.symbol.pattern-match"; +import "core-js/modules/esnext.weak-map.delete-all"; +import "core-js/modules/esnext.weak-map.from"; +import "core-js/modules/esnext.weak-map.of"; +import "core-js/modules/esnext.weak-set.add-all"; +import "core-js/modules/esnext.weak-set.delete-all"; +import "core-js/modules/esnext.weak-set.from"; +import "core-js/modules/esnext.weak-set.of"; +import "core-js/modules/web.immediate"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-all/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-all/input.mjs new file mode 100644 index 0000000000..c0ce4c954e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-all/input.mjs @@ -0,0 +1,2 @@ +import 'core-js'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-all/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-all/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-all/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-all/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-all/output.mjs new file mode 100644 index 0000000000..de6d3f35f1 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-all/output.mjs @@ -0,0 +1,291 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.symbol.has-instance"; +import "core-js/modules/es.symbol.is-concat-spreadable"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.symbol.replace"; +import "core-js/modules/es.symbol.search"; +import "core-js/modules/es.symbol.species"; +import "core-js/modules/es.symbol.split"; +import "core-js/modules/es.symbol.to-primitive"; +import "core-js/modules/es.symbol.to-string-tag"; +import "core-js/modules/es.symbol.unscopables"; +import "core-js/modules/es.array.concat"; +import "core-js/modules/es.array.copy-within"; +import "core-js/modules/es.array.every"; +import "core-js/modules/es.array.fill"; +import "core-js/modules/es.array.filter"; +import "core-js/modules/es.array.find"; +import "core-js/modules/es.array.find-index"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.for-each"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.index-of"; +import "core-js/modules/es.array.is-array"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.join"; +import "core-js/modules/es.array.last-index-of"; +import "core-js/modules/es.array.map"; +import "core-js/modules/es.array.of"; +import "core-js/modules/es.array.reduce"; +import "core-js/modules/es.array.reduce-right"; +import "core-js/modules/es.array.reverse"; +import "core-js/modules/es.array.slice"; +import "core-js/modules/es.array.some"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.species"; +import "core-js/modules/es.array.splice"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.array-buffer.constructor"; +import "core-js/modules/es.array-buffer.is-view"; +import "core-js/modules/es.array-buffer.slice"; +import "core-js/modules/es.data-view"; +import "core-js/modules/es.date.now"; +import "core-js/modules/es.date.to-iso-string"; +import "core-js/modules/es.date.to-json"; +import "core-js/modules/es.date.to-primitive"; +import "core-js/modules/es.date.to-string"; +import "core-js/modules/es.function.bind"; +import "core-js/modules/es.function.has-instance"; +import "core-js/modules/es.function.name"; +import "core-js/modules/es.json.to-string-tag"; +import "core-js/modules/es.map"; +import "core-js/modules/es.math.acosh"; +import "core-js/modules/es.math.asinh"; +import "core-js/modules/es.math.atanh"; +import "core-js/modules/es.math.cbrt"; +import "core-js/modules/es.math.clz32"; +import "core-js/modules/es.math.cosh"; +import "core-js/modules/es.math.expm1"; +import "core-js/modules/es.math.fround"; +import "core-js/modules/es.math.hypot"; +import "core-js/modules/es.math.imul"; +import "core-js/modules/es.math.log10"; +import "core-js/modules/es.math.log1p"; +import "core-js/modules/es.math.log2"; +import "core-js/modules/es.math.sign"; +import "core-js/modules/es.math.sinh"; +import "core-js/modules/es.math.tanh"; +import "core-js/modules/es.math.to-string-tag"; +import "core-js/modules/es.math.trunc"; +import "core-js/modules/es.number.constructor"; +import "core-js/modules/es.number.epsilon"; +import "core-js/modules/es.number.is-finite"; +import "core-js/modules/es.number.is-integer"; +import "core-js/modules/es.number.is-nan"; +import "core-js/modules/es.number.is-safe-integer"; +import "core-js/modules/es.number.max-safe-integer"; +import "core-js/modules/es.number.min-safe-integer"; +import "core-js/modules/es.number.parse-float"; +import "core-js/modules/es.number.parse-int"; +import "core-js/modules/es.number.to-fixed"; +import "core-js/modules/es.number.to-precision"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.create"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-properties"; +import "core-js/modules/es.object.define-property"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.freeze"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.get-own-property-descriptor"; +import "core-js/modules/es.object.get-own-property-descriptors"; +import "core-js/modules/es.object.get-own-property-names"; +import "core-js/modules/es.object.get-prototype-of"; +import "core-js/modules/es.object.is"; +import "core-js/modules/es.object.is-extensible"; +import "core-js/modules/es.object.is-frozen"; +import "core-js/modules/es.object.is-sealed"; +import "core-js/modules/es.object.keys"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.object.prevent-extensions"; +import "core-js/modules/es.object.seal"; +import "core-js/modules/es.object.set-prototype-of"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.object.values"; +import "core-js/modules/es.parse-float"; +import "core-js/modules/es.parse-int"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.reflect.apply"; +import "core-js/modules/es.reflect.construct"; +import "core-js/modules/es.reflect.define-property"; +import "core-js/modules/es.reflect.delete-property"; +import "core-js/modules/es.reflect.get"; +import "core-js/modules/es.reflect.get-own-property-descriptor"; +import "core-js/modules/es.reflect.get-prototype-of"; +import "core-js/modules/es.reflect.has"; +import "core-js/modules/es.reflect.is-extensible"; +import "core-js/modules/es.reflect.own-keys"; +import "core-js/modules/es.reflect.prevent-extensions"; +import "core-js/modules/es.reflect.set"; +import "core-js/modules/es.reflect.set-prototype-of"; +import "core-js/modules/es.regexp.constructor"; +import "core-js/modules/es.regexp.exec"; +import "core-js/modules/es.regexp.flags"; +import "core-js/modules/es.regexp.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.code-point-at"; +import "core-js/modules/es.string.ends-with"; +import "core-js/modules/es.string.from-code-point"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.match"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.raw"; +import "core-js/modules/es.string.repeat"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.search"; +import "core-js/modules/es.string.split"; +import "core-js/modules/es.string.starts-with"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/es.string.anchor"; +import "core-js/modules/es.string.big"; +import "core-js/modules/es.string.blink"; +import "core-js/modules/es.string.bold"; +import "core-js/modules/es.string.fixed"; +import "core-js/modules/es.string.fontcolor"; +import "core-js/modules/es.string.fontsize"; +import "core-js/modules/es.string.italics"; +import "core-js/modules/es.string.link"; +import "core-js/modules/es.string.small"; +import "core-js/modules/es.string.strike"; +import "core-js/modules/es.string.sub"; +import "core-js/modules/es.string.sup"; +import "core-js/modules/es.typed-array.float32-array"; +import "core-js/modules/es.typed-array.float64-array"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.int16-array"; +import "core-js/modules/es.typed-array.int32-array"; +import "core-js/modules/es.typed-array.uint8-array"; +import "core-js/modules/es.typed-array.uint8-clamped-array"; +import "core-js/modules/es.typed-array.uint16-array"; +import "core-js/modules/es.typed-array.uint32-array"; +import "core-js/modules/es.typed-array.copy-within"; +import "core-js/modules/es.typed-array.every"; +import "core-js/modules/es.typed-array.fill"; +import "core-js/modules/es.typed-array.filter"; +import "core-js/modules/es.typed-array.find"; +import "core-js/modules/es.typed-array.find-index"; +import "core-js/modules/es.typed-array.for-each"; +import "core-js/modules/es.typed-array.from"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.index-of"; +import "core-js/modules/es.typed-array.iterator"; +import "core-js/modules/es.typed-array.join"; +import "core-js/modules/es.typed-array.last-index-of"; +import "core-js/modules/es.typed-array.map"; +import "core-js/modules/es.typed-array.of"; +import "core-js/modules/es.typed-array.reduce"; +import "core-js/modules/es.typed-array.reduce-right"; +import "core-js/modules/es.typed-array.reverse"; +import "core-js/modules/es.typed-array.set"; +import "core-js/modules/es.typed-array.slice"; +import "core-js/modules/es.typed-array.some"; +import "core-js/modules/es.typed-array.sort"; +import "core-js/modules/es.typed-array.subarray"; +import "core-js/modules/es.typed-array.to-locale-string"; +import "core-js/modules/es.typed-array.to-string"; +import "core-js/modules/es.weak-map"; +import "core-js/modules/es.weak-set"; +import "core-js/modules/esnext.aggregate-error"; +import "core-js/modules/esnext.array.last-index"; +import "core-js/modules/esnext.array.last-item"; +import "core-js/modules/esnext.composite-key"; +import "core-js/modules/esnext.composite-symbol"; +import "core-js/modules/esnext.global-this"; +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.from"; +import "core-js/modules/esnext.map.group-by"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-by"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.of"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.math.clamp"; +import "core-js/modules/esnext.math.deg-per-rad"; +import "core-js/modules/esnext.math.degrees"; +import "core-js/modules/esnext.math.fscale"; +import "core-js/modules/esnext.math.iaddh"; +import "core-js/modules/esnext.math.imulh"; +import "core-js/modules/esnext.math.isubh"; +import "core-js/modules/esnext.math.rad-per-deg"; +import "core-js/modules/esnext.math.radians"; +import "core-js/modules/esnext.math.scale"; +import "core-js/modules/esnext.math.seeded-prng"; +import "core-js/modules/esnext.math.signbit"; +import "core-js/modules/esnext.math.umulh"; +import "core-js/modules/esnext.number.from-string"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.promise.all-settled"; +import "core-js/modules/esnext.promise.any"; +import "core-js/modules/esnext.promise.try"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.at"; +import "core-js/modules/esnext.string.code-points"; +import "core-js/modules/esnext.string.match-all"; +import "core-js/modules/esnext.string.replace-all"; +import "core-js/modules/esnext.symbol.dispose"; +import "core-js/modules/esnext.symbol.observable"; +import "core-js/modules/esnext.symbol.pattern-match"; +import "core-js/modules/esnext.weak-map.delete-all"; +import "core-js/modules/esnext.weak-map.from"; +import "core-js/modules/esnext.weak-map.of"; +import "core-js/modules/esnext.weak-set.add-all"; +import "core-js/modules/esnext.weak-set.delete-all"; +import "core-js/modules/esnext.weak-set.from"; +import "core-js/modules/esnext.weak-set.of"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.timers"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/input.mjs new file mode 100644 index 0000000000..c3030bdd62 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/input.mjs @@ -0,0 +1 @@ +import '@babel/polyfill'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/output.mjs new file mode 100644 index 0000000000..c3030bdd62 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-babel-polyfill/output.mjs @@ -0,0 +1 @@ +import '@babel/polyfill'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/input.mjs new file mode 100644 index 0000000000..4709961aee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/input.mjs @@ -0,0 +1,3 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/options.json new file mode 100644 index 0000000000..8d81267b67 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": 48 + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/output.mjs new file mode 100644 index 0000000000..4714da27c5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-48/output.mjs @@ -0,0 +1,96 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.symbol.has-instance"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.symbol.replace"; +import "core-js/modules/es.symbol.search"; +import "core-js/modules/es.symbol.species"; +import "core-js/modules/es.symbol.split"; +import "core-js/modules/es.symbol.to-string-tag"; +import "core-js/modules/es.array.concat"; +import "core-js/modules/es.array.filter"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.index-of"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.last-index-of"; +import "core-js/modules/es.array.map"; +import "core-js/modules/es.array.slice"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.species"; +import "core-js/modules/es.array.splice"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.function.has-instance"; +import "core-js/modules/es.json.to-string-tag"; +import "core-js/modules/es.map"; +import "core-js/modules/es.math.acosh"; +import "core-js/modules/es.math.to-string-tag"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.get-own-property-descriptors"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.object.values"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.reflect.apply"; +import "core-js/modules/es.reflect.construct"; +import "core-js/modules/es.reflect.define-property"; +import "core-js/modules/es.reflect.delete-property"; +import "core-js/modules/es.reflect.get"; +import "core-js/modules/es.reflect.get-own-property-descriptor"; +import "core-js/modules/es.reflect.get-prototype-of"; +import "core-js/modules/es.reflect.has"; +import "core-js/modules/es.reflect.is-extensible"; +import "core-js/modules/es.reflect.own-keys"; +import "core-js/modules/es.reflect.prevent-extensions"; +import "core-js/modules/es.reflect.set"; +import "core-js/modules/es.reflect.set-prototype-of"; +import "core-js/modules/es.regexp.constructor"; +import "core-js/modules/es.regexp.flags"; +import "core-js/modules/es.regexp.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.ends-with"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.match"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.search"; +import "core-js/modules/es.string.split"; +import "core-js/modules/es.string.starts-with"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/es.typed-array.float32-array"; +import "core-js/modules/es.typed-array.float64-array"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.int16-array"; +import "core-js/modules/es.typed-array.int32-array"; +import "core-js/modules/es.typed-array.uint8-array"; +import "core-js/modules/es.typed-array.uint8-clamped-array"; +import "core-js/modules/es.typed-array.uint16-array"; +import "core-js/modules/es.typed-array.uint32-array"; +import "core-js/modules/es.typed-array.from"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.of"; +import "core-js/modules/es.typed-array.to-string"; +import "core-js/modules/es.weak-map"; +import "core-js/modules/es.weak-set"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; +Math.pow(1, 2); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/input.mjs new file mode 100644 index 0000000000..4709961aee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/input.mjs @@ -0,0 +1,3 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/options.json new file mode 100644 index 0000000000..20c5a15f21 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": 49 + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/output.mjs new file mode 100644 index 0000000000..d38ec27429 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-49/output.mjs @@ -0,0 +1,77 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.symbol.has-instance"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.symbol.replace"; +import "core-js/modules/es.symbol.search"; +import "core-js/modules/es.symbol.species"; +import "core-js/modules/es.symbol.split"; +import "core-js/modules/es.array.concat"; +import "core-js/modules/es.array.filter"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.index-of"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.last-index-of"; +import "core-js/modules/es.array.map"; +import "core-js/modules/es.array.slice"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.species"; +import "core-js/modules/es.array.splice"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.function.has-instance"; +import "core-js/modules/es.json.to-string-tag"; +import "core-js/modules/es.map"; +import "core-js/modules/es.math.acosh"; +import "core-js/modules/es.math.to-string-tag"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.get-own-property-descriptors"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.object.values"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.regexp.constructor"; +import "core-js/modules/es.regexp.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.ends-with"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.match"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.search"; +import "core-js/modules/es.string.split"; +import "core-js/modules/es.string.starts-with"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/es.typed-array.float32-array"; +import "core-js/modules/es.typed-array.float64-array"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.int16-array"; +import "core-js/modules/es.typed-array.int32-array"; +import "core-js/modules/es.typed-array.uint8-array"; +import "core-js/modules/es.typed-array.uint8-clamped-array"; +import "core-js/modules/es.typed-array.uint16-array"; +import "core-js/modules/es.typed-array.uint32-array"; +import "core-js/modules/es.typed-array.from"; +import "core-js/modules/es.typed-array.of"; +import "core-js/modules/es.typed-array.to-string"; +import "core-js/modules/es.weak-map"; +import "core-js/modules/es.weak-set"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; +Math.pow(1, 2); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/input.mjs new file mode 100644 index 0000000000..dc9866842e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/input.mjs @@ -0,0 +1,17 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; + +const foo = { + a: true, +}; + +const bar = { + ...foo, + b: false, +}; + +async function baz() { + for await (const x of someAsyncThing()) { + console.log(x); + } +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/options.json new file mode 100644 index 0000000000..68c70de63a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "66" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/output.mjs new file mode 100644 index 0000000000..f367b9447d --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-66/output.mjs @@ -0,0 +1,23 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url.to-json"; +const foo = { + a: true +}; +const bar = { ...foo, + b: false +}; + +async function baz() { + for await (const x of someAsyncThing()) { + console.log(x); + } +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/input.mjs new file mode 100644 index 0000000000..dc9866842e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/input.mjs @@ -0,0 +1,17 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; + +const foo = { + a: true, +}; + +const bar = { + ...foo, + b: false, +}; + +async function baz() { + for await (const x of someAsyncThing()) { + console.log(x); + } +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/output.mjs new file mode 100644 index 0000000000..e7e57e8ebb --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chrome-71/output.mjs @@ -0,0 +1,16 @@ +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/web.immediate"; +const foo = { + a: true +}; +const bar = { ...foo, + b: false +}; + +async function baz() { + for await (const x of someAsyncThing()) { + console.log(x); + } +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/input.mjs new file mode 100644 index 0000000000..4709961aee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/input.mjs @@ -0,0 +1,3 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/options.json new file mode 100644 index 0000000000..64487f4c5f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "browsers": "chromeandroid 59" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/output.mjs new file mode 100644 index 0000000000..1adcc28248 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-chromeandroid/output.mjs @@ -0,0 +1,5 @@ +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/web.immediate"; +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-electron/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-electron/input.mjs new file mode 100644 index 0000000000..6d00700f42 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-electron/input.mjs @@ -0,0 +1,4 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; + +a ** b; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-electron/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-electron/options.json new file mode 100644 index 0000000000..de3541c8af --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-electron/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "electron": "1.4" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-electron/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-electron/output.mjs new file mode 100644 index 0000000000..daf15be68f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-electron/output.mjs @@ -0,0 +1,29 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +a ** b; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/input.mjs new file mode 100644 index 0000000000..cda864f101 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/input.mjs @@ -0,0 +1,4 @@ +import 'core-js/es'; +import 'core-js/proposals'; +import 'core-js/stage'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/output.mjs new file mode 100644 index 0000000000..31397143f8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage-chrome-71/output.mjs @@ -0,0 +1,84 @@ +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/esnext.aggregate-error"; +import "core-js/modules/esnext.array.last-index"; +import "core-js/modules/esnext.array.last-item"; +import "core-js/modules/esnext.composite-key"; +import "core-js/modules/esnext.composite-symbol"; +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.from"; +import "core-js/modules/esnext.map.group-by"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-by"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.of"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.math.clamp"; +import "core-js/modules/esnext.math.deg-per-rad"; +import "core-js/modules/esnext.math.degrees"; +import "core-js/modules/esnext.math.fscale"; +import "core-js/modules/esnext.math.iaddh"; +import "core-js/modules/esnext.math.imulh"; +import "core-js/modules/esnext.math.isubh"; +import "core-js/modules/esnext.math.rad-per-deg"; +import "core-js/modules/esnext.math.radians"; +import "core-js/modules/esnext.math.scale"; +import "core-js/modules/esnext.math.seeded-prng"; +import "core-js/modules/esnext.math.signbit"; +import "core-js/modules/esnext.math.umulh"; +import "core-js/modules/esnext.number.from-string"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.promise.all-settled"; +import "core-js/modules/esnext.promise.any"; +import "core-js/modules/esnext.promise.try"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.at"; +import "core-js/modules/esnext.string.code-points"; +import "core-js/modules/esnext.string.match-all"; +import "core-js/modules/esnext.string.replace-all"; +import "core-js/modules/esnext.symbol.dispose"; +import "core-js/modules/esnext.symbol.observable"; +import "core-js/modules/esnext.symbol.pattern-match"; +import "core-js/modules/esnext.weak-map.delete-all"; +import "core-js/modules/esnext.weak-map.from"; +import "core-js/modules/esnext.weak-map.of"; +import "core-js/modules/esnext.weak-set.add-all"; +import "core-js/modules/esnext.weak-set.delete-all"; +import "core-js/modules/esnext.weak-set.from"; +import "core-js/modules/esnext.weak-set.of"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/input.mjs new file mode 100644 index 0000000000..cda864f101 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/input.mjs @@ -0,0 +1,4 @@ +import 'core-js/es'; +import 'core-js/proposals'; +import 'core-js/stage'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/output.mjs new file mode 100644 index 0000000000..51a04c11f0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-es-proposals-stage/output.mjs @@ -0,0 +1,286 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.symbol.has-instance"; +import "core-js/modules/es.symbol.is-concat-spreadable"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.symbol.replace"; +import "core-js/modules/es.symbol.search"; +import "core-js/modules/es.symbol.species"; +import "core-js/modules/es.symbol.split"; +import "core-js/modules/es.symbol.to-primitive"; +import "core-js/modules/es.symbol.to-string-tag"; +import "core-js/modules/es.symbol.unscopables"; +import "core-js/modules/es.array.concat"; +import "core-js/modules/es.array.copy-within"; +import "core-js/modules/es.array.every"; +import "core-js/modules/es.array.fill"; +import "core-js/modules/es.array.filter"; +import "core-js/modules/es.array.find"; +import "core-js/modules/es.array.find-index"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.for-each"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.index-of"; +import "core-js/modules/es.array.is-array"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.join"; +import "core-js/modules/es.array.last-index-of"; +import "core-js/modules/es.array.map"; +import "core-js/modules/es.array.of"; +import "core-js/modules/es.array.reduce"; +import "core-js/modules/es.array.reduce-right"; +import "core-js/modules/es.array.reverse"; +import "core-js/modules/es.array.slice"; +import "core-js/modules/es.array.some"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.species"; +import "core-js/modules/es.array.splice"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.array-buffer.constructor"; +import "core-js/modules/es.array-buffer.is-view"; +import "core-js/modules/es.array-buffer.slice"; +import "core-js/modules/es.data-view"; +import "core-js/modules/es.date.now"; +import "core-js/modules/es.date.to-iso-string"; +import "core-js/modules/es.date.to-json"; +import "core-js/modules/es.date.to-primitive"; +import "core-js/modules/es.date.to-string"; +import "core-js/modules/es.function.bind"; +import "core-js/modules/es.function.has-instance"; +import "core-js/modules/es.function.name"; +import "core-js/modules/es.json.to-string-tag"; +import "core-js/modules/es.map"; +import "core-js/modules/es.math.acosh"; +import "core-js/modules/es.math.asinh"; +import "core-js/modules/es.math.atanh"; +import "core-js/modules/es.math.cbrt"; +import "core-js/modules/es.math.clz32"; +import "core-js/modules/es.math.cosh"; +import "core-js/modules/es.math.expm1"; +import "core-js/modules/es.math.fround"; +import "core-js/modules/es.math.hypot"; +import "core-js/modules/es.math.imul"; +import "core-js/modules/es.math.log10"; +import "core-js/modules/es.math.log1p"; +import "core-js/modules/es.math.log2"; +import "core-js/modules/es.math.sign"; +import "core-js/modules/es.math.sinh"; +import "core-js/modules/es.math.tanh"; +import "core-js/modules/es.math.to-string-tag"; +import "core-js/modules/es.math.trunc"; +import "core-js/modules/es.number.constructor"; +import "core-js/modules/es.number.epsilon"; +import "core-js/modules/es.number.is-finite"; +import "core-js/modules/es.number.is-integer"; +import "core-js/modules/es.number.is-nan"; +import "core-js/modules/es.number.is-safe-integer"; +import "core-js/modules/es.number.max-safe-integer"; +import "core-js/modules/es.number.min-safe-integer"; +import "core-js/modules/es.number.parse-float"; +import "core-js/modules/es.number.parse-int"; +import "core-js/modules/es.number.to-fixed"; +import "core-js/modules/es.number.to-precision"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.create"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-properties"; +import "core-js/modules/es.object.define-property"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.freeze"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.get-own-property-descriptor"; +import "core-js/modules/es.object.get-own-property-descriptors"; +import "core-js/modules/es.object.get-own-property-names"; +import "core-js/modules/es.object.get-prototype-of"; +import "core-js/modules/es.object.is"; +import "core-js/modules/es.object.is-extensible"; +import "core-js/modules/es.object.is-frozen"; +import "core-js/modules/es.object.is-sealed"; +import "core-js/modules/es.object.keys"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.object.prevent-extensions"; +import "core-js/modules/es.object.seal"; +import "core-js/modules/es.object.set-prototype-of"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.object.values"; +import "core-js/modules/es.parse-float"; +import "core-js/modules/es.parse-int"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.reflect.apply"; +import "core-js/modules/es.reflect.construct"; +import "core-js/modules/es.reflect.define-property"; +import "core-js/modules/es.reflect.delete-property"; +import "core-js/modules/es.reflect.get"; +import "core-js/modules/es.reflect.get-own-property-descriptor"; +import "core-js/modules/es.reflect.get-prototype-of"; +import "core-js/modules/es.reflect.has"; +import "core-js/modules/es.reflect.is-extensible"; +import "core-js/modules/es.reflect.own-keys"; +import "core-js/modules/es.reflect.prevent-extensions"; +import "core-js/modules/es.reflect.set"; +import "core-js/modules/es.reflect.set-prototype-of"; +import "core-js/modules/es.regexp.constructor"; +import "core-js/modules/es.regexp.exec"; +import "core-js/modules/es.regexp.flags"; +import "core-js/modules/es.regexp.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.code-point-at"; +import "core-js/modules/es.string.ends-with"; +import "core-js/modules/es.string.from-code-point"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.match"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.raw"; +import "core-js/modules/es.string.repeat"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.search"; +import "core-js/modules/es.string.split"; +import "core-js/modules/es.string.starts-with"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/es.string.anchor"; +import "core-js/modules/es.string.big"; +import "core-js/modules/es.string.blink"; +import "core-js/modules/es.string.bold"; +import "core-js/modules/es.string.fixed"; +import "core-js/modules/es.string.fontcolor"; +import "core-js/modules/es.string.fontsize"; +import "core-js/modules/es.string.italics"; +import "core-js/modules/es.string.link"; +import "core-js/modules/es.string.small"; +import "core-js/modules/es.string.strike"; +import "core-js/modules/es.string.sub"; +import "core-js/modules/es.string.sup"; +import "core-js/modules/es.typed-array.float32-array"; +import "core-js/modules/es.typed-array.float64-array"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.int16-array"; +import "core-js/modules/es.typed-array.int32-array"; +import "core-js/modules/es.typed-array.uint8-array"; +import "core-js/modules/es.typed-array.uint8-clamped-array"; +import "core-js/modules/es.typed-array.uint16-array"; +import "core-js/modules/es.typed-array.uint32-array"; +import "core-js/modules/es.typed-array.copy-within"; +import "core-js/modules/es.typed-array.every"; +import "core-js/modules/es.typed-array.fill"; +import "core-js/modules/es.typed-array.filter"; +import "core-js/modules/es.typed-array.find"; +import "core-js/modules/es.typed-array.find-index"; +import "core-js/modules/es.typed-array.for-each"; +import "core-js/modules/es.typed-array.from"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.index-of"; +import "core-js/modules/es.typed-array.iterator"; +import "core-js/modules/es.typed-array.join"; +import "core-js/modules/es.typed-array.last-index-of"; +import "core-js/modules/es.typed-array.map"; +import "core-js/modules/es.typed-array.of"; +import "core-js/modules/es.typed-array.reduce"; +import "core-js/modules/es.typed-array.reduce-right"; +import "core-js/modules/es.typed-array.reverse"; +import "core-js/modules/es.typed-array.set"; +import "core-js/modules/es.typed-array.slice"; +import "core-js/modules/es.typed-array.some"; +import "core-js/modules/es.typed-array.sort"; +import "core-js/modules/es.typed-array.subarray"; +import "core-js/modules/es.typed-array.to-locale-string"; +import "core-js/modules/es.typed-array.to-string"; +import "core-js/modules/es.weak-map"; +import "core-js/modules/es.weak-set"; +import "core-js/modules/esnext.aggregate-error"; +import "core-js/modules/esnext.array.last-index"; +import "core-js/modules/esnext.array.last-item"; +import "core-js/modules/esnext.composite-key"; +import "core-js/modules/esnext.composite-symbol"; +import "core-js/modules/esnext.global-this"; +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.from"; +import "core-js/modules/esnext.map.group-by"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-by"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.of"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.math.clamp"; +import "core-js/modules/esnext.math.deg-per-rad"; +import "core-js/modules/esnext.math.degrees"; +import "core-js/modules/esnext.math.fscale"; +import "core-js/modules/esnext.math.iaddh"; +import "core-js/modules/esnext.math.imulh"; +import "core-js/modules/esnext.math.isubh"; +import "core-js/modules/esnext.math.rad-per-deg"; +import "core-js/modules/esnext.math.radians"; +import "core-js/modules/esnext.math.scale"; +import "core-js/modules/esnext.math.seeded-prng"; +import "core-js/modules/esnext.math.signbit"; +import "core-js/modules/esnext.math.umulh"; +import "core-js/modules/esnext.number.from-string"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.promise.all-settled"; +import "core-js/modules/esnext.promise.any"; +import "core-js/modules/esnext.promise.try"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.at"; +import "core-js/modules/esnext.string.code-points"; +import "core-js/modules/esnext.string.match-all"; +import "core-js/modules/esnext.string.replace-all"; +import "core-js/modules/esnext.symbol.dispose"; +import "core-js/modules/esnext.symbol.observable"; +import "core-js/modules/esnext.symbol.pattern-match"; +import "core-js/modules/esnext.weak-map.delete-all"; +import "core-js/modules/esnext.weak-map.from"; +import "core-js/modules/esnext.weak-map.of"; +import "core-js/modules/esnext.weak-set.add-all"; +import "core-js/modules/esnext.weak-set.delete-all"; +import "core-js/modules/esnext.weak-set.from"; +import "core-js/modules/esnext.weak-set.of"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/input.mjs new file mode 100644 index 0000000000..1dfe5978ed --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/input.mjs @@ -0,0 +1,4 @@ +import 'core-js/features/set'; +import 'core-js/features/array/from'; +import 'core-js/features/object/from-entries'; +import 'core-js/features/string/replace-all'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/output.mjs new file mode 100644 index 0000000000..709c4c46f3 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features-chrome-71/output.mjs @@ -0,0 +1,20 @@ +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.replace-all"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/input.mjs new file mode 100644 index 0000000000..1dfe5978ed --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/input.mjs @@ -0,0 +1,4 @@ +import 'core-js/features/set'; +import 'core-js/features/array/from'; +import 'core-js/features/object/from-entries'; +import 'core-js/features/string/replace-all'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/output.mjs new file mode 100644 index 0000000000..bd40e3a515 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-features/output.mjs @@ -0,0 +1,26 @@ +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.replace-all"; +import "core-js/modules/web.dom-collections.iterator"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/input.mjs new file mode 100644 index 0000000000..98845292d4 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/features/set'; +import 'core-js/features/something.new'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/output.mjs new file mode 100644 index 0000000000..db5f1173b2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-missed/output.mjs @@ -0,0 +1,19 @@ +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import 'core-js/features/something.new'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/input.mjs new file mode 100644 index 0000000000..461f89abcc --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/input.mjs @@ -0,0 +1,4 @@ +import 'core-js/es/object'; +import 'core-js/features/reflect'; +import 'core-js/something'; +import 'regenerator-runtime/runtime'; \ No newline at end of file diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/output.mjs new file mode 100644 index 0000000000..ef5c31db18 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed-chrome-71/output.mjs @@ -0,0 +1,11 @@ +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import 'core-js/something'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/input.mjs new file mode 100644 index 0000000000..694e78444f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/input.mjs @@ -0,0 +1,4 @@ +import 'core-js/es/object'; +import 'core-js/features/reflect'; +import 'core-js/something'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/output.mjs new file mode 100644 index 0000000000..24251fba89 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-mixed/output.mjs @@ -0,0 +1,52 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.json.to-string-tag"; +import "core-js/modules/es.math.to-string-tag"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.create"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-properties"; +import "core-js/modules/es.object.define-property"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.freeze"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.get-own-property-descriptor"; +import "core-js/modules/es.object.get-own-property-descriptors"; +import "core-js/modules/es.object.get-own-property-names"; +import "core-js/modules/es.object.get-prototype-of"; +import "core-js/modules/es.object.is"; +import "core-js/modules/es.object.is-extensible"; +import "core-js/modules/es.object.is-frozen"; +import "core-js/modules/es.object.is-sealed"; +import "core-js/modules/es.object.keys"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.object.prevent-extensions"; +import "core-js/modules/es.object.seal"; +import "core-js/modules/es.object.set-prototype-of"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.object.values"; +import "core-js/modules/es.reflect.apply"; +import "core-js/modules/es.reflect.construct"; +import "core-js/modules/es.reflect.define-property"; +import "core-js/modules/es.reflect.delete-property"; +import "core-js/modules/es.reflect.get"; +import "core-js/modules/es.reflect.get-own-property-descriptor"; +import "core-js/modules/es.reflect.get-prototype-of"; +import "core-js/modules/es.reflect.has"; +import "core-js/modules/es.reflect.is-extensible"; +import "core-js/modules/es.reflect.own-keys"; +import "core-js/modules/es.reflect.prevent-extensions"; +import "core-js/modules/es.reflect.set"; +import "core-js/modules/es.reflect.set-prototype-of"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import 'core-js/something'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/input.mjs new file mode 100644 index 0000000000..e761a4ac12 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/input.mjs @@ -0,0 +1,3 @@ +import 'core-js/modules/es.symbol'; +import 'core-js/modules/es.object.from-entries'; +import 'core-js/modules/esnext.string.replace-all'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/output.mjs new file mode 100644 index 0000000000..44a025d6a4 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules-chrome-71/output.mjs @@ -0,0 +1,2 @@ +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/esnext.string.replace-all"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/input.mjs new file mode 100644 index 0000000000..e761a4ac12 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/input.mjs @@ -0,0 +1,3 @@ +import 'core-js/modules/es.symbol'; +import 'core-js/modules/es.object.from-entries'; +import 'core-js/modules/esnext.string.replace-all'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/output.mjs new file mode 100644 index 0000000000..16b33e2fd0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-modules/output.mjs @@ -0,0 +1,3 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/esnext.string.replace-all"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/input.mjs new file mode 100644 index 0000000000..b721678e02 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/proposals'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/output.mjs new file mode 100644 index 0000000000..c010a7b5fc --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals-chrome-71/output.mjs @@ -0,0 +1,81 @@ +import "core-js/modules/esnext.aggregate-error"; +import "core-js/modules/esnext.array.last-index"; +import "core-js/modules/esnext.array.last-item"; +import "core-js/modules/esnext.composite-key"; +import "core-js/modules/esnext.composite-symbol"; +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.from"; +import "core-js/modules/esnext.map.group-by"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-by"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.of"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.math.clamp"; +import "core-js/modules/esnext.math.deg-per-rad"; +import "core-js/modules/esnext.math.degrees"; +import "core-js/modules/esnext.math.fscale"; +import "core-js/modules/esnext.math.iaddh"; +import "core-js/modules/esnext.math.imulh"; +import "core-js/modules/esnext.math.isubh"; +import "core-js/modules/esnext.math.rad-per-deg"; +import "core-js/modules/esnext.math.radians"; +import "core-js/modules/esnext.math.scale"; +import "core-js/modules/esnext.math.seeded-prng"; +import "core-js/modules/esnext.math.signbit"; +import "core-js/modules/esnext.math.umulh"; +import "core-js/modules/esnext.number.from-string"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.promise.all-settled"; +import "core-js/modules/esnext.promise.any"; +import "core-js/modules/esnext.promise.try"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.at"; +import "core-js/modules/esnext.string.code-points"; +import "core-js/modules/esnext.string.match-all"; +import "core-js/modules/esnext.string.replace-all"; +import "core-js/modules/esnext.symbol.dispose"; +import "core-js/modules/esnext.symbol.observable"; +import "core-js/modules/esnext.symbol.pattern-match"; +import "core-js/modules/esnext.weak-map.delete-all"; +import "core-js/modules/esnext.weak-map.from"; +import "core-js/modules/esnext.weak-map.of"; +import "core-js/modules/esnext.weak-set.add-all"; +import "core-js/modules/esnext.weak-set.delete-all"; +import "core-js/modules/esnext.weak-set.from"; +import "core-js/modules/esnext.weak-set.of"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/input.mjs new file mode 100644 index 0000000000..b721678e02 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/proposals'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/output.mjs new file mode 100644 index 0000000000..d59c98b717 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-proposals/output.mjs @@ -0,0 +1,86 @@ +import "core-js/modules/esnext.aggregate-error"; +import "core-js/modules/esnext.array.last-index"; +import "core-js/modules/esnext.array.last-item"; +import "core-js/modules/esnext.composite-key"; +import "core-js/modules/esnext.composite-symbol"; +import "core-js/modules/esnext.global-this"; +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.from"; +import "core-js/modules/esnext.map.group-by"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-by"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.of"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.math.clamp"; +import "core-js/modules/esnext.math.deg-per-rad"; +import "core-js/modules/esnext.math.degrees"; +import "core-js/modules/esnext.math.fscale"; +import "core-js/modules/esnext.math.iaddh"; +import "core-js/modules/esnext.math.imulh"; +import "core-js/modules/esnext.math.isubh"; +import "core-js/modules/esnext.math.rad-per-deg"; +import "core-js/modules/esnext.math.radians"; +import "core-js/modules/esnext.math.scale"; +import "core-js/modules/esnext.math.seeded-prng"; +import "core-js/modules/esnext.math.signbit"; +import "core-js/modules/esnext.math.umulh"; +import "core-js/modules/esnext.number.from-string"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.promise.all-settled"; +import "core-js/modules/esnext.promise.any"; +import "core-js/modules/esnext.promise.try"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.at"; +import "core-js/modules/esnext.string.code-points"; +import "core-js/modules/esnext.string.match-all"; +import "core-js/modules/esnext.string.replace-all"; +import "core-js/modules/esnext.symbol.dispose"; +import "core-js/modules/esnext.symbol.observable"; +import "core-js/modules/esnext.symbol.pattern-match"; +import "core-js/modules/esnext.weak-map.delete-all"; +import "core-js/modules/esnext.weak-map.from"; +import "core-js/modules/esnext.weak-map.of"; +import "core-js/modules/esnext.weak-set.add-all"; +import "core-js/modules/esnext.weak-set.delete-all"; +import "core-js/modules/esnext.weak-set.from"; +import "core-js/modules/esnext.weak-set.of"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/input.mjs new file mode 100644 index 0000000000..063b45ea11 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/input.mjs @@ -0,0 +1,3 @@ +import 'core-js/stable/set'; +import 'core-js/stable/array/from'; +import 'core-js/stable/object/from-entries'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/output.mjs new file mode 100644 index 0000000000..770311665f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable-chrome-71/output.mjs @@ -0,0 +1 @@ +import "core-js/modules/es.object.from-entries"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/input.mjs new file mode 100644 index 0000000000..063b45ea11 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/input.mjs @@ -0,0 +1,3 @@ +import 'core-js/stable/set'; +import 'core-js/stable/array/from'; +import 'core-js/stable/object/from-entries'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/output.mjs new file mode 100644 index 0000000000..896c1ad687 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stable/output.mjs @@ -0,0 +1,7 @@ +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/input.mjs new file mode 100644 index 0000000000..d7e24c275a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stage'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/output.mjs new file mode 100644 index 0000000000..c010a7b5fc --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage-chrome-71/output.mjs @@ -0,0 +1,81 @@ +import "core-js/modules/esnext.aggregate-error"; +import "core-js/modules/esnext.array.last-index"; +import "core-js/modules/esnext.array.last-item"; +import "core-js/modules/esnext.composite-key"; +import "core-js/modules/esnext.composite-symbol"; +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.from"; +import "core-js/modules/esnext.map.group-by"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-by"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.of"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.math.clamp"; +import "core-js/modules/esnext.math.deg-per-rad"; +import "core-js/modules/esnext.math.degrees"; +import "core-js/modules/esnext.math.fscale"; +import "core-js/modules/esnext.math.iaddh"; +import "core-js/modules/esnext.math.imulh"; +import "core-js/modules/esnext.math.isubh"; +import "core-js/modules/esnext.math.rad-per-deg"; +import "core-js/modules/esnext.math.radians"; +import "core-js/modules/esnext.math.scale"; +import "core-js/modules/esnext.math.seeded-prng"; +import "core-js/modules/esnext.math.signbit"; +import "core-js/modules/esnext.math.umulh"; +import "core-js/modules/esnext.number.from-string"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.promise.all-settled"; +import "core-js/modules/esnext.promise.any"; +import "core-js/modules/esnext.promise.try"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.at"; +import "core-js/modules/esnext.string.code-points"; +import "core-js/modules/esnext.string.match-all"; +import "core-js/modules/esnext.string.replace-all"; +import "core-js/modules/esnext.symbol.dispose"; +import "core-js/modules/esnext.symbol.observable"; +import "core-js/modules/esnext.symbol.pattern-match"; +import "core-js/modules/esnext.weak-map.delete-all"; +import "core-js/modules/esnext.weak-map.from"; +import "core-js/modules/esnext.weak-map.of"; +import "core-js/modules/esnext.weak-set.add-all"; +import "core-js/modules/esnext.weak-set.delete-all"; +import "core-js/modules/esnext.weak-set.from"; +import "core-js/modules/esnext.weak-set.of"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/input.mjs new file mode 100644 index 0000000000..d7e24c275a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stage'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/output.mjs new file mode 100644 index 0000000000..d59c98b717 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-stage/output.mjs @@ -0,0 +1,86 @@ +import "core-js/modules/esnext.aggregate-error"; +import "core-js/modules/esnext.array.last-index"; +import "core-js/modules/esnext.array.last-item"; +import "core-js/modules/esnext.composite-key"; +import "core-js/modules/esnext.composite-symbol"; +import "core-js/modules/esnext.global-this"; +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.from"; +import "core-js/modules/esnext.map.group-by"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-by"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.of"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.math.clamp"; +import "core-js/modules/esnext.math.deg-per-rad"; +import "core-js/modules/esnext.math.degrees"; +import "core-js/modules/esnext.math.fscale"; +import "core-js/modules/esnext.math.iaddh"; +import "core-js/modules/esnext.math.imulh"; +import "core-js/modules/esnext.math.isubh"; +import "core-js/modules/esnext.math.rad-per-deg"; +import "core-js/modules/esnext.math.radians"; +import "core-js/modules/esnext.math.scale"; +import "core-js/modules/esnext.math.seeded-prng"; +import "core-js/modules/esnext.math.signbit"; +import "core-js/modules/esnext.math.umulh"; +import "core-js/modules/esnext.number.from-string"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.promise.all-settled"; +import "core-js/modules/esnext.promise.any"; +import "core-js/modules/esnext.promise.try"; +import "core-js/modules/esnext.reflect.define-metadata"; +import "core-js/modules/esnext.reflect.delete-metadata"; +import "core-js/modules/esnext.reflect.get-metadata"; +import "core-js/modules/esnext.reflect.get-metadata-keys"; +import "core-js/modules/esnext.reflect.get-own-metadata"; +import "core-js/modules/esnext.reflect.get-own-metadata-keys"; +import "core-js/modules/esnext.reflect.has-metadata"; +import "core-js/modules/esnext.reflect.has-own-metadata"; +import "core-js/modules/esnext.reflect.metadata"; +import "core-js/modules/esnext.set.add-all"; +import "core-js/modules/esnext.set.delete-all"; +import "core-js/modules/esnext.set.difference"; +import "core-js/modules/esnext.set.every"; +import "core-js/modules/esnext.set.filter"; +import "core-js/modules/esnext.set.find"; +import "core-js/modules/esnext.set.from"; +import "core-js/modules/esnext.set.intersection"; +import "core-js/modules/esnext.set.is-disjoint-from"; +import "core-js/modules/esnext.set.is-subset-of"; +import "core-js/modules/esnext.set.is-superset-of"; +import "core-js/modules/esnext.set.join"; +import "core-js/modules/esnext.set.map"; +import "core-js/modules/esnext.set.of"; +import "core-js/modules/esnext.set.reduce"; +import "core-js/modules/esnext.set.some"; +import "core-js/modules/esnext.set.symmetric-difference"; +import "core-js/modules/esnext.set.union"; +import "core-js/modules/esnext.string.at"; +import "core-js/modules/esnext.string.code-points"; +import "core-js/modules/esnext.string.match-all"; +import "core-js/modules/esnext.string.replace-all"; +import "core-js/modules/esnext.symbol.dispose"; +import "core-js/modules/esnext.symbol.observable"; +import "core-js/modules/esnext.symbol.pattern-match"; +import "core-js/modules/esnext.weak-map.delete-all"; +import "core-js/modules/esnext.weak-map.from"; +import "core-js/modules/esnext.weak-map.of"; +import "core-js/modules/esnext.weak-set.add-all"; +import "core-js/modules/esnext.weak-set.delete-all"; +import "core-js/modules/esnext.weak-set.from"; +import "core-js/modules/esnext.weak-set.of"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/input.mjs new file mode 100644 index 0000000000..807283757d --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/web'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/output.mjs new file mode 100644 index 0000000000..6dbf8852bc --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web-chrome-71/output.mjs @@ -0,0 +1 @@ +import "core-js/modules/web.immediate"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/input.mjs new file mode 100644 index 0000000000..807283757d --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/web'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/output.mjs new file mode 100644 index 0000000000..37348c29d8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-entries-web/output.mjs @@ -0,0 +1,9 @@ +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.timers"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/options.json new file mode 100644 index 0000000000..f55b8ee608 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/options.json @@ -0,0 +1,16 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "ie": 11 + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/output.mjs new file mode 100644 index 0000000000..f6b2431273 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-11/output.mjs @@ -0,0 +1,181 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.symbol.has-instance"; +import "core-js/modules/es.symbol.is-concat-spreadable"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.symbol.replace"; +import "core-js/modules/es.symbol.search"; +import "core-js/modules/es.symbol.species"; +import "core-js/modules/es.symbol.split"; +import "core-js/modules/es.symbol.to-primitive"; +import "core-js/modules/es.symbol.to-string-tag"; +import "core-js/modules/es.symbol.unscopables"; +import "core-js/modules/es.array.concat"; +import "core-js/modules/es.array.copy-within"; +import "core-js/modules/es.array.fill"; +import "core-js/modules/es.array.filter"; +import "core-js/modules/es.array.find"; +import "core-js/modules/es.array.find-index"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.join"; +import "core-js/modules/es.array.map"; +import "core-js/modules/es.array.of"; +import "core-js/modules/es.array.slice"; +import "core-js/modules/es.array.species"; +import "core-js/modules/es.array.splice"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.array-buffer.constructor"; +import "core-js/modules/es.date.to-primitive"; +import "core-js/modules/es.function.has-instance"; +import "core-js/modules/es.function.name"; +import "core-js/modules/es.json.to-string-tag"; +import "core-js/modules/es.map"; +import "core-js/modules/es.math.acosh"; +import "core-js/modules/es.math.asinh"; +import "core-js/modules/es.math.atanh"; +import "core-js/modules/es.math.cbrt"; +import "core-js/modules/es.math.clz32"; +import "core-js/modules/es.math.cosh"; +import "core-js/modules/es.math.expm1"; +import "core-js/modules/es.math.fround"; +import "core-js/modules/es.math.hypot"; +import "core-js/modules/es.math.imul"; +import "core-js/modules/es.math.log10"; +import "core-js/modules/es.math.log1p"; +import "core-js/modules/es.math.log2"; +import "core-js/modules/es.math.sign"; +import "core-js/modules/es.math.sinh"; +import "core-js/modules/es.math.tanh"; +import "core-js/modules/es.math.to-string-tag"; +import "core-js/modules/es.math.trunc"; +import "core-js/modules/es.number.constructor"; +import "core-js/modules/es.number.epsilon"; +import "core-js/modules/es.number.is-finite"; +import "core-js/modules/es.number.is-integer"; +import "core-js/modules/es.number.is-nan"; +import "core-js/modules/es.number.is-safe-integer"; +import "core-js/modules/es.number.max-safe-integer"; +import "core-js/modules/es.number.min-safe-integer"; +import "core-js/modules/es.number.parse-float"; +import "core-js/modules/es.number.parse-int"; +import "core-js/modules/es.number.to-fixed"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.freeze"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.get-own-property-descriptor"; +import "core-js/modules/es.object.get-own-property-descriptors"; +import "core-js/modules/es.object.get-own-property-names"; +import "core-js/modules/es.object.get-prototype-of"; +import "core-js/modules/es.object.is"; +import "core-js/modules/es.object.is-extensible"; +import "core-js/modules/es.object.is-frozen"; +import "core-js/modules/es.object.is-sealed"; +import "core-js/modules/es.object.keys"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.object.prevent-extensions"; +import "core-js/modules/es.object.seal"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.object.values"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.reflect.apply"; +import "core-js/modules/es.reflect.construct"; +import "core-js/modules/es.reflect.define-property"; +import "core-js/modules/es.reflect.delete-property"; +import "core-js/modules/es.reflect.get"; +import "core-js/modules/es.reflect.get-own-property-descriptor"; +import "core-js/modules/es.reflect.get-prototype-of"; +import "core-js/modules/es.reflect.has"; +import "core-js/modules/es.reflect.is-extensible"; +import "core-js/modules/es.reflect.own-keys"; +import "core-js/modules/es.reflect.prevent-extensions"; +import "core-js/modules/es.reflect.set"; +import "core-js/modules/es.reflect.set-prototype-of"; +import "core-js/modules/es.regexp.constructor"; +import "core-js/modules/es.regexp.flags"; +import "core-js/modules/es.regexp.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.code-point-at"; +import "core-js/modules/es.string.ends-with"; +import "core-js/modules/es.string.from-code-point"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.match"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.raw"; +import "core-js/modules/es.string.repeat"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.search"; +import "core-js/modules/es.string.split"; +import "core-js/modules/es.string.starts-with"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/es.string.anchor"; +import "core-js/modules/es.string.big"; +import "core-js/modules/es.string.blink"; +import "core-js/modules/es.string.bold"; +import "core-js/modules/es.string.fixed"; +import "core-js/modules/es.string.fontcolor"; +import "core-js/modules/es.string.fontsize"; +import "core-js/modules/es.string.italics"; +import "core-js/modules/es.string.link"; +import "core-js/modules/es.string.small"; +import "core-js/modules/es.string.strike"; +import "core-js/modules/es.string.sub"; +import "core-js/modules/es.string.sup"; +import "core-js/modules/es.typed-array.float32-array"; +import "core-js/modules/es.typed-array.float64-array"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.int16-array"; +import "core-js/modules/es.typed-array.int32-array"; +import "core-js/modules/es.typed-array.uint8-array"; +import "core-js/modules/es.typed-array.uint8-clamped-array"; +import "core-js/modules/es.typed-array.uint16-array"; +import "core-js/modules/es.typed-array.uint32-array"; +import "core-js/modules/es.typed-array.copy-within"; +import "core-js/modules/es.typed-array.every"; +import "core-js/modules/es.typed-array.fill"; +import "core-js/modules/es.typed-array.filter"; +import "core-js/modules/es.typed-array.find"; +import "core-js/modules/es.typed-array.find-index"; +import "core-js/modules/es.typed-array.for-each"; +import "core-js/modules/es.typed-array.from"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.index-of"; +import "core-js/modules/es.typed-array.iterator"; +import "core-js/modules/es.typed-array.join"; +import "core-js/modules/es.typed-array.last-index-of"; +import "core-js/modules/es.typed-array.map"; +import "core-js/modules/es.typed-array.of"; +import "core-js/modules/es.typed-array.reduce"; +import "core-js/modules/es.typed-array.reduce-right"; +import "core-js/modules/es.typed-array.reverse"; +import "core-js/modules/es.typed-array.set"; +import "core-js/modules/es.typed-array.slice"; +import "core-js/modules/es.typed-array.some"; +import "core-js/modules/es.typed-array.sort"; +import "core-js/modules/es.typed-array.subarray"; +import "core-js/modules/es.typed-array.to-locale-string"; +import "core-js/modules/es.typed-array.to-string"; +import "core-js/modules/es.weak-map"; +import "core-js/modules/es.weak-set"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/options.json new file mode 100644 index 0000000000..22cf5bdb9c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/options.json @@ -0,0 +1,16 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "ie": 9 + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/output.mjs new file mode 100644 index 0000000000..80f642659b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-ie-9/output.mjs @@ -0,0 +1,187 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.symbol.has-instance"; +import "core-js/modules/es.symbol.is-concat-spreadable"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.symbol.replace"; +import "core-js/modules/es.symbol.search"; +import "core-js/modules/es.symbol.species"; +import "core-js/modules/es.symbol.split"; +import "core-js/modules/es.symbol.to-primitive"; +import "core-js/modules/es.symbol.to-string-tag"; +import "core-js/modules/es.symbol.unscopables"; +import "core-js/modules/es.array.concat"; +import "core-js/modules/es.array.copy-within"; +import "core-js/modules/es.array.fill"; +import "core-js/modules/es.array.filter"; +import "core-js/modules/es.array.find"; +import "core-js/modules/es.array.find-index"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.join"; +import "core-js/modules/es.array.map"; +import "core-js/modules/es.array.of"; +import "core-js/modules/es.array.slice"; +import "core-js/modules/es.array.species"; +import "core-js/modules/es.array.splice"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.array-buffer.constructor"; +import "core-js/modules/es.array-buffer.is-view"; +import "core-js/modules/es.array-buffer.slice"; +import "core-js/modules/es.data-view"; +import "core-js/modules/es.date.to-primitive"; +import "core-js/modules/es.function.has-instance"; +import "core-js/modules/es.function.name"; +import "core-js/modules/es.json.to-string-tag"; +import "core-js/modules/es.map"; +import "core-js/modules/es.math.acosh"; +import "core-js/modules/es.math.asinh"; +import "core-js/modules/es.math.atanh"; +import "core-js/modules/es.math.cbrt"; +import "core-js/modules/es.math.clz32"; +import "core-js/modules/es.math.cosh"; +import "core-js/modules/es.math.expm1"; +import "core-js/modules/es.math.fround"; +import "core-js/modules/es.math.hypot"; +import "core-js/modules/es.math.imul"; +import "core-js/modules/es.math.log10"; +import "core-js/modules/es.math.log1p"; +import "core-js/modules/es.math.log2"; +import "core-js/modules/es.math.sign"; +import "core-js/modules/es.math.sinh"; +import "core-js/modules/es.math.tanh"; +import "core-js/modules/es.math.to-string-tag"; +import "core-js/modules/es.math.trunc"; +import "core-js/modules/es.number.constructor"; +import "core-js/modules/es.number.epsilon"; +import "core-js/modules/es.number.is-finite"; +import "core-js/modules/es.number.is-integer"; +import "core-js/modules/es.number.is-nan"; +import "core-js/modules/es.number.is-safe-integer"; +import "core-js/modules/es.number.max-safe-integer"; +import "core-js/modules/es.number.min-safe-integer"; +import "core-js/modules/es.number.parse-float"; +import "core-js/modules/es.number.parse-int"; +import "core-js/modules/es.number.to-fixed"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.freeze"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.get-own-property-descriptor"; +import "core-js/modules/es.object.get-own-property-descriptors"; +import "core-js/modules/es.object.get-own-property-names"; +import "core-js/modules/es.object.get-prototype-of"; +import "core-js/modules/es.object.is"; +import "core-js/modules/es.object.is-extensible"; +import "core-js/modules/es.object.is-frozen"; +import "core-js/modules/es.object.is-sealed"; +import "core-js/modules/es.object.keys"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.object.prevent-extensions"; +import "core-js/modules/es.object.seal"; +import "core-js/modules/es.object.set-prototype-of"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.object.values"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.reflect.apply"; +import "core-js/modules/es.reflect.construct"; +import "core-js/modules/es.reflect.define-property"; +import "core-js/modules/es.reflect.delete-property"; +import "core-js/modules/es.reflect.get"; +import "core-js/modules/es.reflect.get-own-property-descriptor"; +import "core-js/modules/es.reflect.get-prototype-of"; +import "core-js/modules/es.reflect.has"; +import "core-js/modules/es.reflect.is-extensible"; +import "core-js/modules/es.reflect.own-keys"; +import "core-js/modules/es.reflect.prevent-extensions"; +import "core-js/modules/es.reflect.set"; +import "core-js/modules/es.reflect.set-prototype-of"; +import "core-js/modules/es.regexp.constructor"; +import "core-js/modules/es.regexp.flags"; +import "core-js/modules/es.regexp.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.code-point-at"; +import "core-js/modules/es.string.ends-with"; +import "core-js/modules/es.string.from-code-point"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.match"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.raw"; +import "core-js/modules/es.string.repeat"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.search"; +import "core-js/modules/es.string.split"; +import "core-js/modules/es.string.starts-with"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/es.string.anchor"; +import "core-js/modules/es.string.big"; +import "core-js/modules/es.string.blink"; +import "core-js/modules/es.string.bold"; +import "core-js/modules/es.string.fixed"; +import "core-js/modules/es.string.fontcolor"; +import "core-js/modules/es.string.fontsize"; +import "core-js/modules/es.string.italics"; +import "core-js/modules/es.string.link"; +import "core-js/modules/es.string.small"; +import "core-js/modules/es.string.strike"; +import "core-js/modules/es.string.sub"; +import "core-js/modules/es.string.sup"; +import "core-js/modules/es.typed-array.float32-array"; +import "core-js/modules/es.typed-array.float64-array"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.int16-array"; +import "core-js/modules/es.typed-array.int32-array"; +import "core-js/modules/es.typed-array.uint8-array"; +import "core-js/modules/es.typed-array.uint8-clamped-array"; +import "core-js/modules/es.typed-array.uint16-array"; +import "core-js/modules/es.typed-array.uint32-array"; +import "core-js/modules/es.typed-array.copy-within"; +import "core-js/modules/es.typed-array.every"; +import "core-js/modules/es.typed-array.fill"; +import "core-js/modules/es.typed-array.filter"; +import "core-js/modules/es.typed-array.find"; +import "core-js/modules/es.typed-array.find-index"; +import "core-js/modules/es.typed-array.for-each"; +import "core-js/modules/es.typed-array.from"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.index-of"; +import "core-js/modules/es.typed-array.iterator"; +import "core-js/modules/es.typed-array.join"; +import "core-js/modules/es.typed-array.last-index-of"; +import "core-js/modules/es.typed-array.map"; +import "core-js/modules/es.typed-array.of"; +import "core-js/modules/es.typed-array.reduce"; +import "core-js/modules/es.typed-array.reduce-right"; +import "core-js/modules/es.typed-array.reverse"; +import "core-js/modules/es.typed-array.set"; +import "core-js/modules/es.typed-array.slice"; +import "core-js/modules/es.typed-array.some"; +import "core-js/modules/es.typed-array.sort"; +import "core-js/modules/es.typed-array.subarray"; +import "core-js/modules/es.typed-array.to-locale-string"; +import "core-js/modules/es.typed-array.to-string"; +import "core-js/modules/es.weak-map"; +import "core-js/modules/es.weak-set"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.timers"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-import/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-import/input.mjs new file mode 100644 index 0000000000..4709961aee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-import/input.mjs @@ -0,0 +1,3 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-import/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-import/options.json new file mode 100644 index 0000000000..2ffd25a686 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-import/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-import/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-import/output.mjs new file mode 100644 index 0000000000..f891a16256 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-import/output.mjs @@ -0,0 +1,29 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/options.json new file mode 100644 index 0000000000..cbdaa5e7c5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "node": "10.13" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/output.mjs new file mode 100644 index 0000000000..ff125b389f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-10.13/output.mjs @@ -0,0 +1,7 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/web.queue-microtask"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/options.json new file mode 100644 index 0000000000..3ca66ba0ea --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "node": "11" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/output.mjs new file mode 100644 index 0000000000..d8b2d0eb8b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-11/output.mjs @@ -0,0 +1,4 @@ +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/web.queue-microtask"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/options.json new file mode 100644 index 0000000000..96cbf1f26d --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/options.json @@ -0,0 +1,17 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "55", + "node": "7.6" + }, + "modules": false, + "useBuiltIns": "entry", + "forceAllTransforms": true, + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/output.mjs new file mode 100644 index 0000000000..d5e59efa8f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node-web/output.mjs @@ -0,0 +1,29 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-node/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-node/options.json new file mode 100644 index 0000000000..14e8b3671f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node/options.json @@ -0,0 +1,16 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "node": "7.6" + }, + "modules": false, + "useBuiltIns": "entry", + "forceAllTransforms": true, + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-node/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-node/output.mjs new file mode 100644 index 0000000000..87a92e7348 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-node/output.mjs @@ -0,0 +1,26 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/input.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/input.js new file mode 100644 index 0000000000..3872c3ce0a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/input.js @@ -0,0 +1,4 @@ +require('core-js'); +require('regenerator-runtime/runtime'); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/options.json new file mode 100644 index 0000000000..bc7cfa8eb2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "55" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/output.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/output.js new file mode 100644 index 0000000000..7a80df8b9b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-all/output.js @@ -0,0 +1,221 @@ +require("core-js/modules/es.symbol.description"); + +require("core-js/modules/es.symbol.async-iterator"); + +require("core-js/modules/es.array.flat"); + +require("core-js/modules/es.array.flat-map"); + +require("core-js/modules/es.array.iterator"); + +require("core-js/modules/es.array.sort"); + +require("core-js/modules/es.array.unscopables.flat"); + +require("core-js/modules/es.array.unscopables.flat-map"); + +require("core-js/modules/es.object.define-getter"); + +require("core-js/modules/es.object.define-setter"); + +require("core-js/modules/es.object.from-entries"); + +require("core-js/modules/es.object.lookup-getter"); + +require("core-js/modules/es.object.lookup-setter"); + +require("core-js/modules/es.promise"); + +require("core-js/modules/es.promise.finally"); + +require("core-js/modules/es.string.pad-end"); + +require("core-js/modules/es.string.pad-start"); + +require("core-js/modules/es.string.replace"); + +require("core-js/modules/es.string.trim"); + +require("core-js/modules/es.string.trim-end"); + +require("core-js/modules/es.string.trim-start"); + +require("core-js/modules/esnext.aggregate-error"); + +require("core-js/modules/esnext.array.last-index"); + +require("core-js/modules/esnext.array.last-item"); + +require("core-js/modules/esnext.composite-key"); + +require("core-js/modules/esnext.composite-symbol"); + +require("core-js/modules/esnext.global-this"); + +require("core-js/modules/esnext.map.delete-all"); + +require("core-js/modules/esnext.map.every"); + +require("core-js/modules/esnext.map.filter"); + +require("core-js/modules/esnext.map.find"); + +require("core-js/modules/esnext.map.find-key"); + +require("core-js/modules/esnext.map.from"); + +require("core-js/modules/esnext.map.group-by"); + +require("core-js/modules/esnext.map.includes"); + +require("core-js/modules/esnext.map.key-by"); + +require("core-js/modules/esnext.map.key-of"); + +require("core-js/modules/esnext.map.map-keys"); + +require("core-js/modules/esnext.map.map-values"); + +require("core-js/modules/esnext.map.merge"); + +require("core-js/modules/esnext.map.of"); + +require("core-js/modules/esnext.map.reduce"); + +require("core-js/modules/esnext.map.some"); + +require("core-js/modules/esnext.map.update"); + +require("core-js/modules/esnext.math.clamp"); + +require("core-js/modules/esnext.math.deg-per-rad"); + +require("core-js/modules/esnext.math.degrees"); + +require("core-js/modules/esnext.math.fscale"); + +require("core-js/modules/esnext.math.iaddh"); + +require("core-js/modules/esnext.math.imulh"); + +require("core-js/modules/esnext.math.isubh"); + +require("core-js/modules/esnext.math.rad-per-deg"); + +require("core-js/modules/esnext.math.radians"); + +require("core-js/modules/esnext.math.scale"); + +require("core-js/modules/esnext.math.seeded-prng"); + +require("core-js/modules/esnext.math.signbit"); + +require("core-js/modules/esnext.math.umulh"); + +require("core-js/modules/esnext.number.from-string"); + +require("core-js/modules/esnext.observable"); + +require("core-js/modules/esnext.promise.all-settled"); + +require("core-js/modules/esnext.promise.any"); + +require("core-js/modules/esnext.promise.try"); + +require("core-js/modules/esnext.reflect.define-metadata"); + +require("core-js/modules/esnext.reflect.delete-metadata"); + +require("core-js/modules/esnext.reflect.get-metadata"); + +require("core-js/modules/esnext.reflect.get-metadata-keys"); + +require("core-js/modules/esnext.reflect.get-own-metadata"); + +require("core-js/modules/esnext.reflect.get-own-metadata-keys"); + +require("core-js/modules/esnext.reflect.has-metadata"); + +require("core-js/modules/esnext.reflect.has-own-metadata"); + +require("core-js/modules/esnext.reflect.metadata"); + +require("core-js/modules/esnext.set.add-all"); + +require("core-js/modules/esnext.set.delete-all"); + +require("core-js/modules/esnext.set.difference"); + +require("core-js/modules/esnext.set.every"); + +require("core-js/modules/esnext.set.filter"); + +require("core-js/modules/esnext.set.find"); + +require("core-js/modules/esnext.set.from"); + +require("core-js/modules/esnext.set.intersection"); + +require("core-js/modules/esnext.set.is-disjoint-from"); + +require("core-js/modules/esnext.set.is-subset-of"); + +require("core-js/modules/esnext.set.is-superset-of"); + +require("core-js/modules/esnext.set.join"); + +require("core-js/modules/esnext.set.map"); + +require("core-js/modules/esnext.set.of"); + +require("core-js/modules/esnext.set.reduce"); + +require("core-js/modules/esnext.set.some"); + +require("core-js/modules/esnext.set.symmetric-difference"); + +require("core-js/modules/esnext.set.union"); + +require("core-js/modules/esnext.string.at"); + +require("core-js/modules/esnext.string.code-points"); + +require("core-js/modules/esnext.string.match-all"); + +require("core-js/modules/esnext.string.replace-all"); + +require("core-js/modules/esnext.symbol.dispose"); + +require("core-js/modules/esnext.symbol.observable"); + +require("core-js/modules/esnext.symbol.pattern-match"); + +require("core-js/modules/esnext.weak-map.delete-all"); + +require("core-js/modules/esnext.weak-map.from"); + +require("core-js/modules/esnext.weak-map.of"); + +require("core-js/modules/esnext.weak-set.add-all"); + +require("core-js/modules/esnext.weak-set.delete-all"); + +require("core-js/modules/esnext.weak-set.from"); + +require("core-js/modules/esnext.weak-set.of"); + +require("core-js/modules/web.dom-collections.for-each"); + +require("core-js/modules/web.dom-collections.iterator"); + +require("core-js/modules/web.immediate"); + +require("core-js/modules/web.queue-microtask"); + +require("core-js/modules/web.url"); + +require("core-js/modules/web.url.to-json"); + +require("core-js/modules/web.url-search-params"); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/input.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/input.js new file mode 100644 index 0000000000..389c27a6ca --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/input.js @@ -0,0 +1,3 @@ +require('@babel/polyfill'); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/options.json new file mode 100644 index 0000000000..bc7cfa8eb2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "55" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/output.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/output.js new file mode 100644 index 0000000000..389c27a6ca --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-babel-polyfill/output.js @@ -0,0 +1,3 @@ +require('@babel/polyfill'); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/input.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/input.js new file mode 100644 index 0000000000..521d4777d4 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/input.js @@ -0,0 +1,4 @@ +require('core-js/es'); +require('regenerator-runtime/runtime'); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/output.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/output.js new file mode 100644 index 0000000000..af7ecd4cda --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-chrome-71/output.js @@ -0,0 +1,7 @@ +require("core-js/modules/es.array.unscopables.flat"); + +require("core-js/modules/es.array.unscopables.flat-map"); + +require("core-js/modules/es.object.from-entries"); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/input.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/input.js new file mode 100644 index 0000000000..4b7ac12b6a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/input.js @@ -0,0 +1,5 @@ +require('core-js/es'); +require('core-js/proposals'); +require('regenerator-runtime/runtime'); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/options.json new file mode 100644 index 0000000000..bc7cfa8eb2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "55" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/output.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/output.js new file mode 100644 index 0000000000..2507fd832b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require-es-proposals/output.js @@ -0,0 +1,213 @@ +require("core-js/modules/es.symbol.description"); + +require("core-js/modules/es.symbol.async-iterator"); + +require("core-js/modules/es.array.flat"); + +require("core-js/modules/es.array.flat-map"); + +require("core-js/modules/es.array.iterator"); + +require("core-js/modules/es.array.sort"); + +require("core-js/modules/es.array.unscopables.flat"); + +require("core-js/modules/es.array.unscopables.flat-map"); + +require("core-js/modules/es.object.define-getter"); + +require("core-js/modules/es.object.define-setter"); + +require("core-js/modules/es.object.from-entries"); + +require("core-js/modules/es.object.lookup-getter"); + +require("core-js/modules/es.object.lookup-setter"); + +require("core-js/modules/es.promise"); + +require("core-js/modules/es.promise.finally"); + +require("core-js/modules/es.string.pad-end"); + +require("core-js/modules/es.string.pad-start"); + +require("core-js/modules/es.string.replace"); + +require("core-js/modules/es.string.trim"); + +require("core-js/modules/es.string.trim-end"); + +require("core-js/modules/es.string.trim-start"); + +require("core-js/modules/esnext.aggregate-error"); + +require("core-js/modules/esnext.array.last-index"); + +require("core-js/modules/esnext.array.last-item"); + +require("core-js/modules/esnext.composite-key"); + +require("core-js/modules/esnext.composite-symbol"); + +require("core-js/modules/esnext.global-this"); + +require("core-js/modules/esnext.map.delete-all"); + +require("core-js/modules/esnext.map.every"); + +require("core-js/modules/esnext.map.filter"); + +require("core-js/modules/esnext.map.find"); + +require("core-js/modules/esnext.map.find-key"); + +require("core-js/modules/esnext.map.from"); + +require("core-js/modules/esnext.map.group-by"); + +require("core-js/modules/esnext.map.includes"); + +require("core-js/modules/esnext.map.key-by"); + +require("core-js/modules/esnext.map.key-of"); + +require("core-js/modules/esnext.map.map-keys"); + +require("core-js/modules/esnext.map.map-values"); + +require("core-js/modules/esnext.map.merge"); + +require("core-js/modules/esnext.map.of"); + +require("core-js/modules/esnext.map.reduce"); + +require("core-js/modules/esnext.map.some"); + +require("core-js/modules/esnext.map.update"); + +require("core-js/modules/esnext.math.clamp"); + +require("core-js/modules/esnext.math.deg-per-rad"); + +require("core-js/modules/esnext.math.degrees"); + +require("core-js/modules/esnext.math.fscale"); + +require("core-js/modules/esnext.math.iaddh"); + +require("core-js/modules/esnext.math.imulh"); + +require("core-js/modules/esnext.math.isubh"); + +require("core-js/modules/esnext.math.rad-per-deg"); + +require("core-js/modules/esnext.math.radians"); + +require("core-js/modules/esnext.math.scale"); + +require("core-js/modules/esnext.math.seeded-prng"); + +require("core-js/modules/esnext.math.signbit"); + +require("core-js/modules/esnext.math.umulh"); + +require("core-js/modules/esnext.number.from-string"); + +require("core-js/modules/esnext.observable"); + +require("core-js/modules/esnext.promise.all-settled"); + +require("core-js/modules/esnext.promise.any"); + +require("core-js/modules/esnext.promise.try"); + +require("core-js/modules/esnext.reflect.define-metadata"); + +require("core-js/modules/esnext.reflect.delete-metadata"); + +require("core-js/modules/esnext.reflect.get-metadata"); + +require("core-js/modules/esnext.reflect.get-metadata-keys"); + +require("core-js/modules/esnext.reflect.get-own-metadata"); + +require("core-js/modules/esnext.reflect.get-own-metadata-keys"); + +require("core-js/modules/esnext.reflect.has-metadata"); + +require("core-js/modules/esnext.reflect.has-own-metadata"); + +require("core-js/modules/esnext.reflect.metadata"); + +require("core-js/modules/esnext.set.add-all"); + +require("core-js/modules/esnext.set.delete-all"); + +require("core-js/modules/esnext.set.difference"); + +require("core-js/modules/esnext.set.every"); + +require("core-js/modules/esnext.set.filter"); + +require("core-js/modules/esnext.set.find"); + +require("core-js/modules/esnext.set.from"); + +require("core-js/modules/esnext.set.intersection"); + +require("core-js/modules/esnext.set.is-disjoint-from"); + +require("core-js/modules/esnext.set.is-subset-of"); + +require("core-js/modules/esnext.set.is-superset-of"); + +require("core-js/modules/esnext.set.join"); + +require("core-js/modules/esnext.set.map"); + +require("core-js/modules/esnext.set.of"); + +require("core-js/modules/esnext.set.reduce"); + +require("core-js/modules/esnext.set.some"); + +require("core-js/modules/esnext.set.symmetric-difference"); + +require("core-js/modules/esnext.set.union"); + +require("core-js/modules/esnext.string.at"); + +require("core-js/modules/esnext.string.code-points"); + +require("core-js/modules/esnext.string.match-all"); + +require("core-js/modules/esnext.string.replace-all"); + +require("core-js/modules/esnext.symbol.dispose"); + +require("core-js/modules/esnext.symbol.observable"); + +require("core-js/modules/esnext.symbol.pattern-match"); + +require("core-js/modules/esnext.weak-map.delete-all"); + +require("core-js/modules/esnext.weak-map.from"); + +require("core-js/modules/esnext.weak-map.of"); + +require("core-js/modules/esnext.weak-set.add-all"); + +require("core-js/modules/esnext.weak-set.delete-all"); + +require("core-js/modules/esnext.weak-set.from"); + +require("core-js/modules/esnext.weak-set.of"); + +require("core-js/modules/web.url"); + +require("core-js/modules/web.url.to-json"); + +require("core-js/modules/web.url-search-params"); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require/input.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require/input.js new file mode 100644 index 0000000000..476fb940dd --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require/input.js @@ -0,0 +1,4 @@ +require('core-js/stable'); +require('regenerator-runtime/runtime'); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-require/options.json new file mode 100644 index 0000000000..bc7cfa8eb2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "55" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-require/output.js b/packages/babel-preset-env/test/fixtures/corejs3/entry-require/output.js new file mode 100644 index 0000000000..49aa2d8f4c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-require/output.js @@ -0,0 +1,57 @@ +require("core-js/modules/es.symbol.description"); + +require("core-js/modules/es.symbol.async-iterator"); + +require("core-js/modules/es.array.flat"); + +require("core-js/modules/es.array.flat-map"); + +require("core-js/modules/es.array.iterator"); + +require("core-js/modules/es.array.sort"); + +require("core-js/modules/es.array.unscopables.flat"); + +require("core-js/modules/es.array.unscopables.flat-map"); + +require("core-js/modules/es.object.define-getter"); + +require("core-js/modules/es.object.define-setter"); + +require("core-js/modules/es.object.from-entries"); + +require("core-js/modules/es.object.lookup-getter"); + +require("core-js/modules/es.object.lookup-setter"); + +require("core-js/modules/es.promise"); + +require("core-js/modules/es.promise.finally"); + +require("core-js/modules/es.string.pad-end"); + +require("core-js/modules/es.string.pad-start"); + +require("core-js/modules/es.string.replace"); + +require("core-js/modules/es.string.trim"); + +require("core-js/modules/es.string.trim-end"); + +require("core-js/modules/es.string.trim-start"); + +require("core-js/modules/web.dom-collections.for-each"); + +require("core-js/modules/web.dom-collections.iterator"); + +require("core-js/modules/web.immediate"); + +require("core-js/modules/web.queue-microtask"); + +require("core-js/modules/web.url"); + +require("core-js/modules/web.url.to-json"); + +require("core-js/modules/web.url-search-params"); + +1 ** 2; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/input.mjs new file mode 100644 index 0000000000..eb1b8b061a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/input.mjs @@ -0,0 +1,2 @@ +import { fromEntries } from 'core-js/es/object'; +const reflect = require('core-js/features/reflect'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/output.mjs new file mode 100644 index 0000000000..0119f0da2e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-specified-imports/output.mjs @@ -0,0 +1,3 @@ +import { fromEntries } from 'core-js/es/object'; + +var reflect = require('core-js/features/reflect'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/options.json new file mode 100644 index 0000000000..b8ee30edfe --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "71" + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/output.mjs new file mode 100644 index 0000000000..de648a923f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-chrome-71/output.mjs @@ -0,0 +1,4 @@ +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/web.immediate"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/options.json new file mode 100644 index 0000000000..7d03dc896b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "targets": { + "samsung": "8.2" + }, + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/output.mjs new file mode 100644 index 0000000000..b55987d82a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable-samsung-8.2/output.mjs @@ -0,0 +1,16 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url.to-json"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-stable/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-stable/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-stable/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable/output.mjs new file mode 100644 index 0000000000..212123a963 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-stable/output.mjs @@ -0,0 +1,209 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.symbol.has-instance"; +import "core-js/modules/es.symbol.is-concat-spreadable"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.symbol.replace"; +import "core-js/modules/es.symbol.search"; +import "core-js/modules/es.symbol.species"; +import "core-js/modules/es.symbol.split"; +import "core-js/modules/es.symbol.to-primitive"; +import "core-js/modules/es.symbol.to-string-tag"; +import "core-js/modules/es.symbol.unscopables"; +import "core-js/modules/es.array.concat"; +import "core-js/modules/es.array.copy-within"; +import "core-js/modules/es.array.every"; +import "core-js/modules/es.array.fill"; +import "core-js/modules/es.array.filter"; +import "core-js/modules/es.array.find"; +import "core-js/modules/es.array.find-index"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.for-each"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.index-of"; +import "core-js/modules/es.array.is-array"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.join"; +import "core-js/modules/es.array.last-index-of"; +import "core-js/modules/es.array.map"; +import "core-js/modules/es.array.of"; +import "core-js/modules/es.array.reduce"; +import "core-js/modules/es.array.reduce-right"; +import "core-js/modules/es.array.reverse"; +import "core-js/modules/es.array.slice"; +import "core-js/modules/es.array.some"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.species"; +import "core-js/modules/es.array.splice"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.array-buffer.constructor"; +import "core-js/modules/es.array-buffer.is-view"; +import "core-js/modules/es.array-buffer.slice"; +import "core-js/modules/es.data-view"; +import "core-js/modules/es.date.now"; +import "core-js/modules/es.date.to-iso-string"; +import "core-js/modules/es.date.to-json"; +import "core-js/modules/es.date.to-primitive"; +import "core-js/modules/es.date.to-string"; +import "core-js/modules/es.function.bind"; +import "core-js/modules/es.function.has-instance"; +import "core-js/modules/es.function.name"; +import "core-js/modules/es.json.to-string-tag"; +import "core-js/modules/es.map"; +import "core-js/modules/es.math.acosh"; +import "core-js/modules/es.math.asinh"; +import "core-js/modules/es.math.atanh"; +import "core-js/modules/es.math.cbrt"; +import "core-js/modules/es.math.clz32"; +import "core-js/modules/es.math.cosh"; +import "core-js/modules/es.math.expm1"; +import "core-js/modules/es.math.fround"; +import "core-js/modules/es.math.hypot"; +import "core-js/modules/es.math.imul"; +import "core-js/modules/es.math.log10"; +import "core-js/modules/es.math.log1p"; +import "core-js/modules/es.math.log2"; +import "core-js/modules/es.math.sign"; +import "core-js/modules/es.math.sinh"; +import "core-js/modules/es.math.tanh"; +import "core-js/modules/es.math.to-string-tag"; +import "core-js/modules/es.math.trunc"; +import "core-js/modules/es.number.constructor"; +import "core-js/modules/es.number.epsilon"; +import "core-js/modules/es.number.is-finite"; +import "core-js/modules/es.number.is-integer"; +import "core-js/modules/es.number.is-nan"; +import "core-js/modules/es.number.is-safe-integer"; +import "core-js/modules/es.number.max-safe-integer"; +import "core-js/modules/es.number.min-safe-integer"; +import "core-js/modules/es.number.parse-float"; +import "core-js/modules/es.number.parse-int"; +import "core-js/modules/es.number.to-fixed"; +import "core-js/modules/es.number.to-precision"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.create"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-properties"; +import "core-js/modules/es.object.define-property"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.freeze"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.get-own-property-descriptor"; +import "core-js/modules/es.object.get-own-property-descriptors"; +import "core-js/modules/es.object.get-own-property-names"; +import "core-js/modules/es.object.get-prototype-of"; +import "core-js/modules/es.object.is"; +import "core-js/modules/es.object.is-extensible"; +import "core-js/modules/es.object.is-frozen"; +import "core-js/modules/es.object.is-sealed"; +import "core-js/modules/es.object.keys"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.object.prevent-extensions"; +import "core-js/modules/es.object.seal"; +import "core-js/modules/es.object.set-prototype-of"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.object.values"; +import "core-js/modules/es.parse-float"; +import "core-js/modules/es.parse-int"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.reflect.apply"; +import "core-js/modules/es.reflect.construct"; +import "core-js/modules/es.reflect.define-property"; +import "core-js/modules/es.reflect.delete-property"; +import "core-js/modules/es.reflect.get"; +import "core-js/modules/es.reflect.get-own-property-descriptor"; +import "core-js/modules/es.reflect.get-prototype-of"; +import "core-js/modules/es.reflect.has"; +import "core-js/modules/es.reflect.is-extensible"; +import "core-js/modules/es.reflect.own-keys"; +import "core-js/modules/es.reflect.prevent-extensions"; +import "core-js/modules/es.reflect.set"; +import "core-js/modules/es.reflect.set-prototype-of"; +import "core-js/modules/es.regexp.constructor"; +import "core-js/modules/es.regexp.exec"; +import "core-js/modules/es.regexp.flags"; +import "core-js/modules/es.regexp.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.code-point-at"; +import "core-js/modules/es.string.ends-with"; +import "core-js/modules/es.string.from-code-point"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.match"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.raw"; +import "core-js/modules/es.string.repeat"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.search"; +import "core-js/modules/es.string.split"; +import "core-js/modules/es.string.starts-with"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/es.string.anchor"; +import "core-js/modules/es.string.big"; +import "core-js/modules/es.string.blink"; +import "core-js/modules/es.string.bold"; +import "core-js/modules/es.string.fixed"; +import "core-js/modules/es.string.fontcolor"; +import "core-js/modules/es.string.fontsize"; +import "core-js/modules/es.string.italics"; +import "core-js/modules/es.string.link"; +import "core-js/modules/es.string.small"; +import "core-js/modules/es.string.strike"; +import "core-js/modules/es.string.sub"; +import "core-js/modules/es.string.sup"; +import "core-js/modules/es.typed-array.float32-array"; +import "core-js/modules/es.typed-array.float64-array"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.int16-array"; +import "core-js/modules/es.typed-array.int32-array"; +import "core-js/modules/es.typed-array.uint8-array"; +import "core-js/modules/es.typed-array.uint8-clamped-array"; +import "core-js/modules/es.typed-array.uint16-array"; +import "core-js/modules/es.typed-array.uint32-array"; +import "core-js/modules/es.typed-array.copy-within"; +import "core-js/modules/es.typed-array.every"; +import "core-js/modules/es.typed-array.fill"; +import "core-js/modules/es.typed-array.filter"; +import "core-js/modules/es.typed-array.find"; +import "core-js/modules/es.typed-array.find-index"; +import "core-js/modules/es.typed-array.for-each"; +import "core-js/modules/es.typed-array.from"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.index-of"; +import "core-js/modules/es.typed-array.iterator"; +import "core-js/modules/es.typed-array.join"; +import "core-js/modules/es.typed-array.last-index-of"; +import "core-js/modules/es.typed-array.map"; +import "core-js/modules/es.typed-array.of"; +import "core-js/modules/es.typed-array.reduce"; +import "core-js/modules/es.typed-array.reduce-right"; +import "core-js/modules/es.typed-array.reverse"; +import "core-js/modules/es.typed-array.set"; +import "core-js/modules/es.typed-array.slice"; +import "core-js/modules/es.typed-array.some"; +import "core-js/modules/es.typed-array.sort"; +import "core-js/modules/es.typed-array.subarray"; +import "core-js/modules/es.typed-array.to-locale-string"; +import "core-js/modules/es.typed-array.to-string"; +import "core-js/modules/es.weak-map"; +import "core-js/modules/es.weak-set"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.timers"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/options.json b/packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/options.json new file mode 100644 index 0000000000..c762d11f09 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/options.json @@ -0,0 +1,22 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": 63 + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3, + "exclude": [ + "es.string.pad-start", + "es.string.pad-end", + "web.timers", + "web.immediate", + "web.dom-collections.iterator" + ] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/output.mjs new file mode 100644 index 0000000000..8dc8ff014a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude-built-ins/output.mjs @@ -0,0 +1,14 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url.to-json"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude-include/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/exclude-include/input.mjs new file mode 100644 index 0000000000..efe0d2ee2c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude-include/input.mjs @@ -0,0 +1,8 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; + +async function a() { + await 1; +} + +(() => {}) diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude-include/options.json b/packages/babel-preset-env/test/fixtures/corejs3/exclude-include/options.json new file mode 100644 index 0000000000..d41e694ad4 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude-include/options.json @@ -0,0 +1,21 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "modules": false, + "useBuiltIns": "entry", + "corejs": 3, + "exclude": [ + "transform-async-to-generator", + "transform-regenerator", + "es.string.pad-start" + ], + "include": ["transform-arrow-functions", "es.map"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude-include/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/exclude-include/output.mjs new file mode 100644 index 0000000000..e116abf02c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude-include/output.mjs @@ -0,0 +1,34 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.map"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; + +async function a() { + await 1; +} + +(function () {}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/options.json b/packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/options.json new file mode 100644 index 0000000000..f45281fbee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3, + "exclude": ["transform-regenerator"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/output.mjs new file mode 100644 index 0000000000..93f856aa51 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude-regenerator/output.mjs @@ -0,0 +1,208 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.symbol.has-instance"; +import "core-js/modules/es.symbol.is-concat-spreadable"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.symbol.replace"; +import "core-js/modules/es.symbol.search"; +import "core-js/modules/es.symbol.species"; +import "core-js/modules/es.symbol.split"; +import "core-js/modules/es.symbol.to-primitive"; +import "core-js/modules/es.symbol.to-string-tag"; +import "core-js/modules/es.symbol.unscopables"; +import "core-js/modules/es.array.concat"; +import "core-js/modules/es.array.copy-within"; +import "core-js/modules/es.array.every"; +import "core-js/modules/es.array.fill"; +import "core-js/modules/es.array.filter"; +import "core-js/modules/es.array.find"; +import "core-js/modules/es.array.find-index"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.for-each"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.index-of"; +import "core-js/modules/es.array.is-array"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.join"; +import "core-js/modules/es.array.last-index-of"; +import "core-js/modules/es.array.map"; +import "core-js/modules/es.array.of"; +import "core-js/modules/es.array.reduce"; +import "core-js/modules/es.array.reduce-right"; +import "core-js/modules/es.array.reverse"; +import "core-js/modules/es.array.slice"; +import "core-js/modules/es.array.some"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.species"; +import "core-js/modules/es.array.splice"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.array-buffer.constructor"; +import "core-js/modules/es.array-buffer.is-view"; +import "core-js/modules/es.array-buffer.slice"; +import "core-js/modules/es.data-view"; +import "core-js/modules/es.date.now"; +import "core-js/modules/es.date.to-iso-string"; +import "core-js/modules/es.date.to-json"; +import "core-js/modules/es.date.to-primitive"; +import "core-js/modules/es.date.to-string"; +import "core-js/modules/es.function.bind"; +import "core-js/modules/es.function.has-instance"; +import "core-js/modules/es.function.name"; +import "core-js/modules/es.json.to-string-tag"; +import "core-js/modules/es.map"; +import "core-js/modules/es.math.acosh"; +import "core-js/modules/es.math.asinh"; +import "core-js/modules/es.math.atanh"; +import "core-js/modules/es.math.cbrt"; +import "core-js/modules/es.math.clz32"; +import "core-js/modules/es.math.cosh"; +import "core-js/modules/es.math.expm1"; +import "core-js/modules/es.math.fround"; +import "core-js/modules/es.math.hypot"; +import "core-js/modules/es.math.imul"; +import "core-js/modules/es.math.log10"; +import "core-js/modules/es.math.log1p"; +import "core-js/modules/es.math.log2"; +import "core-js/modules/es.math.sign"; +import "core-js/modules/es.math.sinh"; +import "core-js/modules/es.math.tanh"; +import "core-js/modules/es.math.to-string-tag"; +import "core-js/modules/es.math.trunc"; +import "core-js/modules/es.number.constructor"; +import "core-js/modules/es.number.epsilon"; +import "core-js/modules/es.number.is-finite"; +import "core-js/modules/es.number.is-integer"; +import "core-js/modules/es.number.is-nan"; +import "core-js/modules/es.number.is-safe-integer"; +import "core-js/modules/es.number.max-safe-integer"; +import "core-js/modules/es.number.min-safe-integer"; +import "core-js/modules/es.number.parse-float"; +import "core-js/modules/es.number.parse-int"; +import "core-js/modules/es.number.to-fixed"; +import "core-js/modules/es.number.to-precision"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.create"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-properties"; +import "core-js/modules/es.object.define-property"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.freeze"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.get-own-property-descriptor"; +import "core-js/modules/es.object.get-own-property-descriptors"; +import "core-js/modules/es.object.get-own-property-names"; +import "core-js/modules/es.object.get-prototype-of"; +import "core-js/modules/es.object.is"; +import "core-js/modules/es.object.is-extensible"; +import "core-js/modules/es.object.is-frozen"; +import "core-js/modules/es.object.is-sealed"; +import "core-js/modules/es.object.keys"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.object.prevent-extensions"; +import "core-js/modules/es.object.seal"; +import "core-js/modules/es.object.set-prototype-of"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.object.values"; +import "core-js/modules/es.parse-float"; +import "core-js/modules/es.parse-int"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.reflect.apply"; +import "core-js/modules/es.reflect.construct"; +import "core-js/modules/es.reflect.define-property"; +import "core-js/modules/es.reflect.delete-property"; +import "core-js/modules/es.reflect.get"; +import "core-js/modules/es.reflect.get-own-property-descriptor"; +import "core-js/modules/es.reflect.get-prototype-of"; +import "core-js/modules/es.reflect.has"; +import "core-js/modules/es.reflect.is-extensible"; +import "core-js/modules/es.reflect.own-keys"; +import "core-js/modules/es.reflect.prevent-extensions"; +import "core-js/modules/es.reflect.set"; +import "core-js/modules/es.reflect.set-prototype-of"; +import "core-js/modules/es.regexp.constructor"; +import "core-js/modules/es.regexp.exec"; +import "core-js/modules/es.regexp.flags"; +import "core-js/modules/es.regexp.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.code-point-at"; +import "core-js/modules/es.string.ends-with"; +import "core-js/modules/es.string.from-code-point"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.match"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.raw"; +import "core-js/modules/es.string.repeat"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.search"; +import "core-js/modules/es.string.split"; +import "core-js/modules/es.string.starts-with"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/es.string.anchor"; +import "core-js/modules/es.string.big"; +import "core-js/modules/es.string.blink"; +import "core-js/modules/es.string.bold"; +import "core-js/modules/es.string.fixed"; +import "core-js/modules/es.string.fontcolor"; +import "core-js/modules/es.string.fontsize"; +import "core-js/modules/es.string.italics"; +import "core-js/modules/es.string.link"; +import "core-js/modules/es.string.small"; +import "core-js/modules/es.string.strike"; +import "core-js/modules/es.string.sub"; +import "core-js/modules/es.string.sup"; +import "core-js/modules/es.typed-array.float32-array"; +import "core-js/modules/es.typed-array.float64-array"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.int16-array"; +import "core-js/modules/es.typed-array.int32-array"; +import "core-js/modules/es.typed-array.uint8-array"; +import "core-js/modules/es.typed-array.uint8-clamped-array"; +import "core-js/modules/es.typed-array.uint16-array"; +import "core-js/modules/es.typed-array.uint32-array"; +import "core-js/modules/es.typed-array.copy-within"; +import "core-js/modules/es.typed-array.every"; +import "core-js/modules/es.typed-array.fill"; +import "core-js/modules/es.typed-array.filter"; +import "core-js/modules/es.typed-array.find"; +import "core-js/modules/es.typed-array.find-index"; +import "core-js/modules/es.typed-array.for-each"; +import "core-js/modules/es.typed-array.from"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.index-of"; +import "core-js/modules/es.typed-array.iterator"; +import "core-js/modules/es.typed-array.join"; +import "core-js/modules/es.typed-array.last-index-of"; +import "core-js/modules/es.typed-array.map"; +import "core-js/modules/es.typed-array.of"; +import "core-js/modules/es.typed-array.reduce"; +import "core-js/modules/es.typed-array.reduce-right"; +import "core-js/modules/es.typed-array.reverse"; +import "core-js/modules/es.typed-array.set"; +import "core-js/modules/es.typed-array.slice"; +import "core-js/modules/es.typed-array.some"; +import "core-js/modules/es.typed-array.sort"; +import "core-js/modules/es.typed-array.subarray"; +import "core-js/modules/es.typed-array.to-locale-string"; +import "core-js/modules/es.typed-array.to-string"; +import "core-js/modules/es.weak-map"; +import "core-js/modules/es.weak-set"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.timers"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/exclude/input.mjs new file mode 100644 index 0000000000..c70b44b5a4 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude/input.mjs @@ -0,0 +1,3 @@ +async function a() { + await 1; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude/options.json b/packages/babel-preset-env/test/fixtures/corejs3/exclude/options.json new file mode 100644 index 0000000000..f6c98a7a33 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "usage", + "corejs": 3, + "exclude": ["transform-async-to-generator", "transform-regenerator"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/exclude/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/exclude/output.mjs new file mode 100644 index 0000000000..8f37a64f24 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/exclude/output.mjs @@ -0,0 +1,6 @@ +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; + +async function a() { + await 1; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/input.mjs new file mode 100644 index 0000000000..aaf258d9cf --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/input.mjs @@ -0,0 +1,4 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; + +const a = 1; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/options.json b/packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/options.json similarity index 82% rename from packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/options.json rename to packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/options.json index f4e793dddf..4dcf6b59d7 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/options.json @@ -4,10 +4,11 @@ "../../../../lib", { "targets": { - "node": "7.6" + "chrome": 55 }, "modules": false, "useBuiltIns": "entry", + "corejs": 3, "forceAllTransforms": true } ] diff --git a/packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/output.mjs new file mode 100644 index 0000000000..698280d446 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/force-all-transforms/output.mjs @@ -0,0 +1,30 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; +import 'regenerator-runtime/runtime'; +var a = 1; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/input.mjs new file mode 100644 index 0000000000..34bd72ce1c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/input.mjs @@ -0,0 +1,2 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/options.json b/packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/options.json new file mode 100644 index 0000000000..b36c014817 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/options.json @@ -0,0 +1,16 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "include": ["es.map", "es.set"], + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/output.mjs new file mode 100644 index 0000000000..504b237027 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/include-built-ins/output.mjs @@ -0,0 +1,30 @@ +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.array.flat"; +import "core-js/modules/es.array.flat-map"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.sort"; +import "core-js/modules/es.array.unscopables.flat"; +import "core-js/modules/es.array.unscopables.flat-map"; +import "core-js/modules/es.map"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.define-setter"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.lookup-getter"; +import "core-js/modules/es.object.lookup-setter"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/es.string.trim-end"; +import "core-js/modules/es.string.trim-start"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.queue-microtask"; +import "core-js/modules/web.url"; +import "core-js/modules/web.url.to-json"; +import "core-js/modules/web.url-search-params"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/input.mjs new file mode 100644 index 0000000000..39641419b1 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/input.mjs @@ -0,0 +1,26 @@ +Array.from; // static method +Map; // built-in +new Promise(); // new builtin +Symbol.match; // as member expression +_arr[Symbol.iterator](); // Symbol.iterator + +// no import +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; +_arr9[Symbol2.iterator](); +_arr9[Symbol.iterator2](); + +G.assign; // static method +function H(WeakMap) { var blah = new WeakMap(); } // shadowed + +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/options.json new file mode 100644 index 0000000000..09d412d001 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "targets": { + "chrome": "71" + }, + "corejs": { "version": 3, "proposals": true }, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/output.mjs new file mode 100644 index 0000000000..bf51809e72 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals-chrome-71/output.mjs @@ -0,0 +1,50 @@ +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.symbol.observable"; +Array.from; // static method + +Map; // built-in + +new Promise(); // new builtin + +Symbol.match; // as member expression + +_arr[Symbol.iterator](); // Symbol.iterator +// no import + + +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; + +_arr9[Symbol2.iterator](); + +_arr9[Symbol.iterator2](); + +G.assign; // static method + +function H(WeakMap) { + var blah = new WeakMap(); +} // shadowed + + +const foo = new Promise(resolve => { + resolve(new Map()); +}); +queueMicrotask(() => globalThis); +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/input.mjs new file mode 100644 index 0000000000..39641419b1 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/input.mjs @@ -0,0 +1,26 @@ +Array.from; // static method +Map; // built-in +new Promise(); // new builtin +Symbol.match; // as member expression +_arr[Symbol.iterator](); // Symbol.iterator + +// no import +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; +_arr9[Symbol2.iterator](); +_arr9[Symbol.iterator2](); + +G.assign; // static method +function H(WeakMap) { var blah = new WeakMap(); } // shadowed + +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/options.json new file mode 100644 index 0000000000..5a0b22a7dd --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": { "version": 3, "proposals": true }, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/output.mjs new file mode 100644 index 0000000000..699c00e7ae --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-all-proposals/output.mjs @@ -0,0 +1,67 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.map"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.regexp.exec"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.match"; +import "core-js/modules/esnext.global-this"; +import "core-js/modules/esnext.map.delete-all"; +import "core-js/modules/esnext.map.every"; +import "core-js/modules/esnext.map.filter"; +import "core-js/modules/esnext.map.find"; +import "core-js/modules/esnext.map.find-key"; +import "core-js/modules/esnext.map.includes"; +import "core-js/modules/esnext.map.key-of"; +import "core-js/modules/esnext.map.map-keys"; +import "core-js/modules/esnext.map.map-values"; +import "core-js/modules/esnext.map.merge"; +import "core-js/modules/esnext.map.reduce"; +import "core-js/modules/esnext.map.some"; +import "core-js/modules/esnext.map.update"; +import "core-js/modules/esnext.observable"; +import "core-js/modules/esnext.symbol.observable"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.queue-microtask"; +Array.from; // static method + +Map; // built-in + +new Promise(); // new builtin + +Symbol.match; // as member expression + +_arr[Symbol.iterator](); // Symbol.iterator +// no import + + +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; + +_arr9[Symbol2.iterator](); + +_arr9[Symbol.iterator2](); + +G.assign; // static method + +function H(WeakMap) { + var blah = new WeakMap(); +} // shadowed + + +var foo = new Promise(function (resolve) { + resolve(new Map()); +}); +queueMicrotask(function () { + return globalThis; +}); +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-all/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-all/input.mjs new file mode 100644 index 0000000000..39641419b1 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-all/input.mjs @@ -0,0 +1,26 @@ +Array.from; // static method +Map; // built-in +new Promise(); // new builtin +Symbol.match; // as member expression +_arr[Symbol.iterator](); // Symbol.iterator + +// no import +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; +_arr9[Symbol2.iterator](); +_arr9[Symbol.iterator2](); + +G.assign; // static method +function H(WeakMap) { var blah = new WeakMap(); } // shadowed + +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-all/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-all/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-all/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-all/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-all/output.mjs new file mode 100644 index 0000000000..320fcf8662 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-all/output.mjs @@ -0,0 +1,51 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.symbol.match"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.map"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.regexp.exec"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.match"; +import "core-js/modules/web.dom-collections.iterator"; +import "core-js/modules/web.queue-microtask"; +Array.from; // static method + +Map; // built-in + +new Promise(); // new builtin + +Symbol.match; // as member expression + +_arr[Symbol.iterator](); // Symbol.iterator +// no import + + +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; + +_arr9[Symbol2.iterator](); + +_arr9[Symbol.iterator2](); + +G.assign; // static method + +function H(WeakMap) { + var blah = new WeakMap(); +} // shadowed + + +var foo = new Promise(function (resolve) { + resolve(new Map()); +}); +queueMicrotask(function () { + return globalThis; +}); +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/browserslist b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/browserslist new file mode 100644 index 0000000000..d0ae78fe6a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/browserslist @@ -0,0 +1 @@ +chrome 55 diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/input.mjs new file mode 100644 index 0000000000..f9e8d5a956 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/input.mjs @@ -0,0 +1 @@ +const a = new Map(); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/options.json new file mode 100644 index 0000000000..95a82bb5ec --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "configPath": "../fixtures/preset-options-add-used-built-ins/browserslist-config-ignore", + "modules": false, + "targets": { "esmodules": true }, + "useBuiltIns": "usage", + "corejs": 3, + "debug": true + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/output.mjs new file mode 100644 index 0000000000..383d86ed5e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/output.mjs @@ -0,0 +1,3 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +const a = new Map(); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/input.mjs new file mode 100644 index 0000000000..725315824b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/input.mjs @@ -0,0 +1,2 @@ +const Set = window.Set; +const Map = something.Map; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/output.mjs new file mode 100644 index 0000000000..008dade847 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-built-in-from-global-object/output.mjs @@ -0,0 +1,7 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +var Set = window.Set; +var Map = something.Map; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/input.mjs new file mode 100644 index 0000000000..bf62d9f751 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/input.mjs @@ -0,0 +1 @@ +[a, b] = c; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/options.json new file mode 100644 index 0000000000..66007aa56a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/output.mjs new file mode 100644 index 0000000000..19ec5a3bda --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-assignment/output.mjs @@ -0,0 +1,4 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +[a, b] = c; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/input.mjs new file mode 100644 index 0000000000..cb50832b47 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/input.mjs @@ -0,0 +1,3 @@ +try { + a(); +} catch([b, c]) { } diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/options.json new file mode 100644 index 0000000000..66007aa56a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/output.mjs new file mode 100644 index 0000000000..07b47aee45 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-catch/output.mjs @@ -0,0 +1,7 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; + +try { + a(); +} catch ([b, c]) {} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/input.mjs new file mode 100644 index 0000000000..027d407b5e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/input.mjs @@ -0,0 +1 @@ +for (let [a, b] in c); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/options.json new file mode 100644 index 0000000000..66007aa56a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/output.mjs new file mode 100644 index 0000000000..13575cf7d0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-for-x/output.mjs @@ -0,0 +1,7 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; + +for (var [a, b] in c) { + ; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/input.mjs new file mode 100644 index 0000000000..6cb372d8a2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/input.mjs @@ -0,0 +1,5 @@ +!function (foo, { entries }) {} ({}, Object); + +new function (foo, { from }) {} ({}, Array); + +(({ includes }) => { })('42'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/options.json new file mode 100644 index 0000000000..70fc29a6de --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-destructuring", "transform-parameters"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/output.mjs new file mode 100644 index 0000000000..096af6abc7 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-iife/output.mjs @@ -0,0 +1,14 @@ +import "core-js/modules/es.array.from"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.iterator"; +!function (foo, { + entries: entries +}) {}({}, Object); +new function (foo, { + from: from +}) {}({}, Array); + +(function ({ + includes: includes +}) {})('42'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/input.mjs new file mode 100644 index 0000000000..0b8c72fe4c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/input.mjs @@ -0,0 +1 @@ +function a([b, c]) {} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/options.json new file mode 100644 index 0000000000..66007aa56a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/output.mjs new file mode 100644 index 0000000000..e2100787e0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-params/output.mjs @@ -0,0 +1,7 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; + +function a(_ref) { + var [b, c] = _ref; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/input.mjs new file mode 100644 index 0000000000..e68aeb23a8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/input.mjs @@ -0,0 +1 @@ +const [a, b] = c; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/options.json new file mode 100644 index 0000000000..66007aa56a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/output.mjs new file mode 100644 index 0000000000..c995f912ab --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-destructuring-variable-declaration/output.mjs @@ -0,0 +1,4 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +var [a, b] = c; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/input.mjs new file mode 100644 index 0000000000..5c8f80cf47 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/input.mjs @@ -0,0 +1,17 @@ +var a = []; + +a.values(); + +''.replace() + +''.includes(); + +/./gi.flags; + +''.indexOf(); + +a.__defineGetter__('foo', () => 42); + +a.trim; + +Function.bind; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/output.mjs new file mode 100644 index 0000000000..a748b6c1d7 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-determanated-instance-methods/output.mjs @@ -0,0 +1,21 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.function.bind"; +import "core-js/modules/es.object.define-getter"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.regexp.exec"; +import "core-js/modules/es.regexp.flags"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.replace"; +var a = []; +a.values(); +''.replace(); +''.includes(); +/./gi.flags; +''.indexOf(); + +a.__defineGetter__('foo', function () { + return 42; +}); + +a.trim; +Function.bind; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/input.mjs new file mode 100644 index 0000000000..7ebcdb5d17 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/input.mjs @@ -0,0 +1 @@ +const foo = import('foo'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/options.json new file mode 100644 index 0000000000..26b5f87194 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/options.json @@ -0,0 +1,16 @@ +{ + "plugins": ["syntax-dynamic-import"], + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "targets": { + "chrome": "71" + }, + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/output.mjs new file mode 100644 index 0000000000..7ebcdb5d17 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import-chrome-71/output.mjs @@ -0,0 +1 @@ +const foo = import('foo'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/input.mjs new file mode 100644 index 0000000000..7ebcdb5d17 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/input.mjs @@ -0,0 +1 @@ +const foo = import('foo'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/options.json new file mode 100644 index 0000000000..563713faab --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/options.json @@ -0,0 +1,13 @@ +{ + "plugins": ["syntax-dynamic-import"], + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/output.mjs new file mode 100644 index 0000000000..03c0a1be1e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-dynamic-import/output.mjs @@ -0,0 +1,3 @@ +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +var foo = import('foo'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/input.mjs new file mode 100644 index 0000000000..c12f5e3a8a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/input.mjs @@ -0,0 +1,12 @@ +var objectClass = Object; +var arrayInstance = []; +var assignStr = "assign"; +var entriesStr = "entries"; +var valuesStr = "values"; +var inclidesStr = "includes"; +var findStr = "find"; + +// Allow static methods be assigned to variables only directly in the module. +externalVar[valuesStr]; // don't include +objectClass[assignStr]({}); // include +arrayInstance[entriesStr]({}); // don't include diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/output.mjs new file mode 100644 index 0000000000..0237af3f76 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-class-methods/output.mjs @@ -0,0 +1,17 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/web.dom-collections.iterator"; +var objectClass = Object; +var arrayInstance = []; +var assignStr = "assign"; +var entriesStr = "entries"; +var valuesStr = "values"; +var inclidesStr = "includes"; +var findStr = "find"; // Allow static methods be assigned to variables only directly in the module. + +externalVar[valuesStr]; // don't include + +objectClass[assignStr]({}); // include + +arrayInstance[entriesStr]({}); // don't include diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/input.mjs new file mode 100644 index 0000000000..369046bb15 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/input.mjs @@ -0,0 +1,8 @@ +var arrayInstance = []; +var inclidesStr = "includes"; +var findStr = "find"; + +// Allow instance methods be assigned to variables. +arrayInstance[inclidesStr](); // include +externalVar[findStr]; // include + diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/output.mjs new file mode 100644 index 0000000000..854101328e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-evaluated-instance-methods/output.mjs @@ -0,0 +1,9 @@ +import "core-js/modules/es.array.find"; +import "core-js/modules/es.array.includes"; +var arrayInstance = []; +var inclidesStr = "includes"; +var findStr = "find"; // Allow instance methods be assigned to variables. + +arrayInstance[inclidesStr](); // include + +externalVar[findStr]; // include diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/input.mjs new file mode 100644 index 0000000000..4f8bca34cb --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/input.mjs @@ -0,0 +1 @@ +const foo = fetch('foo'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/options.json new file mode 100644 index 0000000000..eb821662bc --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "targets": { + "chrome": "71" + }, + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/output.mjs new file mode 100644 index 0000000000..4f8bca34cb --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch-chrome-71/output.mjs @@ -0,0 +1 @@ +const foo = fetch('foo'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/input.mjs new file mode 100644 index 0000000000..4f8bca34cb --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/input.mjs @@ -0,0 +1 @@ +const foo = fetch('foo'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/output.mjs new file mode 100644 index 0000000000..6637fedce2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-fetch/output.mjs @@ -0,0 +1,3 @@ +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +var foo = fetch('foo'); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/input.mjs new file mode 100644 index 0000000000..c9f54a8e47 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/input.mjs @@ -0,0 +1,3 @@ +for (const { padStart } of foo) { + console.log('b'.padEnd(5)); +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/options.json new file mode 100644 index 0000000000..28ad6bb35e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "node": "7" + }, + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/output.mjs new file mode 100644 index 0000000000..5237617a6e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-with/output.mjs @@ -0,0 +1,10 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; + +for (const _ref of foo) { + const { + padStart + } = _ref; + console.log('b'.padEnd(5)); +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/input.mjs new file mode 100644 index 0000000000..4228bde23c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/input.mjs @@ -0,0 +1,3 @@ +for (const { a } of foo) { + console.log(a); +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/options.json new file mode 100644 index 0000000000..e31b22a885 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "node": "11" + }, + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/output.mjs new file mode 100644 index 0000000000..9b8c02b13b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of-destructure-without/output.mjs @@ -0,0 +1,5 @@ +for (const { + a +} of foo) { + console.log(a); +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/input.mjs new file mode 100644 index 0000000000..9f6660a25f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/input.mjs @@ -0,0 +1 @@ +for (let a of b); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/options.json new file mode 100644 index 0000000000..97f8881a33 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-for-of"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/output.mjs new file mode 100644 index 0000000000..b8da08e913 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-for-of/output.mjs @@ -0,0 +1,7 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; + +for (var a of b) { + ; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-in/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-in/input.mjs new file mode 100644 index 0000000000..1f6eeef40d --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-in/input.mjs @@ -0,0 +1,7 @@ +'entries' in Object; +'includes' in [1, 2, 3]; + +('va' + 'lues') in Object; + +var keys = 'fromEntries'; +keys in Object; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-in/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-in/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-in/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-in/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-in/output.mjs new file mode 100644 index 0000000000..6c58b94f86 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-in/output.mjs @@ -0,0 +1,10 @@ +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.from-entries"; +import "core-js/modules/es.object.values"; +'entries' in Object; +'includes' in [1, 2, 3]; +'va' + 'lues' in Object; +var keys = 'fromEntries'; +keys in Object; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/input.mjs new file mode 100644 index 0000000000..35cd0f9960 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/input.mjs @@ -0,0 +1,12 @@ +Array.from; // static function +Map; // top level built-in + +// instance methods may have false positives (which is ok) +a.includes(); // method call +b['find'] // computed string? +c.prototype.findIndex(); // .prototype +d.fill.bind(); //.bind +e.padStart.apply(); // .apply +f.padEnd.call(); // .call +String.prototype.startsWith.call; // prototype.call +var { codePointAt, endsWith } = k; // destructuring diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/options.json new file mode 100644 index 0000000000..d868cc145b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "targets": { + "chrome": 71 + } + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/output.mjs new file mode 100644 index 0000000000..9ee8bd8b5a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods-native-support/output.mjs @@ -0,0 +1,23 @@ +Array.from; // static function + +Map; // top level built-in +// instance methods may have false positives (which is ok) + +a.includes(); // method call + +b['find']; // computed string? + +c.prototype.findIndex(); // .prototype + +d.fill.bind(); //.bind + +e.padStart.apply(); // .apply + +f.padEnd.call(); // .call + +String.prototype.startsWith.call; // prototype.call + +var { + codePointAt, + endsWith +} = k; // destructuring diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/input.mjs new file mode 100644 index 0000000000..4528eff880 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/input.mjs @@ -0,0 +1,20 @@ +Array.from; // static function +Map; // top level built-in + +// instance methods may have false positives (which is ok) +a.includes(); // method call +b['find'] // computed string? +c.prototype.findIndex(); // .prototype +d.fill.bind(); //.bind +e.padStart.apply(); // .apply +f.padEnd.call(); // .call +String.prototype.startsWith.call; // prototype.call +var { codePointAt, endsWith } = k; // destructuring + +var asdf = "copyWithin"; +var asdf2 = "split"; +var asdf3 = "re" + "place"; +i[asdf]; // computed with identifier +j[`search`]; // computed with template +k[asdf3] // computed with concat strings +var { [asdf2]: _a } = k; // computed diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/output.mjs new file mode 100644 index 0000000000..be008261d4 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-instance-methods/output.mjs @@ -0,0 +1,56 @@ +import "core-js/modules/es.array.copy-within"; +import "core-js/modules/es.array.fill"; +import "core-js/modules/es.array.find"; +import "core-js/modules/es.array.find-index"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.includes"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.function.bind"; +import "core-js/modules/es.map"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.regexp.exec"; +import "core-js/modules/es.string.code-point-at"; +import "core-js/modules/es.string.ends-with"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.pad-end"; +import "core-js/modules/es.string.pad-start"; +import "core-js/modules/es.string.replace"; +import "core-js/modules/es.string.search"; +import "core-js/modules/es.string.split"; +import "core-js/modules/es.string.starts-with"; +import "core-js/modules/web.dom-collections.iterator"; +Array.from; // static function + +Map; // top level built-in +// instance methods may have false positives (which is ok) + +a.includes(); // method call + +b['find']; // computed string? + +c.prototype.findIndex(); // .prototype + +d.fill.bind(); //.bind + +e.padStart.apply(); // .apply + +f.padEnd.call(); // .call + +String.prototype.startsWith.call; // prototype.call + +var _k = k, + codePointAt = _k.codePointAt, + endsWith = _k.endsWith; // destructuring + +var asdf = "copyWithin"; +var asdf2 = "split"; +var asdf3 = "re" + "place"; +i[asdf]; // computed with identifier + +j["search"]; // computed with template + +k[asdf3]; // computed with concat strings + +var _k2 = k, + _a = _k2[asdf2]; // computed diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/input.mjs new file mode 100644 index 0000000000..a2b81d72e3 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/input.mjs @@ -0,0 +1 @@ +Promise; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/options.json new file mode 100644 index 0000000000..949ccc15e2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/options.json @@ -0,0 +1,11 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/output.js b/packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/output.js new file mode 100644 index 0000000000..b86b981723 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-modules-transform/output.js @@ -0,0 +1,7 @@ +"use strict"; + +require("core-js/modules/es.object.to-string"); + +require("core-js/modules/es.promise"); + +Promise; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/input.mjs new file mode 100644 index 0000000000..4d789721e6 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/input.mjs @@ -0,0 +1,33 @@ +Array.from; // static method +Map; // built-in +new Promise(); // new builtin +Symbol.match; // as member expression + +// no import +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; +_arr9[Symbol2.iterator](); +_arr9[Symbol.iterator2](); + +G.assign; // static method +function H(WeakMap) { + var blah = new WeakMap(); +} // shadowed + +// not covered by this plugin +var asdf = 'copyWithin'; +i[asdf]; // computed with identifier +j[`copyWithin`]; // computed with template +var { [asdf]: _a } = k; // computed + +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/options.json new file mode 100644 index 0000000000..d868cc145b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "targets": { + "chrome": 71 + } + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/output.mjs new file mode 100644 index 0000000000..271ffd3320 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-native-support/output.mjs @@ -0,0 +1,42 @@ +Array.from; // static method + +Map; // built-in + +new Promise(); // new builtin + +Symbol.match; // as member expression +// no import + +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; + +_arr9[Symbol2.iterator](); + +_arr9[Symbol.iterator2](); + +G.assign; // static method + +function H(WeakMap) { + var blah = new WeakMap(); +} // shadowed +// not covered by this plugin + + +var asdf = 'copyWithin'; +i[asdf]; // computed with identifier + +j[`copyWithin`]; // computed with template + +var { + [asdf]: _a +} = k; // computed + +const foo = new Promise(resolve => { + resolve(new Map()); +}); +queueMicrotask(() => globalThis); +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/input.mjs new file mode 100644 index 0000000000..f688910ec0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/input.mjs @@ -0,0 +1 @@ +var a = 1; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/output.mjs new file mode 100644 index 0000000000..f688910ec0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-builtins/output.mjs @@ -0,0 +1 @@ +var a = 1; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/input.mjs new file mode 100644 index 0000000000..31f2d79f9a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/input.mjs @@ -0,0 +1,2 @@ +import "not-core-js"; +import "not-babel-polyfill"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/options.json new file mode 100644 index 0000000000..e5c382aadc --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "55" + }, + "modules": false, + "useBuiltIns": "usage", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/output.mjs new file mode 100644 index 0000000000..31f2d79f9a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-no-transform/output.mjs @@ -0,0 +1,2 @@ +import "not-core-js"; +import "not-babel-polyfill"; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/input.mjs new file mode 100644 index 0000000000..f71c85f35e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/input.mjs @@ -0,0 +1,2 @@ +Number.parseFloat("3.14"); +Number.parseInt("10"); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/options.json similarity index 79% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/options.json rename to packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/options.json index 895761e20b..a8516537b3 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/options.json @@ -4,9 +4,10 @@ "../../../../lib", { "targets": { - "node": "8" + "ie": "11" }, "useBuiltIns": "usage", + "corejs": 3, "modules": false } ] diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/output.mjs new file mode 100644 index 0000000000..e43b049915 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-number-ie-11/output.mjs @@ -0,0 +1,5 @@ +import "core-js/modules/es.number.constructor"; +import "core-js/modules/es.number.parse-float"; +import "core-js/modules/es.number.parse-int"; +Number.parseFloat("3.14"); +Number.parseInt("10"); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/input.mjs new file mode 100644 index 0000000000..33e982c475 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/input.mjs @@ -0,0 +1,23 @@ +var bind, toString; + +var { bind } = Function; + +var { entries } = Object; + +({ toString } = Math); + +const [{ exec }] = something; + +const { 'trim': foo } = '1'; + +const { foo: { filter } } = { foo: [] } + +const { includes } = ''; + +var bar = Array; +const { from } = bar; + +const { ['o' + 'f']: fuz } = Array; + +let forEach = 'sort'; +({ forEach } = zzz); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/options.json new file mode 100644 index 0000000000..66007aa56a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/output.mjs new file mode 100644 index 0000000000..d220e642b5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-destructuring/output.mjs @@ -0,0 +1,53 @@ +import "core-js/modules/es.array.filter"; +import "core-js/modules/es.array.for-each"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array.of"; +import "core-js/modules/es.date.to-string"; +import "core-js/modules/es.function.bind"; +import "core-js/modules/es.object.entries"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.regexp.exec"; +import "core-js/modules/es.regexp.to-string"; +import "core-js/modules/es.string.includes"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/es.string.trim"; +import "core-js/modules/web.dom-collections.for-each"; +import "core-js/modules/web.dom-collections.iterator"; +var bind, toString; +var { + bind: bind +} = Function; +var { + entries: entries +} = Object; +({ + toString: toString +} = Math); +var [{ + exec: exec +}] = something; +var { + 'trim': foo +} = '1'; +var { + foo: { + filter: filter + } +} = { + foo: [] +}; +var { + includes: includes +} = ''; +var bar = Array; +var { + from: from +} = bar; +var { + ['o' + 'f']: fuz +} = Array; +var forEach = 'sort'; +({ + forEach: forEach +} = zzz); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/input.mjs new file mode 100644 index 0000000000..2c63640feb --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/input.mjs @@ -0,0 +1 @@ +a = { b, ...c }; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/options.json new file mode 100644 index 0000000000..723c1039a3 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["proposal-object-rest-spread"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/output.mjs new file mode 100644 index 0000000000..a1e4b08b0d --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-object-spread/output.mjs @@ -0,0 +1,4 @@ +a = { + b: b, + ...c +}; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/input.mjs new file mode 100644 index 0000000000..0fef928e16 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/input.mjs @@ -0,0 +1,4 @@ +var p = Promise.resolve(0); +Promise.all([p]).then(outcome => { + alert("OK"); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/options.json new file mode 100644 index 0000000000..0975cd86bf --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "browsers": ["ie > 10"] + }, + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/output.mjs new file mode 100644 index 0000000000..a645ea5c45 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-all/output.mjs @@ -0,0 +1,9 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +var p = Promise.resolve(0); +Promise.all([p]).then(function (outcome) { + alert("OK"); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/input.mjs new file mode 100644 index 0000000000..bb634febe9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/input.mjs @@ -0,0 +1,4 @@ +var p = Promise.resolve(0); +p.finally(() => { + alert("OK"); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/options.json new file mode 100644 index 0000000000..0975cd86bf --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "browsers": ["ie > 10"] + }, + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/output.mjs new file mode 100644 index 0000000000..d0d487d345 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-finally/output.mjs @@ -0,0 +1,7 @@ +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +var p = Promise.resolve(0); +p.finally(function () { + alert("OK"); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/input.mjs new file mode 100644 index 0000000000..334252838b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/input.mjs @@ -0,0 +1,4 @@ +var p = Promise.resolve(0); +Promise.race([p]).then(outcome => { + alert("OK"); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/options.json new file mode 100644 index 0000000000..0975cd86bf --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "browsers": ["ie > 10"] + }, + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/output.mjs new file mode 100644 index 0000000000..f818ab24bb --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-promise-race/output.mjs @@ -0,0 +1,9 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +var p = Promise.resolve(0); +Promise.race([p]).then(function (outcome) { + alert("OK"); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/input.mjs new file mode 100644 index 0000000000..8f6724b27f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/input.mjs @@ -0,0 +1 @@ +async function a(){} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/options.json new file mode 100644 index 0000000000..abaa6f0c22 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "targets": { + "chrome": 70 + } + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/output.mjs new file mode 100644 index 0000000000..5d965c6200 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-and-promise-native-support/output.mjs @@ -0,0 +1 @@ +async function a() {} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/input.mjs new file mode 100644 index 0000000000..8f6724b27f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/input.mjs @@ -0,0 +1 @@ +async function a(){} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/options.json new file mode 100644 index 0000000000..793f43d96f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "targets": { + "chrome": 55 + } + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/output.mjs new file mode 100644 index 0000000000..9e343bd1df --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async-native-support/output.mjs @@ -0,0 +1,3 @@ +import "core-js/modules/es.promise"; + +async function a() {} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/input.mjs new file mode 100644 index 0000000000..8f6724b27f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/input.mjs @@ -0,0 +1 @@ +async function a(){} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/output.mjs new file mode 100644 index 0000000000..5663fd906a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-async/output.mjs @@ -0,0 +1,28 @@ +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +import "regenerator-runtime/runtime"; + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function a() { + return _a.apply(this, arguments); +} + +function _a() { + _a = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + return _a.apply(this, arguments); +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/input.mjs new file mode 100644 index 0000000000..4df46943d2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/input.mjs @@ -0,0 +1 @@ +function* a() {} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/options.json similarity index 80% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/options.json rename to packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/options.json index b1891c2b58..6814f1539e 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/options.json +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/options.json @@ -4,9 +4,10 @@ "../../../../lib", { "useBuiltIns": "usage", + "corejs": 3, "modules": false, "targets": { - "chrome": 58 + "node": 6 } } ] diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/output.mjs new file mode 100644 index 0000000000..4df46943d2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator-native-support/output.mjs @@ -0,0 +1 @@ +function* a() {} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/input.mjs new file mode 100644 index 0000000000..74604e9198 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/input.mjs @@ -0,0 +1 @@ +function* a(){} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/output.mjs new file mode 100644 index 0000000000..ce5acd262e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-regenerator-used-generator/output.mjs @@ -0,0 +1,17 @@ +import "regenerator-runtime/runtime"; + +var _marked = +/*#__PURE__*/ +regeneratorRuntime.mark(a); + +function a() { + return regeneratorRuntime.wrap(function a$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + case "end": + return _context.stop(); + } + } + }, _marked); +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/input.mjs new file mode 100644 index 0000000000..39641419b1 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/input.mjs @@ -0,0 +1,26 @@ +Array.from; // static method +Map; // built-in +new Promise(); // new builtin +Symbol.match; // as member expression +_arr[Symbol.iterator](); // Symbol.iterator + +// no import +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; +_arr9[Symbol2.iterator](); +_arr9[Symbol.iterator2](); + +G.assign; // static method +function H(WeakMap) { var blah = new WeakMap(); } // shadowed + +const foo = new Promise((resolve) => { + resolve(new Map()); +}); + +queueMicrotask(() => globalThis); + +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/options.json new file mode 100644 index 0000000000..5549e374aa --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/options.json @@ -0,0 +1,13 @@ +{ + "sourceType": "module", + "presets": [ + [ + "../../../../lib", + { + "shippedProposals": true, + "useBuiltIns": "usage", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/output.js b/packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/output.js new file mode 100644 index 0000000000..c8fb626d57 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-shippedProposals/output.js @@ -0,0 +1,69 @@ +"use strict"; + +require("core-js/modules/es.symbol"); + +require("core-js/modules/es.symbol.description"); + +require("core-js/modules/es.symbol.iterator"); + +require("core-js/modules/es.symbol.match"); + +require("core-js/modules/es.array.from"); + +require("core-js/modules/es.array.iterator"); + +require("core-js/modules/es.map"); + +require("core-js/modules/es.object.to-string"); + +require("core-js/modules/es.promise"); + +require("core-js/modules/es.regexp.exec"); + +require("core-js/modules/es.string.iterator"); + +require("core-js/modules/es.string.match"); + +require("core-js/modules/web.dom-collections.iterator"); + +require("core-js/modules/web.queue-microtask"); + +require("core-js/modules/esnext.global-this"); + +Array.from; // static method + +Map; // built-in + +new Promise(); // new builtin + +Symbol.match; // as member expression + +_arr[Symbol.iterator](); // Symbol.iterator +// no import + + +Array.asdf; +Array2.from; +Map2; +new Promise2(); +Symbol.asdf; +Symbol2.match; + +_arr9[Symbol2.iterator](); + +_arr9[Symbol.iterator2](); + +G.assign; // static method + +function H(WeakMap) { + var blah = new WeakMap(); +} // shadowed + + +var foo = new Promise(function (resolve) { + resolve(new Map()); +}); +queueMicrotask(function () { + return globalThis; +}); +Observable.from(10); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/input.js b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/input.js new file mode 100644 index 0000000000..39f9e5858b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/input.js @@ -0,0 +1,8 @@ +require("foo"); + +const x = new Promise(resolve => { + const p = []; + + if (p.includes("a")) { + } +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/options.json new file mode 100644 index 0000000000..7db8c24ae5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/options.json @@ -0,0 +1,16 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "targets": { + "node": "4.0.0" + }, + "useBuiltIns": "usage", + "corejs": 3, + "shippedProposals": true + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/output.js b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/output.js new file mode 100644 index 0000000000..b089b3d0a5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script-query/output.js @@ -0,0 +1,13 @@ +require("core-js/modules/es.array.includes"); + +require("core-js/modules/es.object.to-string"); + +require("core-js/modules/es.promise"); + +require("foo"); + +var x = new Promise(function (resolve) { + var p = []; + + if (p.includes("a")) {} +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/input.js b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/input.js new file mode 100644 index 0000000000..39f9e5858b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/input.js @@ -0,0 +1,8 @@ +require("foo"); + +const x = new Promise(resolve => { + const p = []; + + if (p.includes("a")) { + } +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/options.json new file mode 100644 index 0000000000..7db8c24ae5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/options.json @@ -0,0 +1,16 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "targets": { + "node": "4.0.0" + }, + "useBuiltIns": "usage", + "corejs": 3, + "shippedProposals": true + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/output.js b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/output.js new file mode 100644 index 0000000000..b089b3d0a5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-source-type-script/output.js @@ -0,0 +1,13 @@ +require("core-js/modules/es.array.includes"); + +require("core-js/modules/es.object.to-string"); + +require("core-js/modules/es.promise"); + +require("foo"); + +var x = new Promise(function (resolve) { + var p = []; + + if (p.includes("a")) {} +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-spread/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-spread/input.mjs new file mode 100644 index 0000000000..457ddbbd55 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-spread/input.mjs @@ -0,0 +1 @@ +a = [b, ...c]; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-spread/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-spread/options.json new file mode 100644 index 0000000000..ae6c1c0b3d --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-spread/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-spread"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-spread/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-spread/output.mjs new file mode 100644 index 0000000000..a7a87ab706 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-spread/output.mjs @@ -0,0 +1,4 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +a = [b, ...c]; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/input.mjs new file mode 100644 index 0000000000..12ff05d97b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/input.mjs @@ -0,0 +1,4 @@ +Object.keys(foo); +const getOwnPropertySymbols = Object.getOwnPropertySymbols; +const { assign } = Object; +'defineProperty' in Object; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/options.json new file mode 100644 index 0000000000..d868cc145b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "targets": { + "chrome": 71 + } + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/output.mjs new file mode 100644 index 0000000000..155f173e48 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods-native-support/output.mjs @@ -0,0 +1,6 @@ +Object.keys(foo); +const getOwnPropertySymbols = Object.getOwnPropertySymbols; +const { + assign +} = Object; +'defineProperty' in Object; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/input.mjs new file mode 100644 index 0000000000..12ff05d97b --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/input.mjs @@ -0,0 +1,4 @@ +Object.keys(foo); +const getOwnPropertySymbols = Object.getOwnPropertySymbols; +const { assign } = Object; +'defineProperty' in Object; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/options.json new file mode 100644 index 0000000000..66007aa56a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false, + "exclude": ["transform-destructuring"] + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/output.mjs new file mode 100644 index 0000000000..ffd45f7757 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-static-methods/output.mjs @@ -0,0 +1,10 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.object.assign"; +import "core-js/modules/es.object.define-property"; +import "core-js/modules/es.object.keys"; +Object.keys(foo); +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var { + assign: assign +} = Object; +'defineProperty' in Object; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/input.mjs new file mode 100644 index 0000000000..3d72e8e71c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/input.mjs @@ -0,0 +1 @@ +Symbol.iterator in arr diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/output.mjs new file mode 100644 index 0000000000..6260f4e1fa --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator-in/output.mjs @@ -0,0 +1,8 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +Symbol.iterator in arr; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/input.mjs new file mode 100644 index 0000000000..c44a50ddfd --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/input.mjs @@ -0,0 +1 @@ +arr[Symbol.iterator]() diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/output.mjs new file mode 100644 index 0000000000..01d8ee8fb5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-symbol-iterator/output.mjs @@ -0,0 +1,8 @@ +import "core-js/modules/es.symbol"; +import "core-js/modules/es.symbol.description"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +arr[Symbol.iterator](); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-timers/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-timers/input.mjs new file mode 100644 index 0000000000..0f5be0d2da --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-timers/input.mjs @@ -0,0 +1,5 @@ +Promise.resolve().then(it => { + setTimeout(foo, 1, 2); + setInterval(foo, 1, 2); + setImmediate(foo, 1, 2); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-timers/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-timers/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-timers/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-timers/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-timers/output.mjs new file mode 100644 index 0000000000..dc5557373e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-timers/output.mjs @@ -0,0 +1,9 @@ +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.timers"; +Promise.resolve().then(function (it) { + setTimeout(foo, 1, 2); + setInterval(foo, 1, 2); + setImmediate(foo, 1, 2); +}); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/input.mjs new file mode 100644 index 0000000000..b0bc068aa0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/input.mjs @@ -0,0 +1 @@ +new Int8Array(1); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/options.json new file mode 100644 index 0000000000..87de5aba49 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "targets": { + "edge": "13" + }, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/output.mjs new file mode 100644 index 0000000000..f2fbbbe4b6 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-edge-13/output.mjs @@ -0,0 +1,6 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.to-locale-string"; +new Int8Array(1); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/input.mjs new file mode 100644 index 0000000000..2394d067f8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/input.mjs @@ -0,0 +1 @@ +Int8Array.of(); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/output.mjs new file mode 100644 index 0000000000..469c6467c3 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array-static/output.mjs @@ -0,0 +1,29 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array-buffer.slice"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.copy-within"; +import "core-js/modules/es.typed-array.every"; +import "core-js/modules/es.typed-array.fill"; +import "core-js/modules/es.typed-array.filter"; +import "core-js/modules/es.typed-array.find"; +import "core-js/modules/es.typed-array.find-index"; +import "core-js/modules/es.typed-array.for-each"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.index-of"; +import "core-js/modules/es.typed-array.iterator"; +import "core-js/modules/es.typed-array.join"; +import "core-js/modules/es.typed-array.last-index-of"; +import "core-js/modules/es.typed-array.map"; +import "core-js/modules/es.typed-array.of"; +import "core-js/modules/es.typed-array.reduce"; +import "core-js/modules/es.typed-array.reduce-right"; +import "core-js/modules/es.typed-array.reverse"; +import "core-js/modules/es.typed-array.set"; +import "core-js/modules/es.typed-array.slice"; +import "core-js/modules/es.typed-array.some"; +import "core-js/modules/es.typed-array.sort"; +import "core-js/modules/es.typed-array.subarray"; +import "core-js/modules/es.typed-array.to-locale-string"; +import "core-js/modules/es.typed-array.to-string"; +Int8Array.of(); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/input.mjs new file mode 100644 index 0000000000..b0bc068aa0 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/input.mjs @@ -0,0 +1 @@ +new Int8Array(1); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/options.json new file mode 100644 index 0000000000..c7f8e1de84 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/output.mjs new file mode 100644 index 0000000000..dcce776d08 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-typed-array/output.mjs @@ -0,0 +1,28 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/es.array-buffer.slice"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.typed-array.int8-array"; +import "core-js/modules/es.typed-array.copy-within"; +import "core-js/modules/es.typed-array.every"; +import "core-js/modules/es.typed-array.fill"; +import "core-js/modules/es.typed-array.filter"; +import "core-js/modules/es.typed-array.find"; +import "core-js/modules/es.typed-array.find-index"; +import "core-js/modules/es.typed-array.for-each"; +import "core-js/modules/es.typed-array.includes"; +import "core-js/modules/es.typed-array.index-of"; +import "core-js/modules/es.typed-array.iterator"; +import "core-js/modules/es.typed-array.join"; +import "core-js/modules/es.typed-array.last-index-of"; +import "core-js/modules/es.typed-array.map"; +import "core-js/modules/es.typed-array.reduce"; +import "core-js/modules/es.typed-array.reduce-right"; +import "core-js/modules/es.typed-array.reverse"; +import "core-js/modules/es.typed-array.set"; +import "core-js/modules/es.typed-array.slice"; +import "core-js/modules/es.typed-array.some"; +import "core-js/modules/es.typed-array.sort"; +import "core-js/modules/es.typed-array.subarray"; +import "core-js/modules/es.typed-array.to-locale-string"; +import "core-js/modules/es.typed-array.to-string"; +new Int8Array(1); diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/input.mjs new file mode 100644 index 0000000000..927d2f2772 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/input.mjs @@ -0,0 +1,3 @@ +function* a() { + yield 1; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/options.json new file mode 100644 index 0000000000..f288ad5a39 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "targets": { + "chrome": 55 + }, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/output.mjs new file mode 100644 index 0000000000..927d2f2772 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-non-star/output.mjs @@ -0,0 +1,3 @@ +function* a() { + yield 1; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/input.mjs new file mode 100644 index 0000000000..4915d62092 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/input.mjs @@ -0,0 +1,3 @@ +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/options.json b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/options.json new file mode 100644 index 0000000000..f288ad5a39 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 3, + "targets": { + "chrome": 55 + }, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/output.mjs new file mode 100644 index 0000000000..be5b5a63a3 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-yield-star/output.mjs @@ -0,0 +1,6 @@ +import "core-js/modules/es.array.iterator"; +import "core-js/modules/web.dom-collections.iterator"; + +function* a() { + yield* 1; +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/input.mjs b/packages/babel-preset-env/test/fixtures/modules/modules-amd-loose/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/input.mjs rename to packages/babel-preset-env/test/fixtures/modules/modules-amd-loose/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/options.json b/packages/babel-preset-env/test/fixtures/modules/modules-amd-loose/options.json similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/options.json rename to packages/babel-preset-env/test/fixtures/modules/modules-amd-loose/options.json diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/output.js b/packages/babel-preset-env/test/fixtures/modules/modules-amd-loose/output.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/output.js rename to packages/babel-preset-env/test/fixtures/modules/modules-amd-loose/output.js diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/input.mjs b/packages/babel-preset-env/test/fixtures/modules/modules-cjs/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/input.mjs rename to packages/babel-preset-env/test/fixtures/modules/modules-cjs/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/options.json b/packages/babel-preset-env/test/fixtures/modules/modules-cjs/options.json similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/options.json rename to packages/babel-preset-env/test/fixtures/modules/modules-cjs/options.json diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/output.js b/packages/babel-preset-env/test/fixtures/modules/modules-cjs/output.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/output.js rename to packages/babel-preset-env/test/fixtures/modules/modules-cjs/output.js diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/input.mjs b/packages/babel-preset-env/test/fixtures/modules/modules-commonjs/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/input.mjs rename to packages/babel-preset-env/test/fixtures/modules/modules-commonjs/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/options.json b/packages/babel-preset-env/test/fixtures/modules/modules-commonjs/options.json similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/options.json rename to packages/babel-preset-env/test/fixtures/modules/modules-commonjs/options.json diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/output.js b/packages/babel-preset-env/test/fixtures/modules/modules-commonjs/output.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/output.js rename to packages/babel-preset-env/test/fixtures/modules/modules-commonjs/output.js diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-false/input.mjs b/packages/babel-preset-env/test/fixtures/modules/modules-false/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-false/input.mjs rename to packages/babel-preset-env/test/fixtures/modules/modules-false/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-false/options.json b/packages/babel-preset-env/test/fixtures/modules/modules-false/options.json similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-false/options.json rename to packages/babel-preset-env/test/fixtures/modules/modules-false/options.json diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-false/output.mjs b/packages/babel-preset-env/test/fixtures/modules/modules-false/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-false/output.mjs rename to packages/babel-preset-env/test/fixtures/modules/modules-false/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/input.mjs b/packages/babel-preset-env/test/fixtures/modules/modules-systemjs/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/input.mjs rename to packages/babel-preset-env/test/fixtures/modules/modules-systemjs/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/options.json b/packages/babel-preset-env/test/fixtures/modules/modules-systemjs/options.json similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/options.json rename to packages/babel-preset-env/test/fixtures/modules/modules-systemjs/options.json diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/output.mjs b/packages/babel-preset-env/test/fixtures/modules/modules-systemjs/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/output.mjs rename to packages/babel-preset-env/test/fixtures/modules/modules-systemjs/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-umd/input.mjs b/packages/babel-preset-env/test/fixtures/modules/modules-umd/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-umd/input.mjs rename to packages/babel-preset-env/test/fixtures/modules/modules-umd/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-umd/options.json b/packages/babel-preset-env/test/fixtures/modules/modules-umd/options.json similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-umd/options.json rename to packages/babel-preset-env/test/fixtures/modules/modules-umd/options.json diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-umd/output.js b/packages/babel-preset-env/test/fixtures/modules/modules-umd/output.js similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/modules-umd/output.js rename to packages/babel-preset-env/test/fixtures/modules/modules-umd/output.js diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/options.json b/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/options.json deleted file mode 100644 index de03c1982f..0000000000 --- a/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/options.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "plugins": [ - [ - "../../../../lib/use-built-ins-entry-plugin", - { - "polyfills": [ - "es6.typed.data-view", - "es6.typed.data-view", - "es6.reflect.apply" - ] - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/output.mjs b/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/output.mjs deleted file mode 100644 index 6a01cbb4c3..0000000000 --- a/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/output.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import "core-js/modules/es6.typed.data-view"; -import "core-js/modules/es6.reflect.apply"; diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/options.json b/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/options.json deleted file mode 100644 index 122e5e85dd..0000000000 --- a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/options.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "plugins": [ - [ - "../../../../lib/use-built-ins-entry-plugin", - { - "regenerator": false, - "polyfills": [] - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/options.json b/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/options.json deleted file mode 100644 index f68b3a1f0e..0000000000 --- a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/options.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "plugins": [ - [ - "../../../../lib/use-built-ins-entry-plugin", - { - "regenerator": true, - "polyfills": [] - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/output.mjs b/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/output.mjs deleted file mode 100644 index 50dec607ef..0000000000 --- a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/output.mjs +++ /dev/null @@ -1 +0,0 @@ -import "regenerator-runtime/runtime"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/options.json deleted file mode 100644 index 0724294c9b..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/options.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "presets": [ - [ - "../../../../lib", - { - "useBuiltIns": "usage", - "modules": false - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/options.json deleted file mode 100644 index 0724294c9b..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/options.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "presets": [ - [ - "../../../../lib", - { - "useBuiltIns": "usage", - "modules": false - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/output.mjs deleted file mode 100644 index 925203985f..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/output.mjs +++ /dev/null @@ -1,6 +0,0 @@ -for (const _ref of foo) { - const { - a - } = _ref; - console.log(a); -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/options.json deleted file mode 100644 index 0724294c9b..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/options.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "presets": [ - [ - "../../../../lib", - { - "useBuiltIns": "usage", - "modules": false - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/options.json deleted file mode 100644 index 0724294c9b..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/options.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "presets": [ - [ - "../../../../lib", - { - "useBuiltIns": "usage", - "modules": false - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/options.json deleted file mode 100644 index 0724294c9b..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/options.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "presets": [ - [ - "../../../../lib", - { - "useBuiltIns": "usage", - "modules": false - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/options.json deleted file mode 100644 index 0724294c9b..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/options.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "presets": [ - [ - "../../../../lib", - { - "useBuiltIns": "usage", - "modules": false - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ios-6/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options/ios-6/input.mjs index c3fee8a175..02d939c57f 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/ios-6/input.mjs +++ b/packages/babel-preset-env/test/fixtures/preset-options/ios-6/input.mjs @@ -1 +1 @@ -import "core-js"; +const a = () => 1; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ios-6/options.json b/packages/babel-preset-env/test/fixtures/preset-options/ios-6/options.json index 96778c122b..ef1f77b91a 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/ios-6/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/ios-6/options.json @@ -6,8 +6,7 @@ "targets": { "browsers": ["ios >= 6"] }, - "modules": false, - "useBuiltIns": "usage" + "modules": false } ] ] diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ios-6/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/ios-6/output.mjs new file mode 100644 index 0000000000..6bf835e390 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/ios-6/output.mjs @@ -0,0 +1,3 @@ +var a = function a() { + return 1; +}; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/output.js b/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/output.js deleted file mode 100644 index b88e31607c..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/output.js +++ /dev/null @@ -1,67 +0,0 @@ -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -function _awaitAsyncGenerator(value) { return new _AwaitValue(value); } - -function _wrapAsyncGenerator(fn) { return function () { return new _AsyncGenerator(fn.apply(this, arguments)); }; } - -function _AsyncGenerator(gen) { var front, back; function send(key, arg) { return new Promise(function (resolve, reject) { var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null }; if (back) { back = back.next = request; } else { front = back = request; resume(key, arg); } }); } function resume(key, arg) { try { var result = gen[key](arg); var value = result.value; var wrappedAwait = value instanceof _AwaitValue; Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { if (wrappedAwait) { resume("next", arg); return; } settle(result.done ? "return" : "normal", arg); }, function (err) { resume("throw", err); }); } catch (err) { settle("throw", err); } } function settle(type, value) { switch (type) { case "return": front.resolve({ value: value, done: true }); break; case "throw": front.reject(value); break; default: front.resolve({ value: value, done: false }); break; } front = front.next; if (front) { resume(front.key, front.arg); } else { back = null; } } this._invoke = send; if (typeof gen.return !== "function") { this.return = undefined; } } - -if (typeof Symbol === "function" && Symbol.asyncIterator) { _AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; }; } - -_AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); }; - -_AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); }; - -_AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); }; - -function _AwaitValue(value) { this.wrapped = value; } - -var _x$y$a$b = { - x: 1, - y: 2, - a: 3, - b: 4 -}, - x = _x$y$a$b.x, - y = _x$y$a$b.y, - z = _objectWithoutProperties(_x$y$a$b, ["x", "y"]); - -var n = _objectSpread({ - x: x, - y: y -}, z); - -function agf() { - return _agf.apply(this, arguments); -} - -function _agf() { - _agf = _wrapAsyncGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee() { - return regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return _awaitAsyncGenerator(1); - - case 2: - _context.next = 4; - return 2; - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return _agf.apply(this, arguments); -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/options.json deleted file mode 100644 index 6053ab0e29..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/options.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "presets": [ - [ - "../../../../lib", - { - "targets": { - "chrome": 55 - }, - "modules": false, - "useBuiltIns": "entry" - } - ] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/input.mjs deleted file mode 100644 index b4ece7b964..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/input.mjs +++ /dev/null @@ -1 +0,0 @@ -import "@babel/polyfill"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/input.mjs deleted file mode 100644 index b4ece7b964..0000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/input.mjs +++ /dev/null @@ -1 +0,0 @@ -import "@babel/polyfill"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options/useBuiltIns-false/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/input.mjs rename to packages/babel-preset-env/test/fixtures/preset-options/useBuiltIns-false/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/options.json b/packages/babel-preset-env/test/fixtures/preset-options/useBuiltIns-false/options.json similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/options.json rename to packages/babel-preset-env/test/fixtures/preset-options/useBuiltIns-false/options.json diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/useBuiltIns-false/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/output.mjs rename to packages/babel-preset-env/test/fixtures/preset-options/useBuiltIns-false/output.mjs diff --git a/packages/babel-preset-env/test/get-option-specific-excludes.spec.js b/packages/babel-preset-env/test/get-option-specific-excludes.spec.js new file mode 100644 index 0000000000..ea0cd6950c --- /dev/null +++ b/packages/babel-preset-env/test/get-option-specific-excludes.spec.js @@ -0,0 +1,24 @@ +"use strict"; + +const getOptionSpecificExcludesFor = require("../lib/get-option-specific-excludes") + .default; + +describe("defaults", () => { + describe("getOptionSpecificExcludesFor", () => { + it("should return correct excludes for `loose` mode", () => { + const defaultWebIncludesForChromeAndNode = getOptionSpecificExcludesFor({ + loose: true, + }); + expect(defaultWebIncludesForChromeAndNode).toEqual([ + "transform-typeof-symbol", + ]); + }); + + it("shouldn't return excludes for non-`loose` mode", () => { + const defaultWebIncludesForChromeAndNode = getOptionSpecificExcludesFor({ + loose: false, + }); + expect(defaultWebIncludesForChromeAndNode).toBeNull(); + }); + }); +}); diff --git a/packages/babel-preset-env/test/get-platform-specific-default.spec.js b/packages/babel-preset-env/test/get-platform-specific-default.spec.js new file mode 100644 index 0000000000..1958a7fa6d --- /dev/null +++ b/packages/babel-preset-env/test/get-platform-specific-default.spec.js @@ -0,0 +1,31 @@ +"use strict"; + +const getCoreJS2PlatformSpecificDefaultFor = require("../lib/polyfills/corejs2/get-platform-specific-default") + .default; + +describe("defaults", () => { + describe("getCoreJS2PlatformSpecificDefaultFor", () => { + it("should return web polyfills for non-`node` platform", () => { + const defaultWebIncludesForChromeAndNode = getCoreJS2PlatformSpecificDefaultFor( + { + chrome: "63", + node: "8", + }, + ); + expect(defaultWebIncludesForChromeAndNode).toEqual([ + "web.timers", + "web.immediate", + "web.dom.iterable", + ]); + }); + + it("shouldn't return web polyfills for node platform", () => { + const defaultWebIncludesForChromeAndNode = getCoreJS2PlatformSpecificDefaultFor( + { + node: "8", + }, + ); + expect(defaultWebIncludesForChromeAndNode).toBeNull(); + }); + }); +}); diff --git a/packages/babel-preset-env/test/index.spec.js b/packages/babel-preset-env/test/index.spec.js index 155207c8b1..7b281f4e18 100644 --- a/packages/babel-preset-env/test/index.spec.js +++ b/packages/babel-preset-env/test/index.spec.js @@ -1,87 +1,8 @@ "use strict"; -const babelPresetEnv = require("../lib/index.js"); +const babelPresetEnv = require("../lib/index"); describe("babel-preset-env", () => { - describe("isPluginRequired", () => { - const MAX_VERSION = `${Number.MAX_SAFE_INTEGER}.0.0`; - - it("returns true if no targets are specified", () => { - expect(babelPresetEnv.isPluginRequired({}, {})).toBe(true); - }); - - it("returns true if plugin feature is not implemented in one or more targets", () => { - let targets; - const plugin = { - edge: false, - firefox: 45, - chrome: 49, - }; - - targets = { - chrome: MAX_VERSION, - firefox: MAX_VERSION, - }; - expect(babelPresetEnv.isPluginRequired(targets, plugin)).toBe(false); - - targets = { - edge: "12", - }; - expect(babelPresetEnv.isPluginRequired(targets, plugin)).toBe(true); - }); - - it("returns false if plugin feature is implemented by lower than target", () => { - const plugin = { - chrome: 49, - }; - const targets = { - chrome: MAX_VERSION, - }; - - expect(babelPresetEnv.isPluginRequired(targets, plugin)).toBe(false); - }); - - it("returns false if plugin feature is implemented is equal to target", () => { - const plugin = { - chrome: 49, - }; - const targets = { - chrome: "49.0.0", - }; - expect(babelPresetEnv.isPluginRequired(targets, plugin)).toBe(false); - }); - - it("returns true if plugin feature is implemented is greater than target", () => { - const plugin = { - chrome: 50, - }; - const targets = { - chrome: "49.0.0", - }; - expect(babelPresetEnv.isPluginRequired(targets, plugin)).toBe(true); - }); - - it("returns when target is a decimal", () => { - const plugin = { - node: 6.9, - }; - const targets = { - node: "6.10.0", - }; - expect(babelPresetEnv.isPluginRequired(targets, plugin)).toBe(false); - }); - - it("throws an error if target version is invalid", () => { - const plugin = { - chrome: 50, - }; - const targets = { - chrome: 55, - }; - expect(() => babelPresetEnv.isPluginRequired(targets, plugin)).toThrow(); - }); - }); - describe("transformIncludesAndExcludes", () => { it("should return in transforms array", () => { expect( @@ -96,10 +17,10 @@ describe("babel-preset-env", () => { }); it("should return in built-ins array", () => { - expect(babelPresetEnv.transformIncludesAndExcludes(["es6.map"])).toEqual({ - all: ["es6.map"], + expect(babelPresetEnv.transformIncludesAndExcludes(["es.map"])).toEqual({ + all: ["es.map"], plugins: new Set(), - builtIns: new Set(["es6.map"]), + builtIns: new Set(["es.map"]), }); }); }); diff --git a/packages/babel-preset-env/test/normalize-options.spec.js b/packages/babel-preset-env/test/normalize-options.spec.js index fa08252160..81817d06c6 100644 --- a/packages/babel-preset-env/test/normalize-options.spec.js +++ b/packages/babel-preset-env/test/normalize-options.spec.js @@ -97,20 +97,24 @@ describe("normalize-options", () => { it("should expand regular expressions in `include` and `exclude`", () => { const normalized = normalizeOptions.default({ - exclude: ["es6.math.log.*"], + useBuiltIns: "entry", + corejs: 3, + exclude: ["es.math.log.*"], }); expect(normalized.exclude).toEqual([ - "es6.math.log1p", - "es6.math.log10", - "es6.math.log2", + "es.math.log10", + "es.math.log1p", + "es.math.log2", ]); }); it("should not allow the same modules in `include` and `exclude`", () => { const normalizeWithNonExistingPlugin = () => { normalizeOptions.default({ - include: ["es6.math.log2"], - exclude: ["es6.math.log.*"], + useBuiltIns: "entry", + corejs: 3, + include: ["es.math.log2"], + exclude: ["es.math.log.*"], }); }; expect(normalizeWithNonExistingPlugin).toThrow(Error); @@ -118,11 +122,13 @@ describe("normalize-options", () => { it("should not do partial match if not explicitly defined `include` and `exclude`", () => { const normalized = normalizeOptions.default({ - include: ["es6.reflect.set-prototype-of"], - exclude: ["es6.reflect.set"], + useBuiltIns: "entry", + corejs: 3, + include: ["es.reflect.set-prototype-of"], + exclude: ["es.reflect.set"], }); - expect(normalized.include).toEqual(["es6.reflect.set-prototype-of"]); - expect(normalized.exclude).toEqual(["es6.reflect.set"]); + expect(normalized.include).toEqual(["es.reflect.set-prototype-of"]); + expect(normalized.exclude).toEqual(["es.reflect.set"]); }); }); diff --git a/packages/babel-register/package.json b/packages/babel-register/package.json index dbbd342d56..a0134e6719 100644 --- a/packages/babel-register/package.json +++ b/packages/babel-register/package.json @@ -13,7 +13,7 @@ "./lib/node.js": "./lib/browser.js" }, "dependencies": { - "core-js": "^2.5.7", + "core-js": "^3.0.0", "find-cache-dir": "^2.0.0", "lodash": "^4.17.11", "mkdirp": "^0.5.1", diff --git a/packages/babel-runtime-corejs2/package.json b/packages/babel-runtime-corejs2/package.json index 9ebe3ff30e..d6713aa5c3 100644 --- a/packages/babel-runtime-corejs2/package.json +++ b/packages/babel-runtime-corejs2/package.json @@ -9,7 +9,7 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-runtime-corejs2", "author": "Sebastian McKenzie ", "dependencies": { - "core-js": "^2.5.7", + "core-js": "^2.6.5", "regenerator-runtime": "^0.13.2" }, "devDependencies": { diff --git a/packages/babel-runtime-corejs3/.npmignore b/packages/babel-runtime-corejs3/.npmignore new file mode 100644 index 0000000000..f980694583 --- /dev/null +++ b/packages/babel-runtime-corejs3/.npmignore @@ -0,0 +1,3 @@ +src +test +*.log diff --git a/packages/babel-runtime-corejs3/README.md b/packages/babel-runtime-corejs3/README.md new file mode 100644 index 0000000000..78ce1b4b8e --- /dev/null +++ b/packages/babel-runtime-corejs3/README.md @@ -0,0 +1,17 @@ +# @babel/runtime-corejs3 + +> babel's modular runtime helpers with core-js@3 polyfilling + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/runtime-corejs3 +``` + +or using yarn: + +```sh +yarn add @babel/runtime-corejs3 --dev +``` diff --git a/packages/babel-runtime-corejs3/package.json b/packages/babel-runtime-corejs3/package.json new file mode 100644 index 0000000000..15e8d6761f --- /dev/null +++ b/packages/babel-runtime-corejs3/package.json @@ -0,0 +1,15 @@ +{ + "name": "@babel/runtime-corejs3", + "version": "7.2.0", + "description": "babel's modular runtime helpers with core-js@3 polyfilling", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": "https://github.com/babel/babel/tree/master/packages/babel-runtime-corejs3", + "author": "Denis Pushkarev ", + "dependencies": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.2" + } +} diff --git a/packages/babel-runtime-corejs3/regenerator/index.js b/packages/babel-runtime-corejs3/regenerator/index.js new file mode 100644 index 0000000000..9fd4158a6d --- /dev/null +++ b/packages/babel-runtime-corejs3/regenerator/index.js @@ -0,0 +1 @@ +module.exports = require("regenerator-runtime"); diff --git a/packages/babel-runtime-corejs3/test/index.spec.js b/packages/babel-runtime-corejs3/test/index.spec.js new file mode 100644 index 0000000000..5f58d25022 --- /dev/null +++ b/packages/babel-runtime-corejs3/test/index.spec.js @@ -0,0 +1,503 @@ +"use strict"; + +describe("babel-runtime", () => { + describe("instance methods entries", () => { + it("at, exists", () => { + expect( + require("../core-js/instance/at")("").call("a", 0), + ).toEqual("a"); + }); + + it("at, missing", () => { + expect( + require("../core-js/instance/at")({}), + ).toEqual(undefined); + }); + + it("bind, exists", () => { + expect( + require("../core-js/instance/bind")(() => {}).call(function () { return this; }, 42)(), + ).toEqual(42); + }); + + it("bind, missing", () => { + expect( + require("../core-js/instance/bind")({}), + ).toEqual(undefined); + }); + + it("codePointAt, exists", () => { + expect( + require("../core-js/instance/code-point-at")("").call("a", 0), + ).toEqual(97); + }); + + it("codePointAt, missing", () => { + expect( + require("../core-js/instance/code-point-at")({}), + ).toEqual(undefined); + }); + + it("codePoints, exists", () => { + expect( + typeof require("../core-js/instance/code-points")("").call("a").next, + ).toEqual("function"); + }); + + it("codePoints, missing", () => { + expect( + require("../core-js/instance/code-points")({}), + ).toEqual(undefined); + }); + + it("concat, exists", () => { + expect( + require("../core-js/instance/concat")([]).call([1, 2], [3, 4]).length, + ).toEqual(4); + }); + + it("concat, missing", () => { + expect( + require("../core-js/instance/concat")({}), + ).toEqual(undefined); + }); + + it("copyWithin, exists", () => { + expect( + require("../core-js/instance/copy-within")([]).call([1, 2, 3], 1)[2], + ).toEqual(2); + }); + + it("copyWithin, missing", () => { + expect( + require("../core-js/instance/copy-within")({}), + ).toEqual(undefined); + }); + + it("endsWith, exists", () => { + expect( + require("../core-js/instance/ends-with")("").call("qwe", "we"), + ).toEqual(true); + }); + + it("endsWith, missing", () => { + expect( + require("../core-js/instance/ends-with")({}), + ).toEqual(undefined); + }); + + it("entries, exists", () => { + expect( + require("../core-js/instance/entries")([]).call([]).next().done, + ).toEqual(true); + }); + + it("entries, missing", () => { + expect( + require("../core-js/instance/entries")({}), + ).toEqual(undefined); + }); + + it("every, exists", () => { + expect( + require("../core-js/instance/every")([]).call([1, 2, 3], it => typeof it === "number"), + ).toEqual(true); + }); + + it("every, missing", () => { + expect( + require("../core-js/instance/every")({}), + ).toEqual(undefined); + }); + + it("fill, exists", () => { + expect( + require("../core-js/instance/fill")([]).call([1, 2, 3], 42)[1], + ).toEqual(42); + }); + + it("fill, missing", () => { + expect( + require("../core-js/instance/fill")({}), + ).toEqual(undefined); + }); + + it("filter, exists", () => { + expect( + require("../core-js/instance/filter")([]).call([1, 2, 3], it => it % 2).length, + ).toEqual(2); + }); + + it("filter, missing", () => { + expect( + require("../core-js/instance/filter")({}), + ).toEqual(undefined); + }); + + it("find, exists", () => { + expect( + require("../core-js/instance/find")([]).call([1, 2, 3], it => !(it % 2)), + ).toEqual(2); + }); + + it("find, missing", () => { + expect( + require("../core-js/instance/find")({}), + ).toEqual(undefined); + }); + + it("findIndex, exists", () => { + expect( + require("../core-js/instance/find-index")([]).call([1, 2, 3], it => !(it % 2)), + ).toEqual(1); + }); + + it("findIndex, missing", () => { + expect( + require("../core-js/instance/find-index")({}), + ).toEqual(undefined); + }); + + it("flags, exists", () => { + expect( + require("../core-js/instance/flags")(/./gim), + ).toEqual("gim"); + }); + + it("flags, missing", () => { + expect( + require("../core-js/instance/flags")({}), + ).toEqual(undefined); + }); + + it("flatMap, exists", () => { + expect( + require("../core-js/instance/flat-map")([]).call([1, 2, [3, 4]], it => it).length, + ).toEqual(4); + }); + + it("flatMap, missing", () => { + expect( + require("../core-js/instance/flat-map")({}), + ).toEqual(undefined); + }); + + it("flat, exists", () => { + expect( + require("../core-js/instance/flat")([]).call([1, 2, [3, 4]]).length, + ).toEqual(4); + }); + + it("flat, missing", () => { + expect( + require("../core-js/instance/flat")({}), + ).toEqual(undefined); + }); + + it("forEach, exists", () => { + expect( + typeof require("../core-js/instance/for-each")([]), + ).toEqual("function"); + }); + + it("forEach, missing", () => { + expect( + require("../core-js/instance/for-each")({}), + ).toEqual(undefined); + }); + + it("includes, array", () => { + expect( + require("../core-js/instance/includes")([]).call([1, 2, 3], 2), + ).toEqual(true); + }); + + it("includes, string", () => { + expect( + require("../core-js/instance/includes")("").call("qweasd", "ea"), + ).toEqual(true); + }); + + it("includes, missing", () => { + expect( + require("../core-js/instance/includes")({}), + ).toEqual(undefined); + }); + + it("indexOf, exists", () => { + expect( + require("../core-js/instance/index-of")([]).call([1, 2, 3], 4), + ).toEqual(-1); + }); + + it("indexOf, missing", () => { + expect( + require("../core-js/instance/index-of")({}), + ).toEqual(undefined); + }); + + it("keys, exists", () => { + expect( + require("../core-js/instance/keys")([]).call([]).next().done, + ).toEqual(true); + }); + + it("keys, missing", () => { + expect( + require("../core-js/instance/keys")({}), + ).toEqual(undefined); + }); + + it("lastIndexOf, exists", () => { + expect( + require("../core-js/instance/last-index-of")([]).call([1, 2, 3], 4), + ).toEqual(-1); + }); + + it("lastIndexOf, missing", () => { + expect( + require("../core-js/instance/last-index-of")({}), + ).toEqual(undefined); + }); + + it("map, exists", () => { + expect( + require("../core-js/instance/map")([]).call([1, 2, 3], it => it * it)[2], + ).toEqual(9); + }); + + it("map, missing", () => { + expect( + require("../core-js/instance/map")({}), + ).toEqual(undefined); + }); + + it("matchAll, exists", () => { + expect( + typeof require("../core-js/instance/match-all")("").call("qwe", /./).next, + ).toEqual("function"); + }); + + it("matchAll, missing", () => { + expect( + require("../core-js/instance/match-all")({}), + ).toEqual(undefined); + }); + + it("padEnd, exists", () => { + expect( + require("../core-js/instance/pad-end")("").call("qwe", 6), + ).toEqual("qwe "); + }); + + it("padEnd, missing", () => { + expect( + require("../core-js/instance/pad-end")({}), + ).toEqual(undefined); + }); + + it("padStart, exists", () => { + expect( + require("../core-js/instance/pad-start")("").call("qwe", 6), + ).toEqual(" qwe"); + }); + + it("padStart, missing", () => { + expect( + require("../core-js/instance/pad-start")({}), + ).toEqual(undefined); + }); + + it("reduce, exists", () => { + expect( + require("../core-js/instance/reduce")([]).call([1, 2, 3], (a, b) => a + b), + ).toEqual(6); + }); + + it("reduce, missing", () => { + expect( + require("../core-js/instance/reduce")({}), + ).toEqual(undefined); + }); + + it("reduceRight, exists", () => { + expect( + require("../core-js/instance/reduce-right")([]).call([1, 2, 3], (a, b) => a + b), + ).toEqual(6); + }); + + it("reduceRight, missing", () => { + expect( + require("../core-js/instance/reduce-right")({}), + ).toEqual(undefined); + }); + + it("repeat, exists", () => { + expect( + require("../core-js/instance/repeat")("").call("q", 6), + ).toEqual("qqqqqq"); + }); + + it("repeat, missing", () => { + expect( + require("../core-js/instance/repeat")({}), + ).toEqual(undefined); + }); + + it("replaceAll, exists", () => { + expect( + require("../core-js/instance/replace-all")("").call("qwe", "w", "r"), + ).toEqual("qre"); + }); + + it("replaceAll, missing", () => { + expect( + require("../core-js/instance/replace-all")({}), + ).toEqual(undefined); + }); + + it("reverse, exists", () => { + expect( + require("../core-js/instance/reverse")([]).call([1, 2, 3]).join(''), + ).toEqual("321"); + }); + + it("reverse, missing", () => { + expect( + require("../core-js/instance/reverse")({}), + ).toEqual(undefined); + }); + + it("slice, exists", () => { + expect( + require("../core-js/instance/slice")([]).call([1, 2, 3], 1)[0], + ).toEqual(2); + }); + + it("slice, missing", () => { + expect( + require("../core-js/instance/slice")({}), + ).toEqual(undefined); + }); + + it("some, exists", () => { + expect( + require("../core-js/instance/some")([]).call([1, 2, 3], it => typeof it === "number"), + ).toEqual(true); + }); + + it("some, missing", () => { + expect( + require("../core-js/instance/some")({}), + ).toEqual(undefined); + }); + + it("sort, exists", () => { + expect( + typeof require("../core-js/instance/sort")([]), + ).toEqual("function"); + }); + + it("sort, missing", () => { + expect( + require("../core-js/instance/sort")({}), + ).toEqual(undefined); + }); + + it("splice, exists", () => { + expect( + typeof require("../core-js/instance/splice")([]), + ).toEqual("function"); + }); + + it("splice, missing", () => { + expect( + require("../core-js/instance/splice")({}), + ).toEqual(undefined); + }); + + it("startsWith, exists", () => { + expect( + require("../core-js/instance/starts-with")("").call("qwe", "qw"), + ).toEqual(true); + }); + + it("startsWith, missing", () => { + expect( + require("../core-js/instance/starts-with")({}), + ).toEqual(undefined); + }); + + it("trim, exists", () => { + expect( + require("../core-js/instance/trim")("").call(" qwe "), + ).toEqual("qwe"); + }); + + it("trim, missing", () => { + expect( + require("../core-js/instance/trim")({}), + ).toEqual(undefined); + }); + + it("trimEnd, exists", () => { + expect( + require("../core-js/instance/trim-end")("").call(" qwe "), + ).toEqual(" qwe"); + }); + + it("trimEnd, missing", () => { + expect( + require("../core-js/instance/trim-end")({}), + ).toEqual(undefined); + }); + + it("trimLeft, exists", () => { + expect( + require("../core-js/instance/trim-left")("").call(" qwe "), + ).toEqual("qwe "); + }); + + it("trimLeft, missing", () => { + expect( + require("../core-js/instance/trim-left")({}), + ).toEqual(undefined); + }); + + it("trimRight, exists", () => { + expect( + require("../core-js/instance/trim-right")("").call(" qwe "), + ).toEqual(" qwe"); + }); + + it("trimRight, missing", () => { + expect( + require("../core-js/instance/trim-right")({}), + ).toEqual(undefined); + }); + + it("trimStart, exists", () => { + expect( + require("../core-js/instance/trim-start")("").call(" qwe "), + ).toEqual("qwe "); + }); + + it("trimStart, missing", () => { + expect( + require("../core-js/instance/trim-start")({}), + ).toEqual(undefined); + }); + + it("values, exists", () => { + expect( + require("../core-js/instance/values")([]).call([]).next().done, + ).toEqual(true); + }); + + it("values, missing", () => { + expect( + require("../core-js/instance/values")({}), + ).toEqual(undefined); + }); + }); +});