Merge pull request #180 from babel/fix-compat-import
Respect older versions in invert equals map
This commit is contained in:
commit
7e622940a4
@ -36,6 +36,7 @@
|
||||
"firefox": 4,
|
||||
"safari": 6,
|
||||
"node": 0.12,
|
||||
"android": 4.4,
|
||||
"ios": 7
|
||||
},
|
||||
"es6.typed.int16-array": {
|
||||
@ -118,6 +119,7 @@
|
||||
"chrome": 51,
|
||||
"firefox": 53,
|
||||
"safari": 9,
|
||||
"node": 6.5,
|
||||
"ios": 9,
|
||||
"opera": 38
|
||||
},
|
||||
@ -126,6 +128,7 @@
|
||||
"edge": 15,
|
||||
"firefox": 53,
|
||||
"safari": 9,
|
||||
"node": 6.5,
|
||||
"ios": 9,
|
||||
"opera": 38
|
||||
},
|
||||
@ -134,6 +137,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -142,6 +146,7 @@
|
||||
"edge": 13,
|
||||
"firefox": 45,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -150,6 +155,7 @@
|
||||
"edge": 13,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -158,6 +164,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -166,6 +173,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -174,6 +182,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -182,6 +191,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -190,6 +200,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -198,6 +209,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -206,6 +218,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -214,6 +227,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -222,6 +236,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -230,6 +245,7 @@
|
||||
"edge": 12,
|
||||
"firefox": 42,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 36
|
||||
},
|
||||
@ -246,6 +262,7 @@
|
||||
"chrome": 51,
|
||||
"firefox": 51,
|
||||
"safari": 10,
|
||||
"node": 6.5,
|
||||
"ios": 10,
|
||||
"opera": 38
|
||||
},
|
||||
@ -273,6 +290,7 @@
|
||||
"safari": 9,
|
||||
"node": 0.12,
|
||||
"ie": 11,
|
||||
"android": 5,
|
||||
"ios": 9,
|
||||
"opera": 21
|
||||
},
|
||||
@ -351,6 +369,7 @@
|
||||
"chrome": 49,
|
||||
"firefox": 37,
|
||||
"safari": 9,
|
||||
"node": 6,
|
||||
"ios": 9,
|
||||
"opera": 36
|
||||
},
|
||||
@ -419,7 +438,7 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 4,
|
||||
"ios": 9,
|
||||
"ios": 8,
|
||||
"opera": 32
|
||||
},
|
||||
"es6.array.find-index": {
|
||||
@ -428,7 +447,7 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 4,
|
||||
"ios": 9,
|
||||
"ios": 8,
|
||||
"opera": 32
|
||||
},
|
||||
"es6.array.fill": {
|
||||
@ -437,7 +456,7 @@
|
||||
"firefox": 31,
|
||||
"safari": 8,
|
||||
"node": 4,
|
||||
"ios": 9,
|
||||
"ios": 8,
|
||||
"opera": 32
|
||||
},
|
||||
"es6.array.iterator": {
|
||||
@ -446,7 +465,8 @@
|
||||
"firefox": 28,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.number.is-finite": {
|
||||
@ -464,6 +484,7 @@
|
||||
"firefox": 16,
|
||||
"safari": 9,
|
||||
"node": 0.12,
|
||||
"android": 5,
|
||||
"ios": 9,
|
||||
"opera": 21
|
||||
},
|
||||
@ -473,6 +494,7 @@
|
||||
"firefox": 32,
|
||||
"safari": 9,
|
||||
"node": 0.12,
|
||||
"android": 5,
|
||||
"ios": 9,
|
||||
"opera": 21
|
||||
},
|
||||
@ -491,6 +513,7 @@
|
||||
"firefox": 25,
|
||||
"safari": 9,
|
||||
"node": 0.12,
|
||||
"android": 5,
|
||||
"ios": 9,
|
||||
"opera": 21
|
||||
},
|
||||
@ -500,6 +523,7 @@
|
||||
"firefox": 31,
|
||||
"safari": 9,
|
||||
"node": 0.12,
|
||||
"android": 5,
|
||||
"ios": 9,
|
||||
"opera": 21
|
||||
},
|
||||
@ -509,6 +533,7 @@
|
||||
"firefox": 31,
|
||||
"safari": 9,
|
||||
"node": 0.12,
|
||||
"android": 5,
|
||||
"ios": 9,
|
||||
"opera": 21
|
||||
},
|
||||
@ -518,7 +543,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.asinh": {
|
||||
@ -527,7 +553,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.atanh": {
|
||||
@ -536,7 +563,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.cbrt": {
|
||||
@ -545,7 +573,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.clz32": {
|
||||
@ -554,6 +583,7 @@
|
||||
"firefox": 31,
|
||||
"safari": 9,
|
||||
"node": 0.12,
|
||||
"android": 5.1,
|
||||
"ios": 9,
|
||||
"opera": 25
|
||||
},
|
||||
@ -563,7 +593,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.expm1": {
|
||||
@ -572,7 +603,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.fround": {
|
||||
@ -581,7 +613,8 @@
|
||||
"firefox": 26,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.hypot": {
|
||||
@ -590,7 +623,8 @@
|
||||
"firefox": 27,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.imul": {
|
||||
@ -609,7 +643,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.log10": {
|
||||
@ -618,7 +653,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.log2": {
|
||||
@ -627,7 +663,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.sign": {
|
||||
@ -636,6 +673,7 @@
|
||||
"firefox": 25,
|
||||
"safari": 9,
|
||||
"node": 0.12,
|
||||
"android": 5.1,
|
||||
"ios": 9,
|
||||
"opera": 25
|
||||
},
|
||||
@ -645,7 +683,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.tanh": {
|
||||
@ -654,7 +693,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es6.math.trunc": {
|
||||
@ -663,7 +703,8 @@
|
||||
"firefox": 25,
|
||||
"safari": 8,
|
||||
"node": 0.12,
|
||||
"ios": 9,
|
||||
"android": 5.1,
|
||||
"ios": 8,
|
||||
"opera": 25
|
||||
},
|
||||
"es7.array.includes": {
|
||||
@ -671,6 +712,7 @@
|
||||
"edge": 14,
|
||||
"firefox": 43,
|
||||
"safari": 10,
|
||||
"node": 6,
|
||||
"ios": 10,
|
||||
"opera": 34
|
||||
},
|
||||
@ -678,6 +720,7 @@
|
||||
"chrome": 54,
|
||||
"edge": 14,
|
||||
"firefox": 47,
|
||||
"safari": 10.1,
|
||||
"node": 7,
|
||||
"opera": 41
|
||||
},
|
||||
@ -685,6 +728,7 @@
|
||||
"chrome": 54,
|
||||
"edge": 14,
|
||||
"firefox": 47,
|
||||
"safari": 10.1,
|
||||
"node": 7,
|
||||
"opera": 41
|
||||
},
|
||||
@ -692,7 +736,7 @@
|
||||
"chrome": 54,
|
||||
"edge": 15,
|
||||
"firefox": 50,
|
||||
"safari": 10,
|
||||
"safari": 10.1,
|
||||
"node": 7,
|
||||
"opera": 41
|
||||
},
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
"firefox": 34,
|
||||
"safari": 8,
|
||||
"node": 4,
|
||||
"ios": 9,
|
||||
"ios": 8,
|
||||
"opera": 31
|
||||
},
|
||||
"check-es2015-constants": {
|
||||
@ -146,6 +146,7 @@
|
||||
"firefox": 36,
|
||||
"safari": 9,
|
||||
"node": 0.12,
|
||||
"android": 5.1,
|
||||
"ios": 9,
|
||||
"opera": 25
|
||||
},
|
||||
@ -171,11 +172,14 @@
|
||||
"chrome": 52,
|
||||
"edge": 14,
|
||||
"firefox": 52,
|
||||
"safari": 10.1,
|
||||
"node": 7,
|
||||
"opera": 39
|
||||
},
|
||||
"transform-async-to-generator": {
|
||||
"chrome": 55,
|
||||
"firefox": 52,
|
||||
"safari": 10.1,
|
||||
"node": 7.6,
|
||||
"opera": 42
|
||||
},
|
||||
|
||||
@ -58,7 +58,7 @@
|
||||
"babel-preset-es2015": "^6.14.0",
|
||||
"babel-register": "^6.14.0",
|
||||
"chai": "^3.0.0",
|
||||
"compat-table": "kangax/compat-table#291c758ac618fff6bf5bb2113a5aa046189f93e2",
|
||||
"compat-table": "kangax/compat-table#c38f039b8ea7fadf347d3e300fec3611645e31e9",
|
||||
"eslint": "^3.13.1",
|
||||
"eslint-config-babel": "^5.0.0",
|
||||
"eslint-plugin-flowtype": "^2.29.1",
|
||||
|
||||
@ -16,36 +16,6 @@ const es6Data = require("compat-table/data-es6");
|
||||
const es6PlusData = require("compat-table/data-es2016plus");
|
||||
const envs = require("compat-table/environments");
|
||||
|
||||
const invertedEqualsEnv = Object.keys(envs)
|
||||
.filter((b) => envs[b].equals)
|
||||
.reduce((a, 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,
|
||||
].map((data) =>
|
||||
data.tests.map((test) => {
|
||||
return test.subtests ?
|
||||
[test, renameTests(test.subtests, (name) => test.name + " / " + name)] :
|
||||
test;
|
||||
})
|
||||
));
|
||||
|
||||
const environments = [
|
||||
"chrome",
|
||||
"opera",
|
||||
@ -62,6 +32,7 @@ const environments = [
|
||||
const envMap = {
|
||||
safari51: "safari5",
|
||||
safari71_8: "safari8",
|
||||
safari10_1: "safari10.1",
|
||||
firefox3_5: "firefox3",
|
||||
firefox3_6: "firefox3",
|
||||
node010: "node0.10",
|
||||
@ -80,6 +51,46 @@ const envMap = {
|
||||
ios51: "ios5.1",
|
||||
};
|
||||
|
||||
const invertedEqualsEnv = Object.keys(envs)
|
||||
.filter((b) => envs[b].equals)
|
||||
.reduce((a, b) => {
|
||||
const checkEnv = envMap[envs[b].equals] || envs[b].equals;
|
||||
environments.some((env) => {
|
||||
// go through all environment names to find the the current one
|
||||
// and try to get the version as integer
|
||||
const version = parseFloat(checkEnv.replace(env, ""));
|
||||
if (!isNaN(version)) {
|
||||
Object.keys(envs).forEach((equals) => {
|
||||
equals = envMap[equals] || equals;
|
||||
// Go through all envs from compat-table and get int version
|
||||
const equalsVersion = parseFloat(equals.replace(env, ""));
|
||||
// If the current version is smaller than the version that was mentioned
|
||||
// in `equals` we can add an entry, as older versions should include features
|
||||
// that newer ones have
|
||||
if (!isNaN(equalsVersion) && equalsVersion <= version) {
|
||||
if (!a[equals]) a[equals] = [];
|
||||
if (a[equals].indexOf(b) >= 0) return;
|
||||
a[equals].push(b);
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
return a;
|
||||
}, {});
|
||||
|
||||
const compatibilityTests = flattenDeep([
|
||||
es6Data,
|
||||
es6PlusData,
|
||||
].map((data) =>
|
||||
data.tests.map((test) => {
|
||||
return test.subtests ?
|
||||
[test, renameTests(test.subtests, (name) => test.name + " / " + name)] :
|
||||
test;
|
||||
})
|
||||
));
|
||||
|
||||
const getLowestImplementedVersion = ({ features }, env) => {
|
||||
const tests = flatten(compatibilityTests
|
||||
.filter((test) => {
|
||||
@ -130,7 +141,7 @@ const getLowestImplementedVersion = ({ features }, env) => {
|
||||
.filter((test) => tests[i].res[test] === true || tests[i].res[test] === "strict")
|
||||
// normalize some keys
|
||||
.map((test) => envMap[test] || test)
|
||||
.filter((test) => !isNaN(parseInt(test.replace(env, ""))))
|
||||
.filter((test) => !isNaN(parseFloat(test.replace(env, ""))))
|
||||
.shift();
|
||||
});
|
||||
|
||||
|
||||
@ -39,19 +39,19 @@ Using polyfills:
|
||||
es6.set {"ie":10,"node":6}
|
||||
es6.weak-map {"ie":10,"node":6}
|
||||
es6.weak-set {"ie":10,"node":6}
|
||||
es6.reflect.apply {"ie":10,"node":6}
|
||||
es6.reflect.construct {"ie":10,"node":6}
|
||||
es6.reflect.define-property {"ie":10,"node":6}
|
||||
es6.reflect.delete-property {"ie":10,"node":6}
|
||||
es6.reflect.get {"ie":10,"node":6}
|
||||
es6.reflect.get-own-property-descriptor {"ie":10,"node":6}
|
||||
es6.reflect.get-prototype-of {"ie":10,"node":6}
|
||||
es6.reflect.has {"ie":10,"node":6}
|
||||
es6.reflect.is-extensible {"ie":10,"node":6}
|
||||
es6.reflect.own-keys {"ie":10,"node":6}
|
||||
es6.reflect.prevent-extensions {"ie":10,"node":6}
|
||||
es6.reflect.set {"ie":10,"node":6}
|
||||
es6.reflect.set-prototype-of {"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.promise {"ie":10,"node":6}
|
||||
es6.symbol {"ie":10,"node":6}
|
||||
es6.object.assign {"ie":10}
|
||||
@ -65,7 +65,7 @@ Using polyfills:
|
||||
es6.string.starts-with {"ie":10}
|
||||
es6.string.ends-with {"ie":10}
|
||||
es6.string.includes {"ie":10}
|
||||
es6.regexp.flags {"ie":10,"node":6}
|
||||
es6.regexp.flags {"ie":10}
|
||||
es6.regexp.match {"ie":10}
|
||||
es6.regexp.replace {"ie":10}
|
||||
es6.regexp.split {"ie":10}
|
||||
@ -101,7 +101,7 @@ Using polyfills:
|
||||
es6.math.sinh {"ie":10}
|
||||
es6.math.tanh {"ie":10}
|
||||
es6.math.trunc {"ie":10}
|
||||
es7.array.includes {"ie":10,"node":6}
|
||||
es7.array.includes {"ie":10}
|
||||
es7.object.values {"ie":10,"node":6}
|
||||
es7.object.entries {"ie":10,"node":6}
|
||||
es7.object.get-own-property-descriptors {"ie":10,"node":6}
|
||||
@ -110,4 +110,4 @@ Using polyfills:
|
||||
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}
|
||||
src/in.js -> lib/in.js
|
||||
src/in.js -> lib/in.js
|
||||
|
||||
@ -13,6 +13,5 @@ Using plugins:
|
||||
transform-es2015-for-of {"firefox":52}
|
||||
transform-es2015-function-name {"firefox":52}
|
||||
transform-es2015-literals {"firefox":52}
|
||||
transform-exponentiation-operator {"node":7.4}
|
||||
syntax-trailing-function-commas {"node":7.4}
|
||||
src/in.js -> lib/in.js
|
||||
src/in.js -> lib/in.js
|
||||
|
||||
@ -1067,9 +1067,9 @@ commoner@^0.10.1:
|
||||
q "^1.1.2"
|
||||
recast "^0.11.17"
|
||||
|
||||
compat-table@kangax/compat-table#291c758ac618fff6bf5bb2113a5aa046189f93e2:
|
||||
compat-table@kangax/compat-table#c38f039b8ea7fadf347d3e300fec3611645e31e9:
|
||||
version "0.0.0"
|
||||
resolved "https://codeload.github.com/kangax/compat-table/tar.gz/291c758ac618fff6bf5bb2113a5aa046189f93e2"
|
||||
resolved "https://codeload.github.com/kangax/compat-table/tar.gz/c38f039b8ea7fadf347d3e300fec3611645e31e9"
|
||||
dependencies:
|
||||
babel-core latest
|
||||
babel-polyfill latest
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user