From b42b21f25c9fcae731a0626482d7868c6b5a5057 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Tue, 8 May 2018 10:52:44 -0500 Subject: [PATCH] Fix bug with handling minor versions when parsing compat-data (#7884) --- packages/babel-preset-env/data/built-ins.json | 96 +++++++++---------- packages/babel-preset-env/data/plugins.json | 1 + packages/babel-preset-env/package.json | 2 +- .../babel-preset-env/scripts/build-data.js | 17 ++-- 4 files changed, 58 insertions(+), 58 deletions(-) diff --git a/packages/babel-preset-env/data/built-ins.json b/packages/babel-preset-env/data/built-ins.json index 2a7f221cb3..cbba677ae6 100644 --- a/packages/babel-preset-env/data/built-ins.json +++ b/packages/babel-preset-env/data/built-ins.json @@ -1,121 +1,121 @@ { "es6.array.every": { "chrome": "5", - "opera": "10.1", + "opera": "10.10", "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.array.filter": { "chrome": "5", - "opera": "10.1", + "opera": "10.10", "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.array.for-each": { "chrome": "5", - "opera": "10.1", + "opera": "10.10", "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.array.index-of": { "chrome": "5", - "opera": "10.1", + "opera": "10.10", "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.array.is-array": { "chrome": "5", - "opera": "10.5", + "opera": "10.50", "edge": "12", "firefox": "4", "safari": "4", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.array.last-index-of": { "chrome": "5", - "opera": "10.1", + "opera": "10.10", "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.array.map": { "chrome": "5", - "opera": "10.1", + "opera": "10.10", "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.array.reduce": { "chrome": "5", - "opera": "10.5", + "opera": "10.50", "edge": "12", "firefox": "3", "safari": "4", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.array.reduce-right": { "chrome": "5", - "opera": "10.5", + "opera": "10.50", "edge": "12", "firefox": "3", "safari": "4", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.array.some": { "chrome": "5", - "opera": "10.1", + "opera": "10.10", "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, @@ -130,37 +130,37 @@ }, "es6.date.now": { "chrome": "5", - "opera": "10.5", + "opera": "10.50", "edge": "12", "firefox": "2", "safari": "4", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.date.to-iso-string": { "chrome": "5", - "opera": "10.5", + "opera": "10.50", "edge": "12", "firefox": "3.5", "safari": "4", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.date.to-json": { "chrome": "5", - "opera": "12.1", + "opera": "12.10", "edge": "12", "firefox": "4", "safari": "10", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "10", "electron": "1.1" }, @@ -170,32 +170,32 @@ "edge": "12", "firefox": "4", "safari": "5.1", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "7" }, "es6.string.iterator": { "chrome": "5", - "opera": "10.1", + "opera": "10.10", "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.1", + "node": "0.10", "ie": "8", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, "es6.string.trim": { "chrome": "5", - "opera": "10.5", + "opera": "10.50", "edge": "12", "firefox": "3.5", "safari": "4", - "node": "0.1", + "node": "0.10", "ie": "9", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, @@ -217,7 +217,7 @@ "safari": "5.1", "node": "0.12", "ie": "10", - "android": "4", + "android": "4.0", "ios": "6", "electron": "1.1" }, diff --git a/packages/babel-preset-env/data/plugins.json b/packages/babel-preset-env/data/plugins.json index a651b04ad6..204b3a794d 100644 --- a/packages/babel-preset-env/data/plugins.json +++ b/packages/babel-preset-env/data/plugins.json @@ -242,6 +242,7 @@ "transform-dotall-regex": { "chrome": "62", "safari": "11.1", + "node": "8.10", "ios": "11.3", "opera": "49" }, diff --git a/packages/babel-preset-env/package.json b/packages/babel-preset-env/package.json index 707fd2e434..f50c9bd93d 100644 --- a/packages/babel-preset-env/package.json +++ b/packages/babel-preset-env/package.json @@ -59,7 +59,7 @@ "@babel/core": "7.0.0-beta.46", "@babel/helper-fixtures": "7.0.0-beta.46", "@babel/helper-plugin-test-runner": "7.0.0-beta.46", - "compat-table": "kangax/compat-table#f405358532e8597614b95af4dd30f2a672583727", + "compat-table": "kangax/compat-table#90d02e486227d179d2ce9b850dbb3f9846443cab", "electron-to-chromium": "^1.3.27", "request": "^2.83.0" } diff --git a/packages/babel-preset-env/scripts/build-data.js b/packages/babel-preset-env/scripts/build-data.js index ee10223579..1f4735d5bb 100644 --- a/packages/babel-preset-env/scripts/build-data.js +++ b/packages/babel-preset-env/scripts/build-data.js @@ -2,7 +2,7 @@ const fs = require("fs"); const path = require("path"); - +const semver = require("semver"); const flattenDeep = require("lodash/flattenDeep"); const isEqual = require("lodash/isEqual"); const mapValues = require("lodash/mapValues"); @@ -229,14 +229,13 @@ const getLowestImplementedVersion = ({ features }, env) => { return null; } - return envTests - .map(str => { - const version = str.replace(env, ""); - return version === unreleasedLabelForEnv ? version : parseFloat(version); - }) - .reduce((a, b) => { - return b === unreleasedLabelForEnv || a < b ? b : a; - }); + return envTests.map(str => str.replace(env, "")).reduce((a, b) => { + if (b === unreleasedLabelForEnv) { + return b; + } + + return semver.lt(semver.coerce(a), semver.coerce(b)) ? b : a; + }); }; const generateData = (environments, features) => {