Skip to content

Commit

Permalink
Fix support for polyfilling Array.prototype.values in core-js@2 (#12340)
Browse files Browse the repository at this point in the history
  • Loading branch information
existentialism committed Nov 10, 2020
1 parent 3505eaa commit 08c7280
Show file tree
Hide file tree
Showing 32 changed files with 41 additions and 21 deletions.
16 changes: 8 additions & 8 deletions packages/babel-compat-data/data/corejs2-built-ins.json
Expand Up @@ -147,15 +147,15 @@
"electron": "0.20"
},
"es6.array.iterator": {
"chrome": "38",
"opera": "25",
"chrome": "66",
"opera": "53",
"edge": "12",
"firefox": "28",
"safari": "7.1",
"node": "0.12",
"ios": "8",
"samsung": "3",
"electron": "0.20"
"firefox": "60",
"safari": "9",
"node": "10",
"ios": "9",
"samsung": "9",
"electron": "3.0"
},
"es6.array.last-index-of": {
"chrome": "5",
Expand Down
Expand Up @@ -58,8 +58,7 @@ module.exports = {
"es6.array.iterator": {
features: [
"Array.prototype methods / Array.prototype.keys",
// can use Symbol.iterator, not implemented in many environments
// "Array.prototype methods / Array.prototype.values",
"Array.prototype methods / Array.prototype.values",
"Array.prototype methods / Array.prototype.entries",
],
},
Expand Down
@@ -1,5 +1,6 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.from";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.array.species";
import "core-js/modules/es6.function.has-instance";
Expand Down
@@ -1,5 +1,6 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.from";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.array.species";
import "core-js/modules/es6.function.has-instance";
Expand Down
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.object.define-getter";
import "core-js/modules/es7.object.define-setter";
Expand Down
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.object.define-getter";
import "core-js/modules/es7.object.define-setter";
Expand Down
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.object.define-getter";
import "core-js/modules/es7.object.define-setter";
Expand Down
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.object.define-getter";
import "core-js/modules/es7.object.define-setter";
Expand Down
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.object.define-getter";
import "core-js/modules/es7.object.define-setter";
Expand Down
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.object.define-getter";
import "core-js/modules/es7.object.define-setter";
Expand Down
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.object.define-getter";
import "core-js/modules/es7.object.define-setter";
Expand Down
@@ -1,5 +1,7 @@
require("core-js/modules/es7.array.flat-map");

require("core-js/modules/es6.array.iterator");

require("core-js/modules/es6.array.sort");

require("core-js/modules/es7.object.define-getter");
Expand Down
@@ -1,2 +1,3 @@
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es7.string.trim-left";
import "core-js/modules/es7.string.trim-right";
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.map";
import "core-js/modules/es7.object.define-getter";
Expand Down
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.object.define-getter";
import "core-js/modules/es7.object.define-setter";
Expand Down
@@ -1,4 +1,5 @@
import "core-js/modules/es7.array.flat-map";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.map";
import "core-js/modules/es7.object.define-getter";
Expand Down
@@ -1,2 +1,3 @@
import "core-js/modules/web.dom.iterable";
import "core-js/modules/es6.array.iterator";
var a = new Map();
Expand Up @@ -38,5 +38,6 @@ Using plugins:

Using polyfills with `usage` option:

[<CWD>/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/input.mjs] Added following core-js polyfill:
[<CWD>/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/input.mjs] Added following core-js polyfills:
es6.array.iterator { "android":"61", "chrome":"61", "opera":"48", "samsung":"8.2" }
web.dom.iterable { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" }
Expand Up @@ -45,6 +45,7 @@ Using polyfills with `entry` option:
[<CWD>/packages/babel-preset-env/test/fixtures/debug/entry-corejs2-electron/input.mjs] Replaced @babel/polyfill entries with the following polyfills:
es7.array.flat-map { "electron":"0.36" }
es6.array.from { "electron":"0.36" }
es6.array.iterator { "electron":"0.36" }
es6.array.sort { "electron":"0.36" }
es6.array.species { "electron":"0.36" }
es6.function.has-instance { "electron":"0.36" }
Expand Down
Expand Up @@ -52,6 +52,7 @@ Using polyfills with `entry` option:

[<CWD>/packages/babel-preset-env/test/fixtures/debug/entry-corejs2-force-all-transforms/input.mjs] Replaced @babel/polyfill entries with the following polyfills:
es7.array.flat-map { "chrome":"55" }
es6.array.iterator { "chrome":"55" }
es6.array.sort { "chrome":"55" }
es7.object.define-getter { "chrome":"55" }
es7.object.define-setter { "chrome":"55" }
Expand Down
Expand Up @@ -61,7 +61,7 @@ Using polyfills with `entry` option:
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" }
es6.array.iterator { "chrome":"54", "firefox":"49", "ie":"10", "safari":"7" }
es6.array.of { "ie":"10", "safari":"7" }
es6.array.sort { "chrome":"54", "ios":"9", "safari":"7" }
es6.array.species { "ie":"10", "ios":"9", "safari":"7" }
Expand Down
Expand Up @@ -67,7 +67,7 @@ Using polyfills with `entry` option:
es7.array.flat-map { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" }
es6.array.from { "electron":"0.36", "ie":"10", "node":"6.1" }
es7.array.includes { "ie":"10" }
es6.array.iterator { "ie":"10" }
es6.array.iterator { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" }
es6.array.of { "ie":"10" }
es6.array.sort { "chrome":"54", "electron":"0.36", "node":"6.1" }
es6.array.species { "electron":"0.36", "ie":"10", "node":"6.1" }
Expand Down
Expand Up @@ -58,7 +58,7 @@ Using polyfills with `entry` option:
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" }
es6.array.iterator { "chrome":"54", "ie":"10", "node":"6.10" }
es6.array.of { "ie":"10" }
es6.array.sort { "chrome":"54", "node":"6.10" }
es6.array.species { "ie":"10" }
Expand Down
Expand Up @@ -58,7 +58,7 @@ Using polyfills with `entry` option:
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.iterator { "chrome":"54", "ie":"10", "node":"6" }
es6.array.of { "ie":"10" }
es6.array.sort { "chrome":"54", "node":"6" }
es6.array.species { "ie":"10", "node":"6" }
Expand Down
Expand Up @@ -55,6 +55,7 @@ Using polyfills with `entry` option:

[<CWD>/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs-uglify/input.mjs] Replaced @babel/polyfill entries with the following polyfills:
es7.array.flat-map { "chrome":"55" }
es6.array.iterator { "chrome":"55" }
es6.array.sort { "chrome":"55" }
es7.object.define-getter { "chrome":"55" }
es7.object.define-setter { "chrome":"55" }
Expand Down
Expand Up @@ -58,7 +58,7 @@ Using polyfills with `entry` option:
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.iterator { "chrome":"54", "ie":"10", "node":"6" }
es6.array.of { "ie":"10" }
es6.array.sort { "chrome":"54", "node":"6" }
es6.array.species { "ie":"10", "node":"6" }
Expand Down
Expand Up @@ -54,5 +54,5 @@ Using polyfills with `usage` option:
es6.promise { "ie":"11" }
es6.map { "firefox":"50", "ie":"11" }
es6.string.iterator { "ie":"11" }
es6.array.iterator { "ie":"11" }
es6.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" }
web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" }
Expand Up @@ -54,5 +54,5 @@ Using polyfills with `usage` option:
es6.promise { "ie":"11" }
es6.map { "firefox":"50", "ie":"11" }
es6.string.iterator { "ie":"11" }
es6.array.iterator { "ie":"11" }
es6.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" }
web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" }
Expand Up @@ -56,5 +56,5 @@ Using polyfills with `usage` option:
es6.promise { "ie":"11" }
es6.map { "firefox":"50", "ie":"11" }
es6.string.iterator { "ie":"11" }
es6.array.iterator { "ie":"11" }
es6.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" }
web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" }
Expand Up @@ -3,4 +3,4 @@ WARNING: We noticed you're using the `useBuiltIns` option without declaring a co
You should also be sure that the version you pass to the `corejs` option matches the version specified in your `package.json`'s `dependencies` section. If it doesn't, you need to run one of the following commands:

npm install --save core-js@2 npm install --save core-js@3
yarn add core-js@2 yarn add core-js@3
yarn add core-js@2 yarn add core-js@3
Expand Up @@ -54,5 +54,5 @@ Using polyfills with `usage` option:
es6.promise { "ie":"11" }
es6.map { "firefox":"50", "ie":"11" }
es6.string.iterator { "ie":"11" }
es6.array.iterator { "ie":"11" }
es6.array.iterator { "chrome":"52", "firefox":"50", "ie":"11" }
web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" }
Expand Up @@ -4,3 +4,4 @@ import "MODIFIED";
import "MODIFIED";
import "MODIFIED";
import "MODIFIED";
import "MODIFIED";

0 comments on commit 08c7280

Please sign in to comment.