Explicitly resolve lowest browser version (#121)

stop relying on browserlist returning a list sorted by browser version
fix #119
This commit is contained in:
Marco Massarotto 2017-01-06 22:18:43 +00:00 committed by Henry Zhu
parent dc46adf519
commit 1815ffab14
7 changed files with 105 additions and 2 deletions

View File

@ -77,8 +77,10 @@ const browserNameMap = {
const getLowestVersions = (browsers) => { const getLowestVersions = (browsers) => {
return browsers.reduce((all, browser) => { return browsers.reduce((all, browser) => {
const [browserName, browserVersion] = browser.split(" "); const [browserName, browserVersion] = browser.split(" ");
if (browserName in browserNameMap) { const normalizedBrowserName = browserNameMap[browserName];
all[browserNameMap[browserName]] = parseInt(browserVersion); const parsedBrowserVersion = parseInt(browserVersion);
if (normalizedBrowserName && !isNaN(parsedBrowserVersion)) {
all[normalizedBrowserName] = Math.min(all[normalizedBrowserName] || Infinity, parsedBrowserVersion);
} }
return all; return all;
}, {}); }, {});

View File

@ -0,0 +1 @@
const a = () => 1;

View File

@ -0,0 +1 @@
const a = () => 1;

View File

@ -0,0 +1,10 @@
{
"presets": [
["../../../../lib", {
"targets": {
"browsers": ["ios >= 10"]
},
"modules": false
}]
]
}

View File

@ -0,0 +1 @@
import "core-js";

View File

@ -0,0 +1,77 @@
import "core-js/modules/es6.typed.uint8-clamped-array";
import "core-js/modules/es6.map";
import "core-js/modules/es6.set";
import "core-js/modules/es6.weak-map";
import "core-js/modules/es6.weak-set";
import "core-js/modules/es6.reflect.apply";
import "core-js/modules/es6.reflect.construct";
import "core-js/modules/es6.reflect.define-property";
import "core-js/modules/es6.reflect.delete-property";
import "core-js/modules/es6.reflect.get";
import "core-js/modules/es6.reflect.get-own-property-descriptor";
import "core-js/modules/es6.reflect.get-prototype-of";
import "core-js/modules/es6.reflect.has";
import "core-js/modules/es6.reflect.is-extensible";
import "core-js/modules/es6.reflect.own-keys";
import "core-js/modules/es6.reflect.prevent-extensions";
import "core-js/modules/es6.reflect.set";
import "core-js/modules/es6.reflect.set-prototype-of";
import "core-js/modules/es6.promise";
import "core-js/modules/es6.symbol";
import "core-js/modules/es6.object.assign";
import "core-js/modules/es6.object.is";
import "core-js/modules/es6.object.set-prototype-of";
import "core-js/modules/es6.function.name";
import "core-js/modules/es6.string.raw";
import "core-js/modules/es6.string.from-code-point";
import "core-js/modules/es6.string.code-point-at";
import "core-js/modules/es6.string.repeat";
import "core-js/modules/es6.string.starts-with";
import "core-js/modules/es6.string.ends-with";
import "core-js/modules/es6.string.includes";
import "core-js/modules/es6.regexp.flags";
import "core-js/modules/es6.regexp.match";
import "core-js/modules/es6.regexp.replace";
import "core-js/modules/es6.regexp.split";
import "core-js/modules/es6.regexp.search";
import "core-js/modules/es6.array.from";
import "core-js/modules/es6.array.of";
import "core-js/modules/es6.array.copy-within";
import "core-js/modules/es6.array.find";
import "core-js/modules/es6.array.find-index";
import "core-js/modules/es6.array.fill";
import "core-js/modules/es6.array.iterator";
import "core-js/modules/es6.number.is-finite";
import "core-js/modules/es6.number.is-integer";
import "core-js/modules/es6.number.is-safe-integer";
import "core-js/modules/es6.number.is-nan";
import "core-js/modules/es6.number.epsilon";
import "core-js/modules/es6.number.min-safe-integer";
import "core-js/modules/es6.number.max-safe-integer";
import "core-js/modules/es6.math.acosh";
import "core-js/modules/es6.math.asinh";
import "core-js/modules/es6.math.atanh";
import "core-js/modules/es6.math.cbrt";
import "core-js/modules/es6.math.clz32";
import "core-js/modules/es6.math.cosh";
import "core-js/modules/es6.math.expm1";
import "core-js/modules/es6.math.fround";
import "core-js/modules/es6.math.hypot";
import "core-js/modules/es6.math.imul";
import "core-js/modules/es6.math.log1p";
import "core-js/modules/es6.math.log10";
import "core-js/modules/es6.math.log2";
import "core-js/modules/es6.math.sign";
import "core-js/modules/es6.math.sinh";
import "core-js/modules/es6.math.tanh";
import "core-js/modules/es6.math.trunc";
import "core-js/modules/es7.array.includes.js";
import "core-js/modules/es7.object.values";
import "core-js/modules/es7.object.entries";
import "core-js/modules/es7.object.get-own-property-descriptors";
import "core-js/modules/es7.string.pad-start";
import "core-js/modules/es7.string.pad-end";
import "core-js/modules/web.timers";
import "core-js/modules/web.immediate";
import "core-js/modules/web.dom.iterable";
import "regenerator-runtime/runtime";

View File

@ -0,0 +1,11 @@
{
"presets": [
["../../../../lib", {
"targets": {
"browsers": ["ios >= 6"]
},
"modules": false,
"useBuiltIns": true
}]
]
}