Use compat-table equals option (#36)
* Use compat-table equals option * fixes
This commit is contained in:
@@ -4,122 +4,141 @@
|
|||||||
"edge": 13,
|
"edge": 13,
|
||||||
"firefox": 45,
|
"firefox": 45,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6
|
"node": 6,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-block-scoped-functions": {
|
"transform-es2015-block-scoped-functions": {
|
||||||
"chrome": 41,
|
"chrome": 41,
|
||||||
"firefox": 46,
|
"firefox": 46,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 4,
|
"node": 4,
|
||||||
"ie": 11
|
"ie": 11,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-block-scoping": {
|
"transform-es2015-block-scoping": {
|
||||||
"chrome": 49,
|
"chrome": 49,
|
||||||
"firefox": 51,
|
"firefox": 51,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6
|
"node": 6,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-classes": {
|
"transform-es2015-classes": {
|
||||||
"chrome": 46,
|
"chrome": 46,
|
||||||
"edge": 13,
|
"edge": 13,
|
||||||
"firefox": 45,
|
"firefox": 45,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 5
|
"node": 5,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-computed-properties": {
|
"transform-es2015-computed-properties": {
|
||||||
"chrome": 44,
|
"chrome": 44,
|
||||||
"edge": 12,
|
"edge": 12,
|
||||||
"firefox": 34,
|
"firefox": 34,
|
||||||
"safari": 7,
|
"safari": 7,
|
||||||
"node": 4
|
"node": 4,
|
||||||
|
"ios": 8
|
||||||
},
|
},
|
||||||
"check-es2015-constants": {
|
"check-es2015-constants": {
|
||||||
"chrome": 49,
|
"chrome": 49,
|
||||||
"firefox": 51,
|
"firefox": 51,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6
|
"node": 6,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-destructuring": {
|
"transform-es2015-destructuring": {
|
||||||
"chrome": 51,
|
"chrome": 51,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6.5
|
"node": 6.5,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-for-of": {
|
"transform-es2015-for-of": {
|
||||||
"chrome": 51,
|
"chrome": 51,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6.5
|
"node": 6.5,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-function-name": {
|
"transform-es2015-function-name": {
|
||||||
"chrome": 51,
|
"chrome": 51,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6.5
|
"node": 6.5,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-literals": {
|
"transform-es2015-literals": {
|
||||||
"chrome": 44,
|
"chrome": 44,
|
||||||
"edge": 12,
|
"edge": 12,
|
||||||
"safari": 9,
|
"safari": 9,
|
||||||
"node": 4
|
"node": 4,
|
||||||
|
"ios": 9
|
||||||
},
|
},
|
||||||
"transform-es2015-object-super": {
|
"transform-es2015-object-super": {
|
||||||
"chrome": 46,
|
"chrome": 46,
|
||||||
"edge": 13,
|
"edge": 13,
|
||||||
"firefox": 45,
|
"firefox": 45,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 5
|
"node": 5,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-parameters": {
|
"transform-es2015-parameters": {
|
||||||
"chrome": 49,
|
"chrome": 49,
|
||||||
"edge": 14,
|
"edge": 14,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6
|
"node": 6,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-shorthand-properties": {
|
"transform-es2015-shorthand-properties": {
|
||||||
"chrome": 43,
|
"chrome": 43,
|
||||||
"edge": 12,
|
"edge": 12,
|
||||||
"firefox": 33,
|
"firefox": 33,
|
||||||
"safari": 9,
|
"safari": 9,
|
||||||
"node": 4
|
"node": 4,
|
||||||
|
"ios": 9
|
||||||
},
|
},
|
||||||
"transform-es2015-spread": {
|
"transform-es2015-spread": {
|
||||||
"chrome": 46,
|
"chrome": 46,
|
||||||
"edge": 13,
|
"edge": 13,
|
||||||
"firefox": 36,
|
"firefox": 36,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 5
|
"node": 5,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-sticky-regex": {
|
"transform-es2015-sticky-regex": {
|
||||||
"chrome": 49,
|
"chrome": 49,
|
||||||
"edge": 13,
|
"edge": 13,
|
||||||
"firefox": 3,
|
"firefox": 3,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6
|
"node": 6,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-es2015-template-literals": {
|
"transform-es2015-template-literals": {
|
||||||
"chrome": 41,
|
"chrome": 41,
|
||||||
"edge": 13,
|
"edge": 13,
|
||||||
"firefox": 34,
|
"firefox": 34,
|
||||||
"safari": 9,
|
"safari": 9,
|
||||||
"node": 4
|
"node": 4,
|
||||||
|
"ios": 9
|
||||||
},
|
},
|
||||||
"transform-es2015-typeof-symbol": {
|
"transform-es2015-typeof-symbol": {
|
||||||
"chrome": 38,
|
"chrome": 38,
|
||||||
"edge": 12,
|
"edge": 12,
|
||||||
"firefox": 36,
|
"firefox": 36,
|
||||||
"safari": 9,
|
"safari": 9,
|
||||||
"node": 0.12
|
"node": 0.12,
|
||||||
|
"ios": 9
|
||||||
},
|
},
|
||||||
"transform-es2015-unicode-regex": {
|
"transform-es2015-unicode-regex": {
|
||||||
"chrome": 50,
|
"chrome": 50,
|
||||||
"edge": 13,
|
"edge": 13,
|
||||||
"firefox": 46,
|
"firefox": 46,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6
|
"node": 6,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-regenerator": {
|
"transform-regenerator": {
|
||||||
"chrome": 50,
|
"chrome": 50,
|
||||||
"edge": 13,
|
"edge": 13,
|
||||||
"safari": 10,
|
"safari": 10,
|
||||||
"node": 6
|
"node": 6,
|
||||||
|
"ios": 10
|
||||||
},
|
},
|
||||||
"transform-exponentiation-operator": {
|
"transform-exponentiation-operator": {
|
||||||
"chrome": 52,
|
"chrome": 52,
|
||||||
@@ -133,6 +152,7 @@
|
|||||||
"syntax-trailing-function-commas": {
|
"syntax-trailing-function-commas": {
|
||||||
"edge": 14,
|
"edge": 14,
|
||||||
"firefox": 52,
|
"firefox": 52,
|
||||||
"safari": 10
|
"safari": 10,
|
||||||
|
"ios": 10
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,8 +60,7 @@
|
|||||||
"eslint-plugin-babel": "^3.3.0",
|
"eslint-plugin-babel": "^3.3.0",
|
||||||
"eslint-plugin-flow-vars": "^0.5.0",
|
"eslint-plugin-flow-vars": "^0.5.0",
|
||||||
"lodash": "^4.15.0",
|
"lodash": "^4.15.0",
|
||||||
"mocha": "^3.0.2",
|
"mocha": "^3.0.2"
|
||||||
"natural-compare": "^1.4.0"
|
|
||||||
},
|
},
|
||||||
"babel": {
|
"babel": {
|
||||||
"presets": [
|
"presets": [
|
||||||
|
|||||||
@@ -3,15 +3,25 @@ const path = require("path");
|
|||||||
|
|
||||||
const flatten = require("lodash/flatten");
|
const flatten = require("lodash/flatten");
|
||||||
const flattenDeep = require("lodash/flattenDeep");
|
const flattenDeep = require("lodash/flattenDeep");
|
||||||
// const naturalCompare = require("natural-compare");
|
|
||||||
const pluginFeatures = require("../data/pluginFeatures");
|
const pluginFeatures = require("../data/pluginFeatures");
|
||||||
|
|
||||||
const renameTests = (tests, getName) =>
|
const renameTests = (tests, getName) =>
|
||||||
tests.map((test) => Object.assign({}, test, { name: getName(test.name) }));
|
tests.map((test) => Object.assign({}, test, { name: getName(test.name) }));
|
||||||
|
|
||||||
|
const es6Data = require("compat-table/data-es6");
|
||||||
|
es6Data.browsers.node6 = es6Data.browsers["node64"];
|
||||||
|
const es6PlusData = require("compat-table/data-es2016plus");
|
||||||
|
|
||||||
|
const invertedEqualsEnv = Object.keys(es6Data.browsers)
|
||||||
|
.filter((b) => es6Data.browsers[b].equals)
|
||||||
|
.reduce((a, b) => {
|
||||||
|
a[es6Data.browsers[b].equals] = b;
|
||||||
|
return a;
|
||||||
|
}, {});
|
||||||
|
|
||||||
const compatibilityTests = flattenDeep([
|
const compatibilityTests = flattenDeep([
|
||||||
require("compat-table/data-es6"),
|
es6Data,
|
||||||
require("compat-table/data-es2016plus"),
|
es6PlusData,
|
||||||
].map((data) =>
|
].map((data) =>
|
||||||
data.tests.map((test) => {
|
data.tests.map((test) => {
|
||||||
return test.subtests ?
|
return test.subtests ?
|
||||||
@@ -20,8 +30,6 @@ const compatibilityTests = flattenDeep([
|
|||||||
})
|
})
|
||||||
));
|
));
|
||||||
|
|
||||||
// const versions = Object.keys(require("compat-table/data-es6").browsers).sort(naturalCompare);
|
|
||||||
|
|
||||||
const environments = [
|
const environments = [
|
||||||
"chrome",
|
"chrome",
|
||||||
"edge",
|
"edge",
|
||||||
@@ -30,7 +38,8 @@ const environments = [
|
|||||||
"node",
|
"node",
|
||||||
"ie",
|
"ie",
|
||||||
"android",
|
"android",
|
||||||
"ios"
|
"ios",
|
||||||
|
"phantom"
|
||||||
];
|
];
|
||||||
|
|
||||||
const envMap = {
|
const envMap = {
|
||||||
@@ -72,6 +81,11 @@ const getLowestImplementedVersion = ({ features }, env) => {
|
|||||||
|
|
||||||
let envTests = tests
|
let envTests = tests
|
||||||
.map(({ res: test, name }, i) => {
|
.map(({ res: test, name }, i) => {
|
||||||
|
// `equals` in compat-table
|
||||||
|
Object.keys(test).forEach((t) => {
|
||||||
|
test[invertedEqualsEnv[t]] = test[t];
|
||||||
|
});
|
||||||
|
|
||||||
return Object.keys(test)
|
return Object.keys(test)
|
||||||
.filter((t) => t.startsWith(env))
|
.filter((t) => t.startsWith(env))
|
||||||
// Babel assumes strict mode
|
// Babel assumes strict mode
|
||||||
|
|||||||
Reference in New Issue
Block a user