Skip to content
This repository has been archived by the owner on May 11, 2018. It is now read-only.

Commit

Permalink
Explicitly resolve lowest browser version (#121)
Browse files Browse the repository at this point in the history
stop relying on browserlist returning a list sorted by browser version
fix #119
  • Loading branch information
brokenmass authored and hzoo committed Jan 6, 2017
1 parent 21de4a1 commit 84d10f3
Show file tree
Hide file tree
Showing 7 changed files with 105 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,10 @@ const browserNameMap = {
const getLowestVersions = (browsers) => {
return browsers.reduce((all, browser) => {
const [browserName, browserVersion] = browser.split(" ");
if (browserName in browserNameMap) {
all[browserNameMap[browserName]] = parseInt(browserVersion);
const normalizedBrowserName = browserNameMap[browserName];
const parsedBrowserVersion = parseInt(browserVersion);
if (normalizedBrowserName && !isNaN(parsedBrowserVersion)) {
all[normalizedBrowserName] = Math.min(all[normalizedBrowserName] || Infinity, parsedBrowserVersion);
}
return all;
}, {});
Expand Down
1 change: 1 addition & 0 deletions test/fixtures/preset-options/ios-10/actual.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
const a = () => 1;
1 change: 1 addition & 0 deletions test/fixtures/preset-options/ios-10/expected.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
const a = () => 1;
10 changes: 10 additions & 0 deletions test/fixtures/preset-options/ios-10/options.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"presets": [
["../../../../lib", {
"targets": {
"browsers": ["ios >= 10"]
},
"modules": false
}]
]
}
1 change: 1 addition & 0 deletions test/fixtures/preset-options/ios-6/actual.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import "core-js";
77 changes: 77 additions & 0 deletions test/fixtures/preset-options/ios-6/expected.js
Original file line number Diff line number Diff line change
@@ -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";
11 changes: 11 additions & 0 deletions test/fixtures/preset-options/ios-6/options.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"presets": [
["../../../../lib", {
"targets": {
"browsers": ["ios >= 6"]
},
"modules": false,
"useBuiltIns": true
}]
]
}

0 comments on commit 84d10f3

Please sign in to comment.