Respect older versions in invert map

This commit is contained in:
Daniel Tschinder
2017-03-02 16:28:48 +01:00
parent 540c382637
commit 55ccfbf6a0
3 changed files with 90 additions and 35 deletions

View File

@@ -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
},
@@ -400,7 +419,7 @@
"edge": 12,
"firefox": 25,
"safari": 9,
"node": 4,
"node": 6,
"ios": 9,
"opera": 32
},
@@ -418,7 +437,7 @@
"edge": 12,
"firefox": 25,
"safari": 8,
"node": 4,
"node": 6,
"ios": 9,
"opera": 32
},
@@ -427,7 +446,7 @@
"edge": 12,
"firefox": 25,
"safari": 8,
"node": 4,
"node": 6,
"ios": 9,
"opera": 32
},
@@ -436,7 +455,7 @@
"edge": 12,
"firefox": 31,
"safari": 8,
"node": 4,
"node": 6,
"ios": 9,
"opera": 32
},
@@ -446,6 +465,7 @@
"firefox": 28,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -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,6 +543,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -527,6 +553,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -536,6 +563,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -545,6 +573,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -554,6 +583,7 @@
"firefox": 31,
"safari": 9,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -563,6 +593,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -572,6 +603,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -581,6 +613,7 @@
"firefox": 26,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -590,6 +623,7 @@
"firefox": 27,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -609,6 +643,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -618,6 +653,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -627,6 +663,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -636,6 +673,7 @@
"firefox": 25,
"safari": 9,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -645,6 +683,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -654,6 +693,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -663,6 +703,7 @@
"firefox": 25,
"safari": 8,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25
},
@@ -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
},

View File

@@ -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
},

View File

@@ -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,42 @@ 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) => {
const version = parseInt(checkEnv.replace(env, ""), 10);
if (!isNaN(version)) {
Object.keys(envs).forEach((equals) => {
const equalsVersion = parseInt(equals.replace(env, ""), 10);
if (equalsVersion <= version) {
if (!a[equals]) a[equals] = [];
a[equals].push(b);
}
});
return true;
}
});
return a;
}, {});
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;
})
));
console.log(invertedEqualsEnv);
const getLowestImplementedVersion = ({ features }, env) => {
const tests = flatten(compatibilityTests
.filter((test) => {