From 28e54d4d5f2b9a5f1684a5173b312e03ec2bf807 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Wed, 11 Jan 2017 15:03:10 -0500 Subject: [PATCH] Update compat-table, build data (#135) --- .../data/built-in-features.js | 6 +- .../babel-preset-env/data/built-ins.json | 97 +++++++++++-------- .../babel-preset-env/data/plugins.json | 9 +- experimental/babel-preset-env/package.json | 2 +- .../babel-preset-env/scripts/build-data.js | 23 ++++- experimental/babel-preset-env/yarn.lock | 4 +- 6 files changed, 89 insertions(+), 52 deletions(-) diff --git a/experimental/babel-preset-env/data/built-in-features.js b/experimental/babel-preset-env/data/built-in-features.js index b7653dda85..0ca96d8ddb 100644 --- a/experimental/babel-preset-env/data/built-in-features.js +++ b/experimental/babel-preset-env/data/built-in-features.js @@ -124,9 +124,9 @@ const es2016 = { }; const es2017 = { - "es7.object.values": "Object.values", - "es7.object.entries": "Object.entries", - "es7.object.get-own-property-descriptors": "Object.getOwnPropertyDescriptors", + "es7.object.values": "Object static methods / Object.values", + "es7.object.entries": "Object static methods / Object.entries", + "es7.object.get-own-property-descriptors": "Object static methods / Object.getOwnPropertyDescriptors", "es7.string.pad-start": "String padding / String.prototype.padStart", "es7.string.pad-end": "String padding / String.prototype.padEnd", }; diff --git a/experimental/babel-preset-env/data/built-ins.json b/experimental/babel-preset-env/data/built-ins.json index 23e25bfcf4..9270b4aa0c 100644 --- a/experimental/babel-preset-env/data/built-ins.json +++ b/experimental/babel-preset-env/data/built-ins.json @@ -36,7 +36,7 @@ "firefox": 4, "safari": 6, "node": 0.12, - "ios": 10 + "ios": 7 }, "es6.typed.int16-array": { "chrome": 5, @@ -100,6 +100,7 @@ }, "es6.map": { "chrome": 51, + "firefox": 53, "safari": 10, "node": 6.5, "ios": 10, @@ -107,6 +108,7 @@ }, "es6.set": { "chrome": 51, + "firefox": 53, "safari": 10, "node": 6.5, "ios": 10, @@ -114,12 +116,15 @@ }, "es6.weak-map": { "chrome": 51, + "firefox": 53, "safari": 9, - "ios": 10, + "ios": 9, "opera": 38 }, "es6.weak-set": { "chrome": 51, + "edge": 15, + "firefox": 53, "safari": 9, "ios": 9, "opera": 38 @@ -273,6 +278,7 @@ }, "es6.function.name": { "chrome": 51, + "firefox": 53, "safari": 10, "node": 6.5, "ios": 10, @@ -382,6 +388,8 @@ }, "es6.array.from": { "chrome": 51, + "edge": 15, + "firefox": 36, "safari": 10, "node": 6.5, "ios": 10, @@ -409,36 +417,36 @@ "chrome": 45, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 4, - "ios": 10, + "ios": 9, "opera": 32 }, "es6.array.find-index": { "chrome": 45, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 4, - "ios": 10, + "ios": 9, "opera": 32 }, "es6.array.fill": { "chrome": 45, "edge": 12, "firefox": 31, - "safari": 7, + "safari": 8, "node": 4, - "ios": 10, + "ios": 9, "opera": 32 }, "es6.array.iterator": { "chrome": 38, "edge": 12, "firefox": 28, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.number.is-finite": { @@ -508,36 +516,36 @@ "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.asinh": { "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.atanh": { "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.cbrt": { "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.clz32": { @@ -553,36 +561,36 @@ "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.expm1": { "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.fround": { "chrome": 38, "edge": 12, "firefox": 26, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.hypot": { "chrome": 38, "edge": 12, "firefox": 27, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.imul": { @@ -592,34 +600,34 @@ "safari": 7, "node": 0.12, "android": 4.4, - "ios": 8, + "ios": 7, "opera": 17 }, "es6.math.log1p": { "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.log10": { "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.log2": { "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.sign": { @@ -635,27 +643,27 @@ "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.tanh": { "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es6.math.trunc": { "chrome": 38, "edge": 12, "firefox": 25, - "safari": 7, + "safari": 8, "node": 0.12, - "ios": 10, + "ios": 9, "opera": 25 }, "es7.array.includes": { @@ -682,18 +690,25 @@ }, "es7.object.get-own-property-descriptors": { "chrome": 54, + "edge": 15, "firefox": 50, "node": 7, "opera": 41 }, "es7.string.pad-start": { + "chrome": 57, + "edge": 15, "firefox": 48, "safari": 10, - "ios": 10 + "ios": 10, + "opera": 44 }, "es7.string.pad-end": { + "chrome": 57, + "edge": 15, "firefox": 48, "safari": 10, - "ios": 10 + "ios": 10, + "opera": 44 } } diff --git a/experimental/babel-preset-env/data/plugins.json b/experimental/babel-preset-env/data/plugins.json index aa67124b7f..332ab92bd2 100644 --- a/experimental/babel-preset-env/data/plugins.json +++ b/experimental/babel-preset-env/data/plugins.json @@ -38,9 +38,9 @@ "chrome": 44, "edge": 12, "firefox": 34, - "safari": 7, + "safari": 8, "node": 4, - "ios": 10, + "ios": 9, "opera": 31 }, "check-es2015-constants": { @@ -53,6 +53,7 @@ }, "transform-es2015-destructuring": { "chrome": 51, + "edge": 15, "safari": 10, "node": 6.5, "ios": 10, @@ -60,6 +61,7 @@ }, "transform-es2015-for-of": { "chrome": 51, + "edge": 15, "safari": 10, "node": 6.5, "ios": 10, @@ -67,6 +69,7 @@ }, "transform-es2015-function-name": { "chrome": 51, + "firefox": 53, "safari": 10, "node": 6.5, "ios": 10, @@ -75,6 +78,7 @@ "transform-es2015-literals": { "chrome": 44, "edge": 12, + "firefox": 53, "safari": 9, "node": 4, "ios": 9, @@ -92,6 +96,7 @@ "transform-es2015-parameters": { "chrome": 49, "edge": 14, + "firefox": 53, "safari": 10, "node": 6, "ios": 10, diff --git a/experimental/babel-preset-env/package.json b/experimental/babel-preset-env/package.json index 6e3522f2b1..7b7a30724f 100644 --- a/experimental/babel-preset-env/package.json +++ b/experimental/babel-preset-env/package.json @@ -54,7 +54,7 @@ "babel-plugin-transform-flow-strip-types": "^6.8.0", "babel-preset-es2015": "^6.14.0", "babel-register": "^6.14.0", - "compat-table": "kangax/compat-table#e732718eab42c6c83a364450f456474638d31f94", + "compat-table": "kangax/compat-table#b0cec63ea21f3a7788a8eececcb918de903b7fc5", "eslint": "^3.3.1", "eslint-config-babel": "^3.0.0", "eslint-plugin-babel": "^4.0.0", diff --git a/experimental/babel-preset-env/scripts/build-data.js b/experimental/babel-preset-env/scripts/build-data.js index e611a64eb2..79f1f20532 100644 --- a/experimental/babel-preset-env/scripts/build-data.js +++ b/experimental/babel-preset-env/scripts/build-data.js @@ -19,10 +19,22 @@ const envs = require("compat-table/environments"); const invertedEqualsEnv = Object.keys(envs) .filter((b) => envs[b].equals) .reduce((a, b) => { - a[envs[b].equals] = b; + if (!a[envs[b].equals]) { + a[envs[b].equals] = [b]; + } else { + a[envs[b].equals].push(b); + } return a; }, {}); +invertedEqualsEnv.safari5 = ["ios6"]; +if (Array.isArray(invertedEqualsEnv.safari6)) { + invertedEqualsEnv.safari6.push("ios7"); +} else { + invertedEqualsEnv.safari6 = ["ios7"]; +} +invertedEqualsEnv.safari8 = ["ios9"]; + const compatibilityTests = flattenDeep([ es6Data, es6PlusData, @@ -49,7 +61,7 @@ const environments = [ const envMap = { safari51: "safari5", - safari71_8: "safari7", + safari71_8: "safari8", firefox3_5: "firefox3", firefox3_6: "firefox3", node010: "node0.10", @@ -103,7 +115,12 @@ const getLowestImplementedVersion = ({ features }, env) => { // `equals` in compat-table Object.keys(test).forEach((t) => { - test[invertedEqualsEnv[t]] = test[t]; + const invertedEnvs = invertedEqualsEnv[envMap[t] || t]; + if (invertedEnvs) { + invertedEnvs.forEach((inv) => { + test[inv] = test[t]; + }); + } }); return Object.keys(test) diff --git a/experimental/babel-preset-env/yarn.lock b/experimental/babel-preset-env/yarn.lock index 1969c07093..67c336a784 100644 --- a/experimental/babel-preset-env/yarn.lock +++ b/experimental/babel-preset-env/yarn.lock @@ -1060,9 +1060,9 @@ commoner@^0.10.1: q "^1.1.2" recast "^0.11.17" -"compat-table@github:kangax/compat-table#e732718eab42c6c83a364450f456474638d31f94": +compat-table@kangax/compat-table#b0cec63ea21f3a7788a8eececcb918de903b7fc5: version "0.0.0" - resolved "https://codeload.github.com/kangax/compat-table/tar.gz/e732718eab42c6c83a364450f456474638d31f94" + resolved "https://codeload.github.com/kangax/compat-table/tar.gz/b0cec63ea21f3a7788a8eececcb918de903b7fc5" dependencies: babel-core latest babel-polyfill latest