Add some es5 features to babel-preset-env (#6526)

This commit is contained in:
Brian Ng
2018-01-30 13:53:38 -06:00
committed by GitHub
parent 1ebc229fa5
commit 3deb246c7d
33 changed files with 362 additions and 9 deletions

View File

@@ -8,7 +8,7 @@
"repository": "https://github.com/babel/babel/tree/master/packages/babel-polyfill",
"main": "lib/index.js",
"dependencies": {
"core-js": "^2.4.0",
"core-js": "^2.5.3",
"regenerator-runtime": "^0.11.1"
}
}

View File

@@ -1,3 +1,23 @@
const es5 = {
"es6.array.every": "Array methods / Array.prototype.every",
"es6.array.filter": "Array methods / Array.prototype.filter",
"es6.array.for-each": "Array methods / Array.prototype.forEach",
"es6.array.index-of": "Array methods / Array.prototype.indexOf",
"es6.array.is-array": "Array methods / Array.isArray",
"es6.array.last-index-of": "Array methods / Array.prototype.lastIndexOf",
"es6.array.map": "Array methods / Array.prototype.map",
"es6.array.reduce": "Array methods / Array.prototype.reduce",
"es6.array.reduce-right": "Array methods / Array.prototype.reduceRight",
"es6.array.some": "Array methods / Array.prototype.some",
"es6.array.sort": "Array methods / Array.prototype.sort",
"es6.date.now": "Date methods / Date.now",
"es6.date.to-iso-string": "Date methods / Date.prototype.toISOString",
"es6.date.to-json" : "Date methods / Date.prototype.toJSON",
"es6.function.bind": "Function.prototype.bind",
"es6.string.iterator": "String properties and methods / Property access on strings",
"es6.string.trim": "String properties and methods / String.prototype.trim",
};
const typedArrayMethods = [
"typed arrays / %TypedArray%.from",
"typed arrays / %TypedArray%.of",
@@ -203,4 +223,4 @@ const es2017 = {
const proposals = require("./shipped-proposals").builtIns;
module.exports = Object.assign({}, es2015, es2016, es2017, proposals);
module.exports = Object.assign({}, es5, es2015, es2016, es2017, proposals);

View File

@@ -1,4 +1,204 @@
{
"es6.array.every": {
"chrome": "5",
"opera": "10.1",
"edge": "12",
"firefox": "2",
"safari": "3.1",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.filter": {
"chrome": "5",
"opera": "10.1",
"edge": "12",
"firefox": "2",
"safari": "3.1",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.for-each": {
"chrome": "5",
"opera": "10.1",
"edge": "12",
"firefox": "2",
"safari": "3.1",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.index-of": {
"chrome": "5",
"opera": "10.1",
"edge": "12",
"firefox": "2",
"safari": "3.1",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.is-array": {
"chrome": "5",
"opera": "10.5",
"edge": "12",
"firefox": "4",
"safari": "4",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.last-index-of": {
"chrome": "5",
"opera": "10.1",
"edge": "12",
"firefox": "2",
"safari": "3.1",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.map": {
"chrome": "5",
"opera": "10.1",
"edge": "12",
"firefox": "2",
"safari": "3.1",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.reduce": {
"chrome": "5",
"opera": "10.5",
"edge": "12",
"firefox": "3",
"safari": "4",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.reduce-right": {
"chrome": "5",
"opera": "10.5",
"edge": "12",
"firefox": "3",
"safari": "4",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.some": {
"chrome": "5",
"opera": "10.1",
"edge": "12",
"firefox": "2",
"safari": "3.1",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.array.sort": {
"chrome": "63",
"opera": "50",
"edge": "12",
"firefox": "5",
"safari": "10.1",
"ie": "9",
"ios": "10.3"
},
"es6.date.now": {
"chrome": "5",
"opera": "10.5",
"edge": "12",
"firefox": "2",
"safari": "4",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.date.to-iso-string": {
"chrome": "5",
"opera": "10.5",
"edge": "12",
"firefox": "3.5",
"safari": "4",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.date.to-json": {
"chrome": "5",
"opera": "12.1",
"edge": "12",
"firefox": "4",
"safari": "10",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "10",
"electron": "1.1"
},
"es6.function.bind": {
"chrome": "7",
"opera": "12",
"edge": "12",
"firefox": "4",
"safari": "5.1",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "7"
},
"es6.string.iterator": {
"chrome": "5",
"opera": "10.1",
"edge": "12",
"firefox": "2",
"safari": "3.1",
"node": "0.1",
"ie": "8",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.string.trim": {
"chrome": "5",
"opera": "10.5",
"edge": "12",
"firefox": "3.5",
"safari": "4",
"node": "0.1",
"ie": "9",
"android": "4",
"ios": "6",
"electron": "1.1"
},
"es6.typed.array-buffer": {
"chrome": "51",
"edge": "13",

View File

@@ -54,7 +54,7 @@ const byTestSuite = suite => browser => {
: true;
};
const compatSources = ["es6", "es2016plus", "esnext"].reduce(
const compatSources = ["es5", "es6", "es2016plus", "esnext"].reduce(
(result, source) => {
const data = require(`compat-table/data-${source}`);
data.browsers = pickBy(envs, byTestSuite(source));

View File

@@ -20,32 +20,56 @@ export const definitions = {
},
instanceMethods: {
bind: ["es6.function.bind"],
name: ["es6.function.name"],
fromCodePoint: ["es6.string.from-code-point"],
codePointAt: ["es6.string.code-point-at"],
endsWith: ["es6.string.ends-with"],
fromCodePoint: ["es6.string.from-code-point"],
includes: ["es6.string.includes", "es7.array.includes"],
repeat: ["es6.string.repeat"],
startsWith: ["es6.string.starts-with"],
endsWith: ["es6.string.ends-with"],
includes: ["es6.string.includes", "es7.array.includes"],
trim: ["es6.string.trim"],
flags: ["es6.regexp.flags"],
match: ["es6.regexp.match"],
replace: ["es6.regexp.replace"],
split: ["es6.regexp.split"],
search: ["es6.regexp.search"],
copyWithin: ["es6.array.copy-within"],
every: ["es6.array.is-array"],
find: ["es6.array.find"],
findIndex: ["es6.array.find-index"],
fill: ["es6.array.fill"],
filter: ["es6.array.filter"],
forEach: ["es6.array.for-each"],
indexOf: ["es6.array.index-of"],
lastIndexOf: ["es6.array.last-index-of"],
map: ["es6.array.map"],
reduce: ["es6.array.reduce"],
reduceRight: ["es6.array.reduce-right"],
some: ["es6.array.some"],
sort: ["es6.array.sort"],
padStart: ["es7.string.pad-start"],
padEnd: ["es7.string.pad-end"],
toISOString: ["es6.date.to-iso-string"],
toJSON: ["es6.date.to-json"],
},
staticMethods: {
Array: {
from: "es6.array.from",
isArray: "es6.array.is-array",
of: "es6.array.of",
},
Date: {
now: "es6.date.now",
},
Object: {
assign: "es6.object.assign",
is: "es6.object.is",

View File

@@ -35,6 +35,7 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.sort { "android":"4" }
es6.typed.array-buffer { "android":"4" }
es6.typed.int8-array { "android":"4" }
es6.typed.uint8-array { "android":"4" }

View File

@@ -38,6 +38,7 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.sort { "chrome":"55" }
es7.string.pad-start { "chrome":"55" }
es7.string.pad-end { "chrome":"55" }
web.timers { "chrome":"55" }

View File

@@ -37,6 +37,7 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.sort { "chrome":"54", "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" }

View File

@@ -30,6 +30,23 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.every { "electron":"0.36" }
es6.array.filter { "electron":"0.36" }
es6.array.for-each { "electron":"0.36" }
es6.array.index-of { "electron":"0.36" }
es6.array.is-array { "electron":"0.36" }
es6.array.last-index-of { "electron":"0.36" }
es6.array.map { "electron":"0.36" }
es6.array.reduce { "electron":"0.36" }
es6.array.reduce-right { "electron":"0.36" }
es6.array.some { "electron":"0.36" }
es6.array.sort { "electron":"0.36" }
es6.date.now { "electron":"0.36" }
es6.date.to-iso-string { "electron":"0.36" }
es6.date.to-json { "electron":"0.36" }
es6.function.bind { "electron":"0.36" }
es6.string.iterator { "electron":"0.36" }
es6.string.trim { "electron":"0.36" }
es6.typed.array-buffer { "electron":"0.36" }
es6.typed.data-view { "electron":"0.36" }
es6.typed.int8-array { "electron":"0.36" }

View File

@@ -35,6 +35,7 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.sort { "chrome":"55" }
es7.string.pad-start { "chrome":"55" }
es7.string.pad-end { "chrome":"55" }
web.timers { "chrome":"55" }

View File

@@ -17,6 +17,7 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.sort { "chrome":"60" }
es7.promise.finally { "chrome":"60" }
web.timers { "chrome":"60" }
web.immediate { "chrome":"60" }

View File

@@ -37,6 +37,23 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.every {}
es6.array.filter {}
es6.array.for-each {}
es6.array.index-of {}
es6.array.is-array {}
es6.array.last-index-of {}
es6.array.map {}
es6.array.reduce {}
es6.array.reduce-right {}
es6.array.some {}
es6.array.sort {}
es6.date.now {}
es6.date.to-iso-string {}
es6.date.to-json {}
es6.function.bind {}
es6.string.iterator {}
es6.string.trim {}
es6.typed.array-buffer {}
es6.typed.data-view {}
es6.typed.int8-array {}

View File

@@ -40,6 +40,8 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.sort { "chrome":"54", "ios":"9", "safari":"7" }
es6.date.to-json { "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" }

View File

@@ -46,6 +46,23 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.every { "electron":"0.36" }
es6.array.filter { "electron":"0.36" }
es6.array.for-each { "electron":"0.36" }
es6.array.index-of { "electron":"0.36" }
es6.array.is-array { "electron":"0.36" }
es6.array.last-index-of { "electron":"0.36" }
es6.array.map { "electron":"0.36" }
es6.array.reduce { "electron":"0.36" }
es6.array.reduce-right { "electron":"0.36" }
es6.array.some { "electron":"0.36" }
es6.array.sort { "chrome":"54", "electron":"0.36", "node":"6.1" }
es6.date.now { "electron":"0.36" }
es6.date.to-iso-string { "electron":"0.36" }
es6.date.to-json { "electron":"0.36" }
es6.function.bind { "electron":"0.36" }
es6.string.iterator { "electron":"0.36" }
es6.string.trim { "electron":"0.36" }
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" }

View File

@@ -37,6 +37,7 @@ Using plugins:
Using polyfills with `entry` option:
[src/in.js] Replaced `@babel/polyfill` with the following polyfills:
es6.array.sort { "chrome":"54", "node":"6.10" }
es6.typed.array-buffer { "ie":"10" }
es6.typed.int8-array { "ie":"10" }
es6.typed.uint8-array { "ie":"10" }

View File

@@ -8,6 +8,7 @@ import "core-js/modules/es6.string.starts-with";
import "core-js/modules/es7.string.pad-end";
import "core-js/modules/es7.string.pad-start";
import "core-js/modules/es6.array.fill";
import "core-js/modules/es6.function.bind";
import "core-js/modules/es6.array.find-index";
import "core-js/modules/es6.array.find";
import "core-js/modules/es7.array.includes";

View File

@@ -1,3 +1,5 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.function.bind";
import "core-js/modules/es7.object.values";
import "core-js/modules/es7.object.entries";
import "core-js/modules/es7.object.get-own-property-descriptors";

View File

@@ -2,7 +2,7 @@
"presets": [
["../../../../lib", {
"targets": {
"chrome": 55
"chrome": 63
},
"modules": false,
"useBuiltIns": "entry",

View File

@@ -1,3 +1,4 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.map";
import "core-js/modules/es7.string.pad-end";
import "core-js/modules/web.timers";

View File

@@ -1,3 +1,20 @@
import "core-js/modules/es6.array.every";
import "core-js/modules/es6.array.filter";
import "core-js/modules/es6.array.for-each";
import "core-js/modules/es6.array.index-of";
import "core-js/modules/es6.array.is-array";
import "core-js/modules/es6.array.last-index-of";
import "core-js/modules/es6.array.map";
import "core-js/modules/es6.array.reduce";
import "core-js/modules/es6.array.reduce-right";
import "core-js/modules/es6.array.some";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.date.now";
import "core-js/modules/es6.date.to-iso-string";
import "core-js/modules/es6.date.to-json";
import "core-js/modules/es6.function.bind";
import "core-js/modules/es6.string.iterator";
import "core-js/modules/es6.string.trim";
import "core-js/modules/es6.typed.array-buffer";
import "core-js/modules/es6.typed.data-view";
import "core-js/modules/es6.typed.int8-array";

View File

@@ -1,3 +1,4 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.string.pad-start";
import "core-js/modules/es7.string.pad-end";
import "core-js/modules/web.timers";

View File

@@ -1,3 +1,4 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.map";
import "core-js/modules/es6.set";
import "core-js/modules/es7.string.pad-start";

View File

@@ -6,6 +6,8 @@ require("core-js/modules/es6.symbol");
require("core-js/modules/es6.promise");
require("core-js/modules/es6.array.index-of");
require("core-js/modules/es6.object.assign");
function _awaitAsyncGenerator(value) { return new _AwaitValue(value); }

View File

@@ -1,3 +1,20 @@
import "core-js/modules/es6.array.every";
import "core-js/modules/es6.array.filter";
import "core-js/modules/es6.array.for-each";
import "core-js/modules/es6.array.index-of";
import "core-js/modules/es6.array.is-array";
import "core-js/modules/es6.array.last-index-of";
import "core-js/modules/es6.array.map";
import "core-js/modules/es6.array.reduce";
import "core-js/modules/es6.array.reduce-right";
import "core-js/modules/es6.array.some";
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.date.now";
import "core-js/modules/es6.date.to-iso-string";
import "core-js/modules/es6.date.to-json";
import "core-js/modules/es6.function.bind";
import "core-js/modules/es6.string.iterator";
import "core-js/modules/es6.string.trim";
import "core-js/modules/es6.typed.array-buffer";
import "core-js/modules/es6.typed.data-view";
import "core-js/modules/es6.typed.int8-array";

View File

@@ -1,3 +1,4 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.typed.array-buffer";
import "core-js/modules/es6.typed.int8-array";
import "core-js/modules/es6.typed.uint8-array";

View File

@@ -1,3 +1,4 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/es6.typed.array-buffer";
import "core-js/modules/es6.typed.int8-array";
import "core-js/modules/es6.typed.uint8-array";

View File

@@ -1,3 +1,4 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/web.timers";
import "core-js/modules/web.immediate";
import "core-js/modules/web.dom.iterable";

View File

@@ -1,3 +1,4 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.string.pad-start";
import "core-js/modules/es7.string.pad-end";
import "core-js/modules/web.timers";

View File

@@ -1,3 +1,4 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.string.pad-start";
import "core-js/modules/es7.string.pad-end";
import "core-js/modules/web.timers";

View File

@@ -1,3 +1,4 @@
import "core-js/modules/es6.array.sort";
import "core-js/modules/es7.string.pad-start";
import "core-js/modules/es7.string.pad-end";
import "regenerator-runtime/runtime";

View File

@@ -1,3 +1,5 @@
require("core-js/modules/es6.array.sort");
require("core-js/modules/es7.string.pad-start");
require("core-js/modules/es7.string.pad-end");

View File

@@ -10,7 +10,7 @@
"./lib/node.js": "./lib/browser.js"
},
"dependencies": {
"core-js": "^2.4.0",
"core-js": "^2.5.3",
"find-cache-dir": "^1.0.0",
"home-or-tmp": "^3.0.0",
"lodash": "^4.2.0",

View File

@@ -6,7 +6,7 @@
"repository": "https://github.com/babel/babel/tree/master/packages/babel-runtime",
"author": "Sebastian McKenzie <sebmck@gmail.com>",
"dependencies": {
"core-js": "^2.4.0",
"core-js": "^2.5.3",
"regenerator-runtime": "^0.11.1"
},
"devDependencies": {