Support target versions as strings (#231)

This commit is contained in:
Brian Ng
2017-04-07 14:24:42 -05:00
committed by GitHub
parent 79573baa16
commit 3c1836ab43
26 changed files with 1916 additions and 1391 deletions

View File

@@ -96,11 +96,11 @@ For more information on setting options for a preset, refer to the [plugin/prese
### `targets`
`{ [string]: number }`, defaults to `{}`.
`{ [string]: number | string }`, defaults to `{}`.
Takes an object of environment versions to support.
Each target environment takes a number (you can also specify a minor versions like `node: 6.5`)
Each target environment takes a number or a string (we recommend using a string when specifying minor versions like `node: "6.10"`).
Example environments: `chrome`, `opera`, `edge`, `firefox`, `safari`, `ie`, `ios`, `android`, `node`, `electron`.

File diff suppressed because it is too large Load Diff

View File

@@ -1,228 +1,228 @@
{
"transform-es2015-arrow-functions": {
"chrome": 47,
"edge": 13,
"firefox": 45,
"safari": 10,
"node": 6,
"ios": 10,
"opera": 34,
"electron": 0.36
"chrome": "47",
"edge": "13",
"firefox": "45",
"safari": "10",
"node": "6",
"ios": "10",
"opera": "34",
"electron": "0.36"
},
"transform-es2015-block-scoped-functions": {
"chrome": 41,
"edge": 12,
"firefox": 46,
"safari": 10,
"node": 4,
"ie": 11,
"ios": 10,
"opera": 28,
"electron": 0.24
"chrome": "41",
"edge": "12",
"firefox": "46",
"safari": "10",
"node": "4",
"ie": "11",
"ios": "10",
"opera": "28",
"electron": "0.24"
},
"transform-es2015-block-scoping": {
"chrome": 49,
"edge": 14,
"firefox": 51,
"safari": 10,
"node": 6,
"ios": 10,
"opera": 36,
"electron": 1
"chrome": "49",
"edge": "14",
"firefox": "51",
"safari": "10",
"node": "6",
"ios": "10",
"opera": "36",
"electron": "1"
},
"transform-es2015-classes": {
"chrome": 46,
"edge": 13,
"firefox": 45,
"safari": 10,
"node": 5,
"ios": 10,
"opera": 33,
"electron": 0.36
"chrome": "46",
"edge": "13",
"firefox": "45",
"safari": "10",
"node": "5",
"ios": "10",
"opera": "33",
"electron": "0.36"
},
"transform-es2015-computed-properties": {
"chrome": 44,
"edge": 12,
"firefox": 34,
"safari": 8,
"node": 4,
"ios": 8,
"opera": 31,
"electron": 0.31
"chrome": "44",
"edge": "12",
"firefox": "34",
"safari": "8",
"node": "4",
"ios": "8",
"opera": "31",
"electron": "0.31"
},
"check-es2015-constants": {
"chrome": 49,
"edge": 14,
"firefox": 51,
"safari": 10,
"node": 6,
"ios": 10,
"opera": 36,
"electron": 1
"chrome": "49",
"edge": "14",
"firefox": "51",
"safari": "10",
"node": "6",
"ios": "10",
"opera": "36",
"electron": "1"
},
"transform-es2015-destructuring": {
"chrome": 51,
"edge": 15,
"firefox": 53,
"safari": 10,
"node": 6.5,
"ios": 10,
"opera": 38,
"electron": 1.2
"chrome": "51",
"edge": "15",
"firefox": "53",
"safari": "10",
"node": "6.5",
"ios": "10",
"opera": "38",
"electron": "1.2"
},
"transform-es2015-duplicate-keys": {
"chrome": 42,
"edge": 12,
"firefox": 34,
"safari": 9,
"node": 4,
"ios": 9,
"opera": 29,
"electron": 0.27
"chrome": "42",
"edge": "12",
"firefox": "34",
"safari": "9",
"node": "4",
"ios": "9",
"opera": "29",
"electron": "0.27"
},
"transform-es2015-for-of": {
"chrome": 51,
"edge": 15,
"firefox": 53,
"safari": 10,
"node": 6.5,
"ios": 10,
"opera": 38,
"electron": 1.2
"chrome": "51",
"edge": "15",
"firefox": "53",
"safari": "10",
"node": "6.5",
"ios": "10",
"opera": "38",
"electron": "1.2"
},
"transform-es2015-function-name": {
"chrome": 51,
"firefox": 53,
"safari": 10,
"node": 6.5,
"ios": 10,
"opera": 38,
"electron": 1.2
"chrome": "51",
"firefox": "53",
"safari": "10",
"node": "6.5",
"ios": "10",
"opera": "38",
"electron": "1.2"
},
"transform-es2015-literals": {
"chrome": 44,
"edge": 12,
"firefox": 53,
"safari": 9,
"node": 4,
"ios": 9,
"opera": 31,
"electron": 0.31
"chrome": "44",
"edge": "12",
"firefox": "53",
"safari": "9",
"node": "4",
"ios": "9",
"opera": "31",
"electron": "0.31"
},
"transform-es2015-object-super": {
"chrome": 46,
"edge": 13,
"firefox": 45,
"safari": 10,
"node": 5,
"ios": 10,
"opera": 33,
"electron": 0.36
"chrome": "46",
"edge": "13",
"firefox": "45",
"safari": "10",
"node": "5",
"ios": "10",
"opera": "33",
"electron": "0.36"
},
"transform-es2015-parameters": {
"chrome": 49,
"edge": 14,
"firefox": 53,
"safari": 10,
"node": 6,
"ios": 10,
"opera": 36,
"electron": 1
"chrome": "49",
"edge": "14",
"firefox": "53",
"safari": "10",
"node": "6",
"ios": "10",
"opera": "36",
"electron": "1"
},
"transform-es2015-shorthand-properties": {
"chrome": 43,
"edge": 12,
"firefox": 33,
"safari": 9,
"node": 4,
"ios": 9,
"opera": 30,
"electron": 0.29
"chrome": "43",
"edge": "12",
"firefox": "33",
"safari": "9",
"node": "4",
"ios": "9",
"opera": "30",
"electron": "0.29"
},
"transform-es2015-spread": {
"chrome": 46,
"edge": 13,
"firefox": 36,
"safari": 10,
"node": 5,
"ios": 10,
"opera": 33,
"electron": 0.36
"chrome": "46",
"edge": "13",
"firefox": "36",
"safari": "10",
"node": "5",
"ios": "10",
"opera": "33",
"electron": "0.36"
},
"transform-es2015-sticky-regex": {
"chrome": 49,
"edge": 13,
"firefox": 3,
"safari": 10,
"node": 6,
"ios": 10,
"opera": 36,
"electron": 1
"chrome": "49",
"edge": "13",
"firefox": "3",
"safari": "10",
"node": "6",
"ios": "10",
"opera": "36",
"electron": "1"
},
"transform-es2015-template-literals": {
"chrome": 41,
"edge": 13,
"firefox": 34,
"safari": 9,
"node": 4,
"ios": 9,
"opera": 28,
"electron": 0.24
"chrome": "41",
"edge": "13",
"firefox": "34",
"safari": "9",
"node": "4",
"ios": "9",
"opera": "28",
"electron": "0.24"
},
"transform-es2015-typeof-symbol": {
"chrome": 38,
"edge": 12,
"firefox": 36,
"safari": 9,
"node": 0.12,
"android": 5.1,
"ios": 9,
"opera": 25,
"electron": 0.2
"chrome": "38",
"edge": "12",
"firefox": "36",
"safari": "9",
"node": "0.12",
"android": "5.1",
"ios": "9",
"opera": "25",
"electron": "0.2"
},
"transform-es2015-unicode-regex": {
"chrome": 50,
"edge": 13,
"firefox": 46,
"safari": 10,
"node": 6,
"ios": 10,
"opera": 37,
"electron": 1.1
"chrome": "50",
"edge": "13",
"firefox": "46",
"safari": "10",
"node": "6",
"ios": "10",
"opera": "37",
"electron": "1.1"
},
"transform-regenerator": {
"chrome": 50,
"edge": 13,
"firefox": 53,
"safari": 10,
"node": 6,
"ios": 10,
"opera": 37,
"electron": 1.1
"chrome": "50",
"edge": "13",
"firefox": "53",
"safari": "10",
"node": "6",
"ios": "10",
"opera": "37",
"electron": "1.1"
},
"transform-exponentiation-operator": {
"chrome": 52,
"edge": 14,
"firefox": 52,
"safari": 10.1,
"node": 7,
"opera": 39,
"electron": 1.3
"chrome": "52",
"edge": "14",
"firefox": "52",
"safari": "10.1",
"node": "7",
"opera": "39",
"electron": "1.3"
},
"transform-async-to-generator": {
"chrome": 55,
"firefox": 52,
"safari": 10.1,
"node": 7.6,
"opera": 42,
"electron": 1.6
"chrome": "55",
"firefox": "52",
"safari": "10.1",
"node": "7.6",
"opera": "42",
"electron": "1.6"
},
"syntax-trailing-function-commas": {
"chrome": 58,
"edge": 14,
"firefox": 52,
"safari": 10,
"ios": 10,
"opera": 45
"chrome": "58",
"edge": "14",
"firefox": "52",
"safari": "10",
"ios": "10",
"opera": "45"
}
}

View File

@@ -52,7 +52,8 @@
"babel-plugin-transform-exponentiation-operator": "7.0.0-alpha.7",
"babel-plugin-transform-regenerator": "7.0.0-alpha.7",
"browserslist": "^1.4.0",
"invariant": "^2.2.2"
"invariant": "^2.2.2",
"semver": "^5.3.0"
},
"devDependencies": {
"babel-cli": "7.0.0-alpha.6",

View File

@@ -245,20 +245,22 @@ const generateData = (environments, features) => {
environments.forEach(env => {
const version = getLowestImplementedVersion(options, env);
if (version !== null) {
plugin[env] = version;
plugin[env] = version.toString();
}
});
// add opera
if (plugin.chrome) {
// add opera
if (plugin.chrome >= 28) {
plugin.opera = plugin.chrome - 13;
plugin.opera = (plugin.chrome - 13).toString();
} else if (plugin.chrome === 5) {
plugin.opera = 12;
plugin.opera = "12";
}
// add electron
const electronVersion = chromiumToElectron(plugin.chrome);
if (electronVersion) {
plugin.electron = electronVersion;
plugin.electron = electronVersion.toString();
}
}

View File

@@ -1,4 +1,4 @@
import browserslist from "browserslist";
import semver from "semver";
import builtInsList from "../data/built-ins.json";
import { defaultWebIncludes } from "./default-includes";
import moduleTransformations from "./module-transformations";
@@ -6,20 +6,21 @@ import normalizeOptions from "./normalize-options.js";
import pluginList from "../data/plugins.json";
import useBuiltInsEntryPlugin from "./use-built-ins-entry-plugin";
import addUsedBuiltInsPlugin from "./use-built-ins-plugin";
import getTargets from "./targets-parser";
import { _extends, prettifyTargets, prettifyVersion, semverify } from "./utils";
/**
* Determine if a transformation is required
*
* NOTE: This assumes `supportedEnvironments` has already been parsed by `getTargets`
*
* @param {Object} supportedEnvironments An Object containing environment keys and the lowest
* supported version as a value
* @param {Object} plugin An Object containing environment keys and the lowest
* version the feature was implemented in as a value
* @return {Boolean} Whether or not the transformation is required
* @return {Boolean} Whether or not the transformation is required
*/
export const isPluginRequired = (supportedEnvironments, plugin) => {
if (supportedEnvironments.browsers) {
supportedEnvironments = getTargets(supportedEnvironments);
}
const targetEnvironments = Object.keys(supportedEnvironments);
if (targetEnvironments.length === 0) {
@@ -35,96 +36,20 @@ export const isPluginRequired = (supportedEnvironments, plugin) => {
const lowestImplementedVersion = plugin[environment];
const lowestTargetedVersion = supportedEnvironments[environment];
if (typeof lowestTargetedVersion === "string") {
if (!semver.valid(lowestTargetedVersion)) {
throw new Error(
`Target version must be a number,
'${lowestTargetedVersion}' was given for '${environment}'`,
// eslint-disable-next-line max-len
`Invalid version passed for target "${environment}": "${lowestTargetedVersion}". Versions must be in semver format (major.minor.patch)`,
);
}
return lowestTargetedVersion < lowestImplementedVersion;
return semver.gt(
semverify(lowestImplementedVersion),
lowestTargetedVersion,
);
});
return isRequiredForEnvironments.length > 0 ? true : false;
};
const isBrowsersQueryValid = browsers => {
return typeof browsers === "string" || Array.isArray(browsers);
};
const browserNameMap = {
chrome: "chrome",
edge: "edge",
firefox: "firefox",
ie: "ie",
ios_saf: "ios",
safari: "safari",
};
const getLowestVersions = browsers => {
return browsers.reduce(
(all, browser) => {
const [browserName, browserVersion] = browser.split(" ");
const normalizedBrowserName = browserNameMap[browserName];
const parsedBrowserVersion = parseInt(browserVersion);
if (normalizedBrowserName && !isNaN(parsedBrowserVersion)) {
all[normalizedBrowserName] = Math.min(
all[normalizedBrowserName] || Infinity,
parsedBrowserVersion,
);
}
return all;
},
{},
);
};
const mergeBrowsers = (fromQuery, fromTarget) => {
return Object.keys(fromTarget).reduce(
(queryObj, targKey) => {
if (targKey !== "browsers") {
queryObj[targKey] = fromTarget[targKey];
}
return queryObj;
},
fromQuery,
);
};
export const getCurrentNodeVersion = () => {
return parseFloat(process.versions.node);
};
const _extends = Object.assign ||
function(target) {
for (let i = 1; i < arguments.length; i++) {
const source = arguments[i];
for (const key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
export const getTargets = (targets = {}) => {
const targetOpts = _extends({}, targets);
if (targetOpts.node === true || targetOpts.node === "current") {
targetOpts.node = getCurrentNodeVersion();
}
if (targetOpts.hasOwnProperty("uglify") && !targetOpts.uglify) {
delete targetOpts.uglify;
}
const browserOpts = targetOpts.browsers;
if (isBrowsersQueryValid(browserOpts)) {
const queryBrowsers = getLowestVersions(browserslist(browserOpts));
return mergeBrowsers(queryBrowsers, targetOpts);
}
return targetOpts;
return isRequiredForEnvironments.length > 0;
};
let hasBeenLogged = false;
@@ -133,8 +58,8 @@ const logPlugin = (plugin, targets, list) => {
const envList = list[plugin] || {};
const filteredList = Object.keys(targets).reduce(
(a, b) => {
if (!envList[b] || targets[b] < envList[b]) {
a[b] = targets[b];
if (!envList[b] || semver.lt(targets[b], semverify(envList[b]))) {
a[b] = prettifyVersion(targets[b]);
}
return a;
},
@@ -213,7 +138,7 @@ export default function buildPreset(context, opts = {}) {
hasBeenLogged = true;
console.log("babel-preset-env: `DEBUG` option");
console.log("\nUsing targets:");
console.log(JSON.stringify(targets, null, 2));
console.log(JSON.stringify(prettifyTargets(targets), null, 2));
console.log(`\nModules transform: ${moduleType}`);
console.log("\nUsing plugins:");
transformations.forEach(transform => {

View File

@@ -0,0 +1,132 @@
import browserslist from "browserslist";
import semver from "semver";
import { semverify } from "./utils";
const browserNameMap = {
chrome: "chrome",
edge: "edge",
firefox: "firefox",
ie: "ie",
ios_saf: "ios",
safari: "safari",
};
const isBrowsersQueryValid = browsers =>
typeof browsers === "string" || Array.isArray(browsers);
const semverMin = (first, second) => {
return first && semver.lt(first, second) ? first : second;
};
const getLowestVersions = browsers => {
return browsers.reduce(
(all, browser) => {
const [browserName, browserVersion] = browser.split(" ");
const normalizedBrowserName = browserNameMap[browserName];
if (!normalizedBrowserName) {
return all;
}
try {
// Browser version can return as "10.0-10.2"
const splitVersion = browserVersion.split("-")[0];
const parsedBrowserVersion = semverify(splitVersion);
all[normalizedBrowserName] = semverMin(
all[normalizedBrowserName],
parsedBrowserVersion,
);
} catch (e) {}
return all;
},
{},
);
};
const outputDecimalWarning = decimalTargets => {
if (!decimalTargets || !decimalTargets.length) {
return;
}
console.log("Warning, the following targets are using a decimal version:");
console.log("");
decimalTargets.forEach(({ target, value }) =>
console.log(` ${target}: ${value}`));
console.log("");
console.log(
"We recommend using a string for minor/patch versions to avoid numbers like 6.10",
);
console.log("getting parsed as 6.1, which can lead to unexpected behavior.");
console.log("");
};
const targetParserMap = {
__default: (target, value) => [target, semverify(value)],
// Parse `node: true` and `node: "current"` to version
node: (target, value) => {
const parsed = value === true || value === "current"
? process.versions.node
: semverify(value);
return [target, parsed];
},
// Only valid value for Uglify is `true`
uglify: (target, value) => [target, value === true],
};
const getTargets = (targets = {}) => {
let targetOpts = {};
// Parse browsers target via browserslist
if (isBrowsersQueryValid(targets.browsers)) {
targetOpts = getLowestVersions(browserslist(targets.browsers));
}
// Parse remaining targets
const parsed = Object.keys(targets).reduce(
(results, target) => {
if (target !== "browsers") {
const value = targets[target];
// Warn when specifying minor/patch as a decimal
if (typeof value === "number" && value % 1 !== 0) {
results.decimalWarnings.push({ target, value });
}
// Check if we have a target parser?
const parser = targetParserMap[target] || targetParserMap.__default;
const [parsedTarget, parsedValue] = parser(target, value);
if (parsedValue) {
// Merge (lowest wins)
if (typeof parsedValue === "string") {
results.targets[parsedTarget] = semverMin(
results.targets[parsedTarget],
parsedValue,
);
} else {
// We can remove this block if/when we replace Uglify target
// with top level option
results.targets[parsedTarget] = parsedValue;
}
}
}
return results;
},
{
targets: targetOpts,
decimalWarnings: [],
},
);
outputDecimalWarning(parsed.decimalWarnings);
return parsed.targets;
};
export default getTargets;

View File

@@ -0,0 +1,67 @@
// @flow
import semver from "semver";
export const _extends = Object.assign ||
function(target) {
for (let i = 1; i < arguments.length; i++) {
const source = arguments[i];
for (const key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
// Convert version to a semver value.
// 2.5 -> 2.5.0; 1 -> 1.0.0;
export const semverify = version => {
if (typeof version === "string" && semver.valid(version)) {
return version;
}
const split = version.toString().split(".");
while (split.length < 3) {
split.push(0);
}
return split.join(".");
};
export const prettifyVersion = version => {
if (typeof version !== "string") {
return version;
}
const parts = [semver.major(version)];
const minor = semver.minor(version);
const patch = semver.patch(version);
if (minor || patch) {
parts.push(minor);
}
if (patch) {
parts.push(patch);
}
return parts.join(".");
};
export const prettifyTargets = (targets = {}) => {
return Object.keys(targets).reduce(
(results, target) => {
let value = targets[target];
if (typeof value === "string") {
value = prettifyVersion(value);
}
results[target] = value;
return results;
},
{},
);
};

View File

@@ -2,7 +2,7 @@ babel-preset-env: `DEBUG` option
Using targets:
{
"chrome": 55,
"chrome": "55",
"uglify": true
}
@@ -31,12 +31,12 @@ Using plugins:
transform-regenerator {"uglify":true}
transform-exponentiation-operator {"uglify":true}
transform-async-to-generator {"uglify":true}
syntax-trailing-function-commas {"chrome":55,"uglify":true}
syntax-trailing-function-commas {"chrome":"55","uglify":true}
Using polyfills:
es7.string.pad-start {"chrome":55}
es7.string.pad-end {"chrome":55}
web.timers {"chrome":55}
web.immediate {"chrome":55}
web.dom.iterable {"chrome":55}
src/in.js -> lib/in.js
es7.string.pad-start {"chrome":"55"}
es7.string.pad-end {"chrome":"55"}
web.timers {"chrome":"55"}
web.immediate {"chrome":"55"}
web.dom.iterable {"chrome":"55"}
src/in.js -> lib/in.js

View File

@@ -2,122 +2,122 @@ babel-preset-env: `DEBUG` option
Using targets:
{
"chrome": 54,
"ie": 10,
"node": 6
"chrome": "54",
"ie": "10",
"node": "6"
}
Modules transform: commonjs
Using plugins:
transform-es2015-arrow-functions {"ie":10}
transform-es2015-block-scoped-functions {"ie":10}
transform-es2015-block-scoping {"ie":10}
transform-es2015-classes {"ie":10}
transform-es2015-computed-properties {"ie":10}
check-es2015-constants {"ie":10}
transform-es2015-destructuring {"ie":10,"node":6}
transform-es2015-duplicate-keys {"ie":10}
transform-es2015-for-of {"ie":10,"node":6}
transform-es2015-function-name {"ie":10,"node":6}
transform-es2015-literals {"ie":10}
transform-es2015-object-super {"ie":10}
transform-es2015-parameters {"ie":10}
transform-es2015-shorthand-properties {"ie":10}
transform-es2015-spread {"ie":10}
transform-es2015-sticky-regex {"ie":10}
transform-es2015-template-literals {"ie":10}
transform-es2015-typeof-symbol {"ie":10}
transform-es2015-unicode-regex {"ie":10}
transform-regenerator {"ie":10}
transform-exponentiation-operator {"ie":10,"node":6}
transform-async-to-generator {"chrome":54,"ie":10,"node":6}
syntax-trailing-function-commas {"chrome":54,"ie":10,"node":6}
transform-es2015-arrow-functions {"ie":"10"}
transform-es2015-block-scoped-functions {"ie":"10"}
transform-es2015-block-scoping {"ie":"10"}
transform-es2015-classes {"ie":"10"}
transform-es2015-computed-properties {"ie":"10"}
check-es2015-constants {"ie":"10"}
transform-es2015-destructuring {"ie":"10","node":"6"}
transform-es2015-duplicate-keys {"ie":"10"}
transform-es2015-for-of {"ie":"10","node":"6"}
transform-es2015-function-name {"ie":"10","node":"6"}
transform-es2015-literals {"ie":"10"}
transform-es2015-object-super {"ie":"10"}
transform-es2015-parameters {"ie":"10"}
transform-es2015-shorthand-properties {"ie":"10"}
transform-es2015-spread {"ie":"10"}
transform-es2015-sticky-regex {"ie":"10"}
transform-es2015-template-literals {"ie":"10"}
transform-es2015-typeof-symbol {"ie":"10"}
transform-es2015-unicode-regex {"ie":"10"}
transform-regenerator {"ie":"10"}
transform-exponentiation-operator {"ie":"10","node":"6"}
transform-async-to-generator {"chrome":"54","ie":"10","node":"6"}
syntax-trailing-function-commas {"chrome":"54","ie":"10","node":"6"}
Using polyfills:
es6.typed.array-buffer {"ie":10,"node":6}
es6.typed.int8-array {"ie":10,"node":6}
es6.typed.uint8-array {"ie":10,"node":6}
es6.typed.uint8-clamped-array {"ie":10,"node":6}
es6.typed.int16-array {"ie":10,"node":6}
es6.typed.uint16-array {"ie":10,"node":6}
es6.typed.int32-array {"ie":10,"node":6}
es6.typed.uint32-array {"ie":10,"node":6}
es6.typed.float32-array {"ie":10,"node":6}
es6.typed.float64-array {"ie":10,"node":6}
es6.map {"ie":10,"node":6}
es6.set {"ie":10,"node":6}
es6.weak-map {"ie":10,"node":6}
es6.weak-set {"ie":10,"node":6}
es6.reflect.apply {"ie":10}
es6.reflect.construct {"ie":10}
es6.reflect.define-property {"ie":10}
es6.reflect.delete-property {"ie":10}
es6.reflect.get {"ie":10}
es6.reflect.get-own-property-descriptor {"ie":10}
es6.reflect.get-prototype-of {"ie":10}
es6.reflect.has {"ie":10}
es6.reflect.is-extensible {"ie":10}
es6.reflect.own-keys {"ie":10}
es6.reflect.prevent-extensions {"ie":10}
es6.reflect.set {"ie":10}
es6.reflect.set-prototype-of {"ie":10}
es6.promise {"ie":10,"node":6}
es6.symbol {"ie":10,"node":6}
es6.object.assign {"ie":10}
es6.object.is {"ie":10}
es6.object.set-prototype-of {"ie":10}
es6.function.name {"ie":10,"node":6}
es6.string.raw {"ie":10}
es6.string.from-code-point {"ie":10}
es6.string.code-point-at {"ie":10}
es6.string.repeat {"ie":10}
es6.string.starts-with {"ie":10}
es6.string.ends-with {"ie":10}
es6.string.includes {"ie":10}
es6.regexp.flags {"ie":10}
es6.regexp.match {"ie":10}
es6.regexp.replace {"ie":10}
es6.regexp.split {"ie":10}
es6.regexp.search {"ie":10}
es6.array.from {"ie":10,"node":6}
es6.array.of {"ie":10}
es6.array.copy-within {"ie":10}
es6.array.find {"ie":10}
es6.array.find-index {"ie":10}
es6.array.fill {"ie":10}
es6.array.iterator {"ie":10}
es6.number.is-finite {"ie":10}
es6.number.is-integer {"ie":10}
es6.number.is-safe-integer {"ie":10}
es6.number.is-nan {"ie":10}
es6.number.epsilon {"ie":10}
es6.number.min-safe-integer {"ie":10}
es6.number.max-safe-integer {"ie":10}
es6.math.acosh {"ie":10}
es6.math.asinh {"ie":10}
es6.math.atanh {"ie":10}
es6.math.cbrt {"ie":10}
es6.math.clz32 {"ie":10}
es6.math.cosh {"ie":10}
es6.math.expm1 {"ie":10}
es6.math.fround {"ie":10}
es6.math.hypot {"ie":10}
es6.math.imul {"ie":10}
es6.math.log1p {"ie":10}
es6.math.log10 {"ie":10}
es6.math.log2 {"ie":10}
es6.math.sign {"ie":10}
es6.math.sinh {"ie":10}
es6.math.tanh {"ie":10}
es6.math.trunc {"ie":10}
es7.array.includes {"ie":10}
es7.object.values {"ie":10,"node":6}
es7.object.entries {"ie":10,"node":6}
es7.object.get-own-property-descriptors {"ie":10,"node":6}
es7.string.pad-start {"chrome":54,"ie":10,"node":6}
es7.string.pad-end {"chrome":54,"ie":10,"node":6}
web.timers {"chrome":54,"ie":10,"node":6}
web.immediate {"chrome":54,"ie":10,"node":6}
web.dom.iterable {"chrome":54,"ie":10,"node":6}
src/in.js -> lib/in.js
es6.typed.array-buffer {"ie":"10","node":"6"}
es6.typed.int8-array {"ie":"10","node":"6"}
es6.typed.uint8-array {"ie":"10","node":"6"}
es6.typed.uint8-clamped-array {"ie":"10","node":"6"}
es6.typed.int16-array {"ie":"10","node":"6"}
es6.typed.uint16-array {"ie":"10","node":"6"}
es6.typed.int32-array {"ie":"10","node":"6"}
es6.typed.uint32-array {"ie":"10","node":"6"}
es6.typed.float32-array {"ie":"10","node":"6"}
es6.typed.float64-array {"ie":"10","node":"6"}
es6.map {"ie":"10","node":"6"}
es6.set {"ie":"10","node":"6"}
es6.weak-map {"ie":"10","node":"6"}
es6.weak-set {"ie":"10","node":"6"}
es6.reflect.apply {"ie":"10"}
es6.reflect.construct {"ie":"10"}
es6.reflect.define-property {"ie":"10"}
es6.reflect.delete-property {"ie":"10"}
es6.reflect.get {"ie":"10"}
es6.reflect.get-own-property-descriptor {"ie":"10"}
es6.reflect.get-prototype-of {"ie":"10"}
es6.reflect.has {"ie":"10"}
es6.reflect.is-extensible {"ie":"10"}
es6.reflect.own-keys {"ie":"10"}
es6.reflect.prevent-extensions {"ie":"10"}
es6.reflect.set {"ie":"10"}
es6.reflect.set-prototype-of {"ie":"10"}
es6.promise {"ie":"10","node":"6"}
es6.symbol {"ie":"10","node":"6"}
es6.object.assign {"ie":"10"}
es6.object.is {"ie":"10"}
es6.object.set-prototype-of {"ie":"10"}
es6.function.name {"ie":"10","node":"6"}
es6.string.raw {"ie":"10"}
es6.string.from-code-point {"ie":"10"}
es6.string.code-point-at {"ie":"10"}
es6.string.repeat {"ie":"10"}
es6.string.starts-with {"ie":"10"}
es6.string.ends-with {"ie":"10"}
es6.string.includes {"ie":"10"}
es6.regexp.flags {"ie":"10"}
es6.regexp.match {"ie":"10"}
es6.regexp.replace {"ie":"10"}
es6.regexp.split {"ie":"10"}
es6.regexp.search {"ie":"10"}
es6.array.from {"ie":"10","node":"6"}
es6.array.of {"ie":"10"}
es6.array.copy-within {"ie":"10"}
es6.array.find {"ie":"10"}
es6.array.find-index {"ie":"10"}
es6.array.fill {"ie":"10"}
es6.array.iterator {"ie":"10"}
es6.number.is-finite {"ie":"10"}
es6.number.is-integer {"ie":"10"}
es6.number.is-safe-integer {"ie":"10"}
es6.number.is-nan {"ie":"10"}
es6.number.epsilon {"ie":"10"}
es6.number.min-safe-integer {"ie":"10"}
es6.number.max-safe-integer {"ie":"10"}
es6.math.acosh {"ie":"10"}
es6.math.asinh {"ie":"10"}
es6.math.atanh {"ie":"10"}
es6.math.cbrt {"ie":"10"}
es6.math.clz32 {"ie":"10"}
es6.math.cosh {"ie":"10"}
es6.math.expm1 {"ie":"10"}
es6.math.fround {"ie":"10"}
es6.math.hypot {"ie":"10"}
es6.math.imul {"ie":"10"}
es6.math.log1p {"ie":"10"}
es6.math.log10 {"ie":"10"}
es6.math.log2 {"ie":"10"}
es6.math.sign {"ie":"10"}
es6.math.sinh {"ie":"10"}
es6.math.tanh {"ie":"10"}
es6.math.trunc {"ie":"10"}
es7.array.includes {"ie":"10"}
es7.object.values {"ie":"10","node":"6"}
es7.object.entries {"ie":"10","node":"6"}
es7.object.get-own-property-descriptors {"ie":"10","node":"6"}
es7.string.pad-start {"chrome":"54","ie":"10","node":"6"}
es7.string.pad-end {"chrome":"54","ie":"10","node":"6"}
web.timers {"chrome":"54","ie":"10","node":"6"}
web.immediate {"chrome":"54","ie":"10","node":"6"}
web.dom.iterable {"chrome":"54","ie":"10","node":"6"}
src/in.js -> lib/in.js

View File

@@ -1,69 +1,77 @@
Warning, the following targets are using a decimal version:
electron: 0.36
We recommend using a string for minor/patch versions to avoid numbers like 6.10
getting parsed as 6.1, which can lead to unexpected behavior.
babel-preset-env: `DEBUG` option
Using targets:
{
"electron": 0.36
"electron": "0.36"
}
Modules transform: commonjs
Using plugins:
transform-es2015-block-scoping {"electron":0.36}
check-es2015-constants {"electron":0.36}
transform-es2015-destructuring {"electron":0.36}
transform-es2015-for-of {"electron":0.36}
transform-es2015-function-name {"electron":0.36}
transform-es2015-parameters {"electron":0.36}
transform-es2015-sticky-regex {"electron":0.36}
transform-es2015-unicode-regex {"electron":0.36}
transform-regenerator {"electron":0.36}
transform-exponentiation-operator {"electron":0.36}
transform-async-to-generator {"electron":0.36}
syntax-trailing-function-commas {"electron":0.36}
transform-es2015-block-scoping {"electron":"0.36"}
check-es2015-constants {"electron":"0.36"}
transform-es2015-destructuring {"electron":"0.36"}
transform-es2015-for-of {"electron":"0.36"}
transform-es2015-function-name {"electron":"0.36"}
transform-es2015-parameters {"electron":"0.36"}
transform-es2015-sticky-regex {"electron":"0.36"}
transform-es2015-unicode-regex {"electron":"0.36"}
transform-regenerator {"electron":"0.36"}
transform-exponentiation-operator {"electron":"0.36"}
transform-async-to-generator {"electron":"0.36"}
syntax-trailing-function-commas {"electron":"0.36"}
Using polyfills:
es6.typed.array-buffer {"electron":0.36}
es6.typed.int8-array {"electron":0.36}
es6.typed.uint8-array {"electron":0.36}
es6.typed.uint8-clamped-array {"electron":0.36}
es6.typed.int16-array {"electron":0.36}
es6.typed.uint16-array {"electron":0.36}
es6.typed.int32-array {"electron":0.36}
es6.typed.uint32-array {"electron":0.36}
es6.typed.float32-array {"electron":0.36}
es6.typed.float64-array {"electron":0.36}
es6.map {"electron":0.36}
es6.set {"electron":0.36}
es6.weak-map {"electron":0.36}
es6.weak-set {"electron":0.36}
es6.reflect.apply {"electron":0.36}
es6.reflect.construct {"electron":0.36}
es6.reflect.define-property {"electron":0.36}
es6.reflect.delete-property {"electron":0.36}
es6.reflect.get {"electron":0.36}
es6.reflect.get-own-property-descriptor {"electron":0.36}
es6.reflect.get-prototype-of {"electron":0.36}
es6.reflect.has {"electron":0.36}
es6.reflect.is-extensible {"electron":0.36}
es6.reflect.own-keys {"electron":0.36}
es6.reflect.prevent-extensions {"electron":0.36}
es6.reflect.set {"electron":0.36}
es6.reflect.set-prototype-of {"electron":0.36}
es6.promise {"electron":0.36}
es6.symbol {"electron":0.36}
es6.function.name {"electron":0.36}
es6.regexp.flags {"electron":0.36}
es6.regexp.match {"electron":0.36}
es6.regexp.replace {"electron":0.36}
es6.regexp.split {"electron":0.36}
es6.regexp.search {"electron":0.36}
es6.array.from {"electron":0.36}
es7.object.values {"electron":0.36}
es7.object.entries {"electron":0.36}
es7.object.get-own-property-descriptors {"electron":0.36}
es7.string.pad-start {"electron":0.36}
es7.string.pad-end {"electron":0.36}
web.timers {"electron":0.36}
web.immediate {"electron":0.36}
web.dom.iterable {"electron":0.36}
src/in.js -> lib/in.js
es6.typed.array-buffer {"electron":"0.36"}
es6.typed.data-view {"electron":"0.36"}
es6.typed.int8-array {"electron":"0.36"}
es6.typed.uint8-array {"electron":"0.36"}
es6.typed.uint8-clamped-array {"electron":"0.36"}
es6.typed.int16-array {"electron":"0.36"}
es6.typed.uint16-array {"electron":"0.36"}
es6.typed.int32-array {"electron":"0.36"}
es6.typed.uint32-array {"electron":"0.36"}
es6.typed.float32-array {"electron":"0.36"}
es6.typed.float64-array {"electron":"0.36"}
es6.map {"electron":"0.36"}
es6.set {"electron":"0.36"}
es6.weak-map {"electron":"0.36"}
es6.weak-set {"electron":"0.36"}
es6.reflect.apply {"electron":"0.36"}
es6.reflect.construct {"electron":"0.36"}
es6.reflect.define-property {"electron":"0.36"}
es6.reflect.delete-property {"electron":"0.36"}
es6.reflect.get {"electron":"0.36"}
es6.reflect.get-own-property-descriptor {"electron":"0.36"}
es6.reflect.get-prototype-of {"electron":"0.36"}
es6.reflect.has {"electron":"0.36"}
es6.reflect.is-extensible {"electron":"0.36"}
es6.reflect.own-keys {"electron":"0.36"}
es6.reflect.prevent-extensions {"electron":"0.36"}
es6.reflect.set {"electron":"0.36"}
es6.reflect.set-prototype-of {"electron":"0.36"}
es6.promise {"electron":"0.36"}
es6.symbol {"electron":"0.36"}
es6.function.name {"electron":"0.36"}
es6.regexp.flags {"electron":"0.36"}
es6.regexp.match {"electron":"0.36"}
es6.regexp.replace {"electron":"0.36"}
es6.regexp.split {"electron":"0.36"}
es6.regexp.search {"electron":"0.36"}
es6.array.from {"electron":"0.36"}
es7.object.values {"electron":"0.36"}
es7.object.entries {"electron":"0.36"}
es7.object.get-own-property-descriptors {"electron":"0.36"}
es7.string.pad-start {"electron":"0.36"}
es7.string.pad-end {"electron":"0.36"}
web.timers {"electron":"0.36"}
web.immediate {"electron":"0.36"}
web.dom.iterable {"electron":"0.36"}
src/in.js -> lib/in.js

View File

@@ -4,7 +4,8 @@
"debug": true,
"exclude": [
"transform-async-to-generator",
"transform-regenerator", "transform-es2015-parameters"
"transform-regenerator",
"transform-es2015-parameters"
],
"targets": {
"firefox": 52,

View File

@@ -1,17 +1,24 @@
Warning, the following targets are using a decimal version:
node: 7.4
We recommend using a string for minor/patch versions to avoid numbers like 6.10
getting parsed as 6.1, which can lead to unexpected behavior.
babel-preset-env: `DEBUG` option
Using targets:
{
"firefox": 52,
"node": 7.4
"firefox": "52",
"node": "7.4"
}
Modules transform: commonjs
Using plugins:
transform-es2015-destructuring {"firefox":52}
transform-es2015-for-of {"firefox":52}
transform-es2015-function-name {"firefox":52}
transform-es2015-literals {"firefox":52}
syntax-trailing-function-commas {"node":7.4}
transform-es2015-destructuring {"firefox":"52"}
transform-es2015-for-of {"firefox":"52"}
transform-es2015-function-name {"firefox":"52"}
transform-es2015-literals {"firefox":"52"}
syntax-trailing-function-commas {"node":"7.4"}
src/in.js -> lib/in.js

View File

@@ -2,125 +2,125 @@ babel-preset-env: `DEBUG` option
Using targets:
{
"chrome": 54,
"edge": 13,
"firefox": 49,
"ie": 10,
"ios": 9,
"safari": 7
"chrome": "54",
"edge": "13",
"firefox": "49",
"ie": "10",
"ios": "9",
"safari": "7"
}
Modules transform: commonjs
Using plugins:
transform-es2015-arrow-functions {"ie":10,"ios":9,"safari":7}
transform-es2015-block-scoped-functions {"ie":10,"ios":9,"safari":7}
transform-es2015-block-scoping {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
transform-es2015-classes {"ie":10,"ios":9,"safari":7}
transform-es2015-computed-properties {"ie":10,"safari":7}
check-es2015-constants {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
transform-es2015-destructuring {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
transform-es2015-duplicate-keys {"ie":10,"safari":7}
transform-es2015-for-of {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
transform-es2015-function-name {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
transform-es2015-literals {"firefox":49,"ie":10,"safari":7}
transform-es2015-object-super {"ie":10,"ios":9,"safari":7}
transform-es2015-parameters {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
transform-es2015-shorthand-properties {"ie":10,"safari":7}
transform-es2015-spread {"ie":10,"ios":9,"safari":7}
transform-es2015-sticky-regex {"ie":10,"ios":9,"safari":7}
transform-es2015-template-literals {"ie":10,"safari":7}
transform-es2015-typeof-symbol {"ie":10,"safari":7}
transform-es2015-unicode-regex {"ie":10,"ios":9,"safari":7}
transform-regenerator {"firefox":49,"ie":10,"ios":9,"safari":7}
transform-exponentiation-operator {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
transform-async-to-generator {"chrome":54,"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
syntax-trailing-function-commas {"chrome":54,"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
transform-es2015-arrow-functions {"ie":"10","ios":"9","safari":"7"}
transform-es2015-block-scoped-functions {"ie":"10","ios":"9","safari":"7"}
transform-es2015-block-scoping {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
transform-es2015-classes {"ie":"10","ios":"9","safari":"7"}
transform-es2015-computed-properties {"ie":"10","safari":"7"}
check-es2015-constants {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
transform-es2015-destructuring {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
transform-es2015-duplicate-keys {"ie":"10","safari":"7"}
transform-es2015-for-of {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
transform-es2015-function-name {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
transform-es2015-literals {"firefox":"49","ie":"10","safari":"7"}
transform-es2015-object-super {"ie":"10","ios":"9","safari":"7"}
transform-es2015-parameters {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
transform-es2015-shorthand-properties {"ie":"10","safari":"7"}
transform-es2015-spread {"ie":"10","ios":"9","safari":"7"}
transform-es2015-sticky-regex {"ie":"10","ios":"9","safari":"7"}
transform-es2015-template-literals {"ie":"10","safari":"7"}
transform-es2015-typeof-symbol {"ie":"10","safari":"7"}
transform-es2015-unicode-regex {"ie":"10","ios":"9","safari":"7"}
transform-regenerator {"firefox":"49","ie":"10","ios":"9","safari":"7"}
transform-exponentiation-operator {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
transform-async-to-generator {"chrome":"54","edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
syntax-trailing-function-commas {"chrome":"54","edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
Using polyfills:
es6.typed.array-buffer {"ie":10,"ios":9,"safari":7}
es6.typed.int8-array {"ie":10,"ios":9,"safari":7}
es6.typed.uint8-array {"ie":10,"ios":9,"safari":7}
es6.typed.uint8-clamped-array {"ie":10,"ios":9,"safari":7}
es6.typed.int16-array {"ie":10,"ios":9,"safari":7}
es6.typed.uint16-array {"ie":10,"ios":9,"safari":7}
es6.typed.int32-array {"ie":10,"ios":9,"safari":7}
es6.typed.uint32-array {"ie":10,"ios":9,"safari":7}
es6.typed.float32-array {"ie":10,"ios":9,"safari":7}
es6.typed.float64-array {"ie":10,"ios":9,"safari":7}
es6.map {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
es6.set {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
es6.weak-map {"edge":13,"firefox":49,"ie":10,"safari":7}
es6.weak-set {"edge":13,"firefox":49,"ie":10,"safari":7}
es6.reflect.apply {"ie":10,"ios":9,"safari":7}
es6.reflect.construct {"ie":10,"ios":9,"safari":7}
es6.reflect.define-property {"ie":10,"ios":9,"safari":7}
es6.reflect.delete-property {"ie":10,"ios":9,"safari":7}
es6.reflect.get {"ie":10,"ios":9,"safari":7}
es6.reflect.get-own-property-descriptor {"ie":10,"ios":9,"safari":7}
es6.reflect.get-prototype-of {"ie":10,"ios":9,"safari":7}
es6.reflect.has {"ie":10,"ios":9,"safari":7}
es6.reflect.is-extensible {"ie":10,"ios":9,"safari":7}
es6.reflect.own-keys {"ie":10,"ios":9,"safari":7}
es6.reflect.prevent-extensions {"ie":10,"ios":9,"safari":7}
es6.reflect.set {"ie":10,"ios":9,"safari":7}
es6.reflect.set-prototype-of {"ie":10,"ios":9,"safari":7}
es6.promise {"ie":10,"ios":9,"safari":7}
es6.symbol {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
es6.object.assign {"ie":10,"safari":7}
es6.object.is {"ie":10,"safari":7}
es6.object.set-prototype-of {"ie":10,"safari":7}
es6.function.name {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
es6.string.raw {"ie":10,"safari":7}
es6.string.from-code-point {"ie":10,"safari":7}
es6.string.code-point-at {"ie":10,"safari":7}
es6.string.repeat {"ie":10,"safari":7}
es6.string.starts-with {"ie":10,"safari":7}
es6.string.ends-with {"ie":10,"safari":7}
es6.string.includes {"ie":10,"safari":7}
es6.regexp.flags {"edge":13,"ie":10,"safari":7}
es6.regexp.match {"edge":13,"ie":10,"ios":9,"safari":7}
es6.regexp.replace {"edge":13,"ie":10,"ios":9,"safari":7}
es6.regexp.split {"edge":13,"ie":10,"ios":9,"safari":7}
es6.regexp.search {"edge":13,"ie":10,"ios":9,"safari":7}
es6.array.from {"edge":13,"ie":10,"ios":9,"safari":7}
es6.array.of {"ie":10,"safari":7}
es6.array.copy-within {"ie":10,"safari":7}
es6.array.find {"ie":10,"safari":7}
es6.array.find-index {"ie":10,"safari":7}
es6.array.fill {"ie":10,"safari":7}
es6.array.iterator {"ie":10,"safari":7}
es6.number.is-finite {"ie":10,"safari":7}
es6.number.is-integer {"ie":10,"safari":7}
es6.number.is-safe-integer {"ie":10,"safari":7}
es6.number.is-nan {"ie":10,"safari":7}
es6.number.epsilon {"ie":10,"safari":7}
es6.number.min-safe-integer {"ie":10,"safari":7}
es6.number.max-safe-integer {"ie":10,"safari":7}
es6.math.acosh {"ie":10,"safari":7}
es6.math.asinh {"ie":10,"safari":7}
es6.math.atanh {"ie":10,"safari":7}
es6.math.cbrt {"ie":10,"safari":7}
es6.math.clz32 {"ie":10,"safari":7}
es6.math.cosh {"ie":10,"safari":7}
es6.math.expm1 {"ie":10,"safari":7}
es6.math.fround {"ie":10,"safari":7}
es6.math.hypot {"ie":10,"safari":7}
es6.math.imul {"ie":10}
es6.math.log1p {"ie":10,"safari":7}
es6.math.log10 {"ie":10,"safari":7}
es6.math.log2 {"ie":10,"safari":7}
es6.math.sign {"ie":10,"safari":7}
es6.math.sinh {"ie":10,"safari":7}
es6.math.tanh {"ie":10,"safari":7}
es6.math.trunc {"ie":10,"safari":7}
es7.array.includes {"edge":13,"ie":10,"ios":9,"safari":7}
es7.object.values {"edge":13,"ie":10,"ios":9,"safari":7}
es7.object.entries {"edge":13,"ie":10,"ios":9,"safari":7}
es7.object.get-own-property-descriptors {"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
es7.string.pad-start {"chrome":54,"edge":13,"ie":10,"ios":9,"safari":7}
es7.string.pad-end {"chrome":54,"edge":13,"ie":10,"ios":9,"safari":7}
web.timers {"chrome":54,"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
web.immediate {"chrome":54,"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
web.dom.iterable {"chrome":54,"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7}
es6.typed.array-buffer {"ie":"10","ios":"9","safari":"7"}
es6.typed.int8-array {"ie":"10","ios":"9","safari":"7"}
es6.typed.uint8-array {"ie":"10","ios":"9","safari":"7"}
es6.typed.uint8-clamped-array {"ie":"10","ios":"9","safari":"7"}
es6.typed.int16-array {"ie":"10","ios":"9","safari":"7"}
es6.typed.uint16-array {"ie":"10","ios":"9","safari":"7"}
es6.typed.int32-array {"ie":"10","ios":"9","safari":"7"}
es6.typed.uint32-array {"ie":"10","ios":"9","safari":"7"}
es6.typed.float32-array {"ie":"10","ios":"9","safari":"7"}
es6.typed.float64-array {"ie":"10","ios":"9","safari":"7"}
es6.map {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
es6.set {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
es6.weak-map {"edge":"13","firefox":"49","ie":"10","safari":"7"}
es6.weak-set {"edge":"13","firefox":"49","ie":"10","safari":"7"}
es6.reflect.apply {"ie":"10","ios":"9","safari":"7"}
es6.reflect.construct {"ie":"10","ios":"9","safari":"7"}
es6.reflect.define-property {"ie":"10","ios":"9","safari":"7"}
es6.reflect.delete-property {"ie":"10","ios":"9","safari":"7"}
es6.reflect.get {"ie":"10","ios":"9","safari":"7"}
es6.reflect.get-own-property-descriptor {"ie":"10","ios":"9","safari":"7"}
es6.reflect.get-prototype-of {"ie":"10","ios":"9","safari":"7"}
es6.reflect.has {"ie":"10","ios":"9","safari":"7"}
es6.reflect.is-extensible {"ie":"10","ios":"9","safari":"7"}
es6.reflect.own-keys {"ie":"10","ios":"9","safari":"7"}
es6.reflect.prevent-extensions {"ie":"10","ios":"9","safari":"7"}
es6.reflect.set {"ie":"10","ios":"9","safari":"7"}
es6.reflect.set-prototype-of {"ie":"10","ios":"9","safari":"7"}
es6.promise {"ie":"10","ios":"9","safari":"7"}
es6.symbol {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
es6.object.assign {"ie":"10","safari":"7"}
es6.object.is {"ie":"10","safari":"7"}
es6.object.set-prototype-of {"ie":"10","safari":"7"}
es6.function.name {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
es6.string.raw {"ie":"10","safari":"7"}
es6.string.from-code-point {"ie":"10","safari":"7"}
es6.string.code-point-at {"ie":"10","safari":"7"}
es6.string.repeat {"ie":"10","safari":"7"}
es6.string.starts-with {"ie":"10","safari":"7"}
es6.string.ends-with {"ie":"10","safari":"7"}
es6.string.includes {"ie":"10","safari":"7"}
es6.regexp.flags {"edge":"13","ie":"10","safari":"7"}
es6.regexp.match {"edge":"13","ie":"10","ios":"9","safari":"7"}
es6.regexp.replace {"edge":"13","ie":"10","ios":"9","safari":"7"}
es6.regexp.split {"edge":"13","ie":"10","ios":"9","safari":"7"}
es6.regexp.search {"edge":"13","ie":"10","ios":"9","safari":"7"}
es6.array.from {"edge":"13","ie":"10","ios":"9","safari":"7"}
es6.array.of {"ie":"10","safari":"7"}
es6.array.copy-within {"ie":"10","safari":"7"}
es6.array.find {"ie":"10","safari":"7"}
es6.array.find-index {"ie":"10","safari":"7"}
es6.array.fill {"ie":"10","safari":"7"}
es6.array.iterator {"ie":"10","safari":"7"}
es6.number.is-finite {"ie":"10","safari":"7"}
es6.number.is-integer {"ie":"10","safari":"7"}
es6.number.is-safe-integer {"ie":"10","safari":"7"}
es6.number.is-nan {"ie":"10","safari":"7"}
es6.number.epsilon {"ie":"10","safari":"7"}
es6.number.min-safe-integer {"ie":"10","safari":"7"}
es6.number.max-safe-integer {"ie":"10","safari":"7"}
es6.math.acosh {"ie":"10","safari":"7"}
es6.math.asinh {"ie":"10","safari":"7"}
es6.math.atanh {"ie":"10","safari":"7"}
es6.math.cbrt {"ie":"10","safari":"7"}
es6.math.clz32 {"ie":"10","safari":"7"}
es6.math.cosh {"ie":"10","safari":"7"}
es6.math.expm1 {"ie":"10","safari":"7"}
es6.math.fround {"ie":"10","safari":"7"}
es6.math.hypot {"ie":"10","safari":"7"}
es6.math.imul {"ie":"10"}
es6.math.log1p {"ie":"10","safari":"7"}
es6.math.log10 {"ie":"10","safari":"7"}
es6.math.log2 {"ie":"10","safari":"7"}
es6.math.sign {"ie":"10","safari":"7"}
es6.math.sinh {"ie":"10","safari":"7"}
es6.math.tanh {"ie":"10","safari":"7"}
es6.math.trunc {"ie":"10","safari":"7"}
es7.array.includes {"edge":"13","ie":"10","ios":"9","safari":"7"}
es7.object.values {"edge":"13","ie":"10","ios":"9","safari":"7"}
es7.object.entries {"edge":"13","ie":"10","ios":"9","safari":"7"}
es7.object.get-own-property-descriptors {"edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
es7.string.pad-start {"chrome":"54","edge":"13","ie":"10","ios":"9","safari":"7"}
es7.string.pad-end {"chrome":"54","edge":"13","ie":"10","ios":"9","safari":"7"}
web.timers {"chrome":"54","edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
web.immediate {"chrome":"54","edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
web.dom.iterable {"chrome":"54","edge":"13","firefox":"49","ie":"10","ios":"9","safari":"7"}
src/in.js -> lib/in.js

View File

@@ -0,0 +1,13 @@
{
"presets": [
["../../lib", {
"debug": true,
"targets": {
"chrome": 54,
"electron": 0.36,
"node": 6.10,
"ie": 10
}
}]
]
}

View File

@@ -0,0 +1,133 @@
Warning, the following targets are using a decimal version:
electron: 0.36
node: 6.1
We recommend using a string for minor/patch versions to avoid numbers like 6.10
getting parsed as 6.1, which can lead to unexpected behavior.
babel-preset-env: `DEBUG` option
Using targets:
{
"chrome": "54",
"electron": "0.36",
"node": "6.1",
"ie": "10"
}
Modules transform: commonjs
Using plugins:
transform-es2015-arrow-functions {"ie":"10"}
transform-es2015-block-scoped-functions {"ie":"10"}
transform-es2015-block-scoping {"electron":"0.36","ie":"10"}
transform-es2015-classes {"ie":"10"}
transform-es2015-computed-properties {"ie":"10"}
check-es2015-constants {"electron":"0.36","ie":"10"}
transform-es2015-destructuring {"electron":"0.36","node":"6.1","ie":"10"}
transform-es2015-duplicate-keys {"ie":"10"}
transform-es2015-for-of {"electron":"0.36","node":"6.1","ie":"10"}
transform-es2015-function-name {"electron":"0.36","node":"6.1","ie":"10"}
transform-es2015-literals {"ie":"10"}
transform-es2015-object-super {"ie":"10"}
transform-es2015-parameters {"electron":"0.36","ie":"10"}
transform-es2015-shorthand-properties {"ie":"10"}
transform-es2015-spread {"ie":"10"}
transform-es2015-sticky-regex {"electron":"0.36","ie":"10"}
transform-es2015-template-literals {"ie":"10"}
transform-es2015-typeof-symbol {"ie":"10"}
transform-es2015-unicode-regex {"electron":"0.36","ie":"10"}
transform-regenerator {"electron":"0.36","ie":"10"}
transform-exponentiation-operator {"electron":"0.36","node":"6.1","ie":"10"}
transform-async-to-generator {"chrome":"54","electron":"0.36","node":"6.1","ie":"10"}
syntax-trailing-function-commas {"chrome":"54","electron":"0.36","node":"6.1","ie":"10"}
Using polyfills:
es6.typed.array-buffer {"electron":"0.36","node":"6.1","ie":"10"}
es6.typed.data-view {"electron":"0.36"}
es6.typed.int8-array {"electron":"0.36","node":"6.1","ie":"10"}
es6.typed.uint8-array {"electron":"0.36","node":"6.1","ie":"10"}
es6.typed.uint8-clamped-array {"electron":"0.36","node":"6.1","ie":"10"}
es6.typed.int16-array {"electron":"0.36","node":"6.1","ie":"10"}
es6.typed.uint16-array {"electron":"0.36","node":"6.1","ie":"10"}
es6.typed.int32-array {"electron":"0.36","node":"6.1","ie":"10"}
es6.typed.uint32-array {"electron":"0.36","node":"6.1","ie":"10"}
es6.typed.float32-array {"electron":"0.36","node":"6.1","ie":"10"}
es6.typed.float64-array {"electron":"0.36","node":"6.1","ie":"10"}
es6.map {"electron":"0.36","node":"6.1","ie":"10"}
es6.set {"electron":"0.36","node":"6.1","ie":"10"}
es6.weak-map {"electron":"0.36","node":"6.1","ie":"10"}
es6.weak-set {"electron":"0.36","node":"6.1","ie":"10"}
es6.reflect.apply {"electron":"0.36","ie":"10"}
es6.reflect.construct {"electron":"0.36","ie":"10"}
es6.reflect.define-property {"electron":"0.36","ie":"10"}
es6.reflect.delete-property {"electron":"0.36","ie":"10"}
es6.reflect.get {"electron":"0.36","ie":"10"}
es6.reflect.get-own-property-descriptor {"electron":"0.36","ie":"10"}
es6.reflect.get-prototype-of {"electron":"0.36","ie":"10"}
es6.reflect.has {"electron":"0.36","ie":"10"}
es6.reflect.is-extensible {"electron":"0.36","ie":"10"}
es6.reflect.own-keys {"electron":"0.36","ie":"10"}
es6.reflect.prevent-extensions {"electron":"0.36","ie":"10"}
es6.reflect.set {"electron":"0.36","ie":"10"}
es6.reflect.set-prototype-of {"electron":"0.36","ie":"10"}
es6.promise {"electron":"0.36","node":"6.1","ie":"10"}
es6.symbol {"electron":"0.36","node":"6.1","ie":"10"}
es6.object.assign {"ie":"10"}
es6.object.is {"ie":"10"}
es6.object.set-prototype-of {"ie":"10"}
es6.function.name {"electron":"0.36","node":"6.1","ie":"10"}
es6.string.raw {"ie":"10"}
es6.string.from-code-point {"ie":"10"}
es6.string.code-point-at {"ie":"10"}
es6.string.repeat {"ie":"10"}
es6.string.starts-with {"ie":"10"}
es6.string.ends-with {"ie":"10"}
es6.string.includes {"ie":"10"}
es6.regexp.flags {"electron":"0.36","ie":"10"}
es6.regexp.match {"electron":"0.36","ie":"10"}
es6.regexp.replace {"electron":"0.36","ie":"10"}
es6.regexp.split {"electron":"0.36","ie":"10"}
es6.regexp.search {"electron":"0.36","ie":"10"}
es6.array.from {"electron":"0.36","node":"6.1","ie":"10"}
es6.array.of {"ie":"10"}
es6.array.copy-within {"ie":"10"}
es6.array.find {"ie":"10"}
es6.array.find-index {"ie":"10"}
es6.array.fill {"ie":"10"}
es6.array.iterator {"ie":"10"}
es6.number.is-finite {"ie":"10"}
es6.number.is-integer {"ie":"10"}
es6.number.is-safe-integer {"ie":"10"}
es6.number.is-nan {"ie":"10"}
es6.number.epsilon {"ie":"10"}
es6.number.min-safe-integer {"ie":"10"}
es6.number.max-safe-integer {"ie":"10"}
es6.math.acosh {"ie":"10"}
es6.math.asinh {"ie":"10"}
es6.math.atanh {"ie":"10"}
es6.math.cbrt {"ie":"10"}
es6.math.clz32 {"ie":"10"}
es6.math.cosh {"ie":"10"}
es6.math.expm1 {"ie":"10"}
es6.math.fround {"ie":"10"}
es6.math.hypot {"ie":"10"}
es6.math.imul {"ie":"10"}
es6.math.log1p {"ie":"10"}
es6.math.log10 {"ie":"10"}
es6.math.log2 {"ie":"10"}
es6.math.sign {"ie":"10"}
es6.math.sinh {"ie":"10"}
es6.math.tanh {"ie":"10"}
es6.math.trunc {"ie":"10"}
es7.array.includes {"ie":"10"}
es7.object.values {"electron":"0.36","node":"6.1","ie":"10"}
es7.object.entries {"electron":"0.36","node":"6.1","ie":"10"}
es7.object.get-own-property-descriptors {"electron":"0.36","node":"6.1","ie":"10"}
es7.string.pad-start {"chrome":"54","electron":"0.36","node":"6.1","ie":"10"}
es7.string.pad-end {"chrome":"54","electron":"0.36","node":"6.1","ie":"10"}
web.timers {"chrome":"54","electron":"0.36","node":"6.1","ie":"10"}
web.immediate {"chrome":"54","electron":"0.36","node":"6.1","ie":"10"}
web.dom.iterable {"chrome":"54","electron":"0.36","node":"6.1","ie":"10"}
src/in.js -> lib/in.js

View File

@@ -0,0 +1,12 @@
{
"presets": [
["../../lib", {
"debug": true,
"targets": {
"chrome": "54",
"node": "6.10",
"ie": "10"
}
}]
]
}

View File

@@ -0,0 +1,123 @@
babel-preset-env: `DEBUG` option
Using targets:
{
"chrome": "54",
"node": "6.10",
"ie": "10"
}
Modules transform: commonjs
Using plugins:
transform-es2015-arrow-functions {"ie":"10"}
transform-es2015-block-scoped-functions {"ie":"10"}
transform-es2015-block-scoping {"ie":"10"}
transform-es2015-classes {"ie":"10"}
transform-es2015-computed-properties {"ie":"10"}
check-es2015-constants {"ie":"10"}
transform-es2015-destructuring {"ie":"10"}
transform-es2015-duplicate-keys {"ie":"10"}
transform-es2015-for-of {"ie":"10"}
transform-es2015-function-name {"ie":"10"}
transform-es2015-literals {"ie":"10"}
transform-es2015-object-super {"ie":"10"}
transform-es2015-parameters {"ie":"10"}
transform-es2015-shorthand-properties {"ie":"10"}
transform-es2015-spread {"ie":"10"}
transform-es2015-sticky-regex {"ie":"10"}
transform-es2015-template-literals {"ie":"10"}
transform-es2015-typeof-symbol {"ie":"10"}
transform-es2015-unicode-regex {"ie":"10"}
transform-regenerator {"ie":"10"}
transform-exponentiation-operator {"node":"6.10","ie":"10"}
transform-async-to-generator {"chrome":"54","node":"6.10","ie":"10"}
syntax-trailing-function-commas {"chrome":"54","node":"6.10","ie":"10"}
Using polyfills:
es6.typed.array-buffer {"ie":"10"}
es6.typed.int8-array {"ie":"10"}
es6.typed.uint8-array {"ie":"10"}
es6.typed.uint8-clamped-array {"ie":"10"}
es6.typed.int16-array {"ie":"10"}
es6.typed.uint16-array {"ie":"10"}
es6.typed.int32-array {"ie":"10"}
es6.typed.uint32-array {"ie":"10"}
es6.typed.float32-array {"ie":"10"}
es6.typed.float64-array {"ie":"10"}
es6.map {"ie":"10"}
es6.set {"ie":"10"}
es6.weak-map {"ie":"10"}
es6.weak-set {"ie":"10"}
es6.reflect.apply {"ie":"10"}
es6.reflect.construct {"ie":"10"}
es6.reflect.define-property {"ie":"10"}
es6.reflect.delete-property {"ie":"10"}
es6.reflect.get {"ie":"10"}
es6.reflect.get-own-property-descriptor {"ie":"10"}
es6.reflect.get-prototype-of {"ie":"10"}
es6.reflect.has {"ie":"10"}
es6.reflect.is-extensible {"ie":"10"}
es6.reflect.own-keys {"ie":"10"}
es6.reflect.prevent-extensions {"ie":"10"}
es6.reflect.set {"ie":"10"}
es6.reflect.set-prototype-of {"ie":"10"}
es6.promise {"ie":"10"}
es6.symbol {"ie":"10"}
es6.object.assign {"ie":"10"}
es6.object.is {"ie":"10"}
es6.object.set-prototype-of {"ie":"10"}
es6.function.name {"ie":"10"}
es6.string.raw {"ie":"10"}
es6.string.from-code-point {"ie":"10"}
es6.string.code-point-at {"ie":"10"}
es6.string.repeat {"ie":"10"}
es6.string.starts-with {"ie":"10"}
es6.string.ends-with {"ie":"10"}
es6.string.includes {"ie":"10"}
es6.regexp.flags {"ie":"10"}
es6.regexp.match {"ie":"10"}
es6.regexp.replace {"ie":"10"}
es6.regexp.split {"ie":"10"}
es6.regexp.search {"ie":"10"}
es6.array.from {"ie":"10"}
es6.array.of {"ie":"10"}
es6.array.copy-within {"ie":"10"}
es6.array.find {"ie":"10"}
es6.array.find-index {"ie":"10"}
es6.array.fill {"ie":"10"}
es6.array.iterator {"ie":"10"}
es6.number.is-finite {"ie":"10"}
es6.number.is-integer {"ie":"10"}
es6.number.is-safe-integer {"ie":"10"}
es6.number.is-nan {"ie":"10"}
es6.number.epsilon {"ie":"10"}
es6.number.min-safe-integer {"ie":"10"}
es6.number.max-safe-integer {"ie":"10"}
es6.math.acosh {"ie":"10"}
es6.math.asinh {"ie":"10"}
es6.math.atanh {"ie":"10"}
es6.math.cbrt {"ie":"10"}
es6.math.clz32 {"ie":"10"}
es6.math.cosh {"ie":"10"}
es6.math.expm1 {"ie":"10"}
es6.math.fround {"ie":"10"}
es6.math.hypot {"ie":"10"}
es6.math.imul {"ie":"10"}
es6.math.log1p {"ie":"10"}
es6.math.log10 {"ie":"10"}
es6.math.log2 {"ie":"10"}
es6.math.sign {"ie":"10"}
es6.math.sinh {"ie":"10"}
es6.math.tanh {"ie":"10"}
es6.math.trunc {"ie":"10"}
es7.array.includes {"ie":"10"}
es7.object.values {"node":"6.10","ie":"10"}
es7.object.entries {"node":"6.10","ie":"10"}
es7.object.get-own-property-descriptors {"node":"6.10","ie":"10"}
es7.string.pad-start {"chrome":"54","node":"6.10","ie":"10"}
es7.string.pad-end {"chrome":"54","node":"6.10","ie":"10"}
web.timers {"chrome":"54","node":"6.10","ie":"10"}
web.immediate {"chrome":"54","node":"6.10","ie":"10"}
web.dom.iterable {"chrome":"54","node":"6.10","ie":"10"}
src/in.js -> lib/in.js

View File

@@ -2,7 +2,7 @@
"presets": [
["../../../../lib", {
"targets": {
"electron": 1.4
"electron": "1.4"
},
"modules": false,
"useBuiltIns": "entry"

View File

@@ -2,7 +2,7 @@
"presets": [
["../../../../lib", {
"targets": {
"chrome": 55
"chrome": "55"
},
"modules": false,
"useBuiltIns": true

View File

@@ -2,8 +2,8 @@
"presets": [
["../../../../lib", {
"targets": {
"chrome": 55,
"node": 7.6,
"chrome": "55",
"node": "7.6",
"uglify": true
},
"modules": false,

View File

@@ -2,7 +2,7 @@
"presets": [
["../../../../lib", {
"targets": {
"node": 7.6,
"node": "7.6",
"uglify": true
},
"modules": false,

View File

@@ -2,7 +2,7 @@
"presets": [
["../../../../lib", {
"targets": {
"chrome": 55
"chrome": "55"
},
"modules": false,
"useBuiltIns": "entry"

View File

@@ -4,63 +4,11 @@ const babelPresetEnv = require("../lib/index.js");
const assert = require("assert");
describe("babel-preset-env", () => {
describe("getTargets", () => {
it("should return the current node version with option 'current'", () => {
assert.deepEqual(
babelPresetEnv.getTargets({
node: true,
}),
{
node: parseFloat(process.versions.node),
},
);
assert.deepEqual(
babelPresetEnv.getTargets({
node: "current",
}),
{
node: parseFloat(process.versions.node),
},
);
});
});
describe("getTargets + uglify", () => {
it("should work with `true`", function() {
assert.deepEqual(
babelPresetEnv.getTargets({
uglify: true,
}),
{
uglify: true,
},
);
});
it("should ignore `false`", function() {
assert.deepEqual(
babelPresetEnv.getTargets({
uglify: false,
}),
{},
);
});
it("should ignore `null`", function() {
assert.deepEqual(
babelPresetEnv.getTargets({
uglify: null,
}),
{},
);
});
});
describe("isPluginRequired", () => {
const MAX_VERSION = `${Number.MAX_SAFE_INTEGER}.0.0`;
it("returns true if no targets are specified", () => {
const isRequired = babelPresetEnv.isPluginRequired({}, {});
assert(isRequired);
assert.strictEqual(babelPresetEnv.isPluginRequired({}, {}), true);
});
it("returns true if plugin feature is not implemented in one or more targets", () => {
@@ -72,15 +20,21 @@ describe("babel-preset-env", () => {
};
targets = {
chrome: Number.MAX_SAFE_INTEGER,
firefox: Number.MAX_SAFE_INTEGER,
chrome: MAX_VERSION,
firefox: MAX_VERSION,
};
assert(babelPresetEnv.isPluginRequired(targets, plugin) === false);
assert.strictEqual(
babelPresetEnv.isPluginRequired(targets, plugin),
false,
);
targets = {
edge: 12,
edge: "12",
};
assert(babelPresetEnv.isPluginRequired(plugin, plugin) === true);
assert.strictEqual(
babelPresetEnv.isPluginRequired(targets, plugin),
true,
);
});
it("returns false if plugin feature is implemented by lower than target", () => {
@@ -88,9 +42,13 @@ describe("babel-preset-env", () => {
chrome: 49,
};
const targets = {
chrome: Number.MAX_SAFE_INTEGER,
chrome: MAX_VERSION,
};
assert(babelPresetEnv.isPluginRequired(targets, plugin) === false);
assert.strictEqual(
babelPresetEnv.isPluginRequired(targets, plugin),
false,
);
});
it("returns false if plugin feature is implemented is equal to target", () => {
@@ -98,9 +56,12 @@ describe("babel-preset-env", () => {
chrome: 49,
};
const targets = {
chrome: 49,
chrome: "49.0.0",
};
assert(babelPresetEnv.isPluginRequired(targets, plugin) === false);
assert.strictEqual(
babelPresetEnv.isPluginRequired(targets, plugin),
false,
);
});
it("returns true if plugin feature is implemented is greater than target", () => {
@@ -108,41 +69,12 @@ describe("babel-preset-env", () => {
chrome: 50,
};
const targets = {
chrome: 49,
chrome: "49.0.0",
};
assert(babelPresetEnv.isPluginRequired(targets, plugin) === true);
});
it("returns false if plugin feature is implemented by lower than target defined in browsers query", () => {
const plugin = {
chrome: 49,
};
const targets = {
browsers: "chrome > 50",
};
assert(babelPresetEnv.isPluginRequired(targets, plugin) === false);
});
it("returns true if plugin feature is implemented is greater than target defined in browsers query", () => {
const plugin = {
chrome: 52,
};
const targets = {
browsers: "chrome > 50",
};
assert(babelPresetEnv.isPluginRequired(targets, plugin) === true);
});
it("returns true if target's root items overrides versions defined in browsers query", () => {
const plugin = {
chrome: 45,
};
const targets = {
browsers: "last 2 Chrome versions",
chrome: 44,
};
assert(babelPresetEnv.isPluginRequired(targets, plugin) === true);
assert.strictEqual(
babelPresetEnv.isPluginRequired(targets, plugin),
true,
);
});
it("returns true if uglify is specified as a target", () => {
@@ -150,46 +82,37 @@ describe("babel-preset-env", () => {
chrome: 50,
};
const targets = {
chrome: 55,
chrome: "55.0.0",
uglify: true,
};
assert(babelPresetEnv.isPluginRequired(targets, plugin) === true);
});
it("doesn't throw when specifying a decimal for node", () => {
const plugin = {
node: 6,
};
const targets = {
node: 6.5,
};
assert.doesNotThrow(
() => {
babelPresetEnv.isPluginRequired(targets, plugin);
},
Error,
assert.strictEqual(
babelPresetEnv.isPluginRequired(targets, plugin),
true,
);
});
it("will throw if target version is not a number", () => {
it("returns when target is a decimal", () => {
const plugin = {
node: 6,
node: 6.9,
};
const targets = {
node: "6.5",
node: "6.10.0",
};
assert.throws(
() => {
babelPresetEnv.isPluginRequired(targets, plugin);
},
Error,
assert.strictEqual(
babelPresetEnv.isPluginRequired(targets, plugin),
false,
);
});
it("throws an error if target version is invalid", () => {
const plugin = {
chrome: 50,
};
const targets = {
chrome: 55,
};
assert.throws(() => babelPresetEnv.isPluginRequired(targets, plugin));
});
});
describe("transformIncludesAndExcludes", () => {

View File

@@ -0,0 +1,117 @@
import assert from "assert";
import getTargets from "../src/targets-parser";
describe("getTargets", () => {
it("parses", () => {
assert.deepEqual(
getTargets({
chrome: 49,
firefox: "55",
ie: "9",
node: "6.10",
electron: "1.6",
}),
{
chrome: "49.0.0",
electron: "1.6.0",
firefox: "55.0.0",
ie: "9.0.0",
node: "6.10.0",
},
);
});
describe("browser", () => {
it("merges browser key targets", () => {
assert.deepEqual(
getTargets({
browsers: "chrome 56, ie 11, firefox 51, safari 9",
chrome: "49",
firefox: "55",
ie: "9",
}),
{
chrome: "49.0.0",
firefox: "51.0.0",
ie: "9.0.0",
safari: "9.0.0",
},
);
});
it("ignores invalid", () => {
assert.deepEqual(
getTargets({
browsers: 59,
chrome: "49",
firefox: "55",
ie: "11",
}),
{
chrome: "49.0.0",
firefox: "55.0.0",
ie: "11.0.0",
},
);
});
});
describe("node", () => {
it("should return the current node version with option 'current'", () => {
assert.deepEqual(
getTargets({
node: true,
}),
{
node: process.versions.node,
},
);
});
});
describe("electron", () => {
it("should be its own target", () => {
assert.deepEqual(
getTargets({
chrome: "46",
electron: "0.34",
}),
{
chrome: "46.0.0",
electron: "0.34.0",
},
);
});
});
describe("uglify", () => {
it("should work with `true`", function() {
assert.deepEqual(
getTargets({
uglify: true,
}),
{
uglify: true,
},
);
});
it("should ignore `false`", function() {
assert.deepEqual(
getTargets({
uglify: false,
}),
{},
);
});
it("should ignore `null`", function() {
assert.deepEqual(
getTargets({
uglify: null,
}),
{},
);
});
});
});

View File

@@ -0,0 +1,61 @@
"use strict";
const utils = require("../lib/utils");
const assert = require("assert");
const {
prettifyTargets,
prettifyVersion,
semverify,
} = utils;
describe("utils", () => {
describe("semverify", () => {
it("returns", () => {
assert.strictEqual(semverify("1"), "1.0.0");
assert.strictEqual(semverify("1.0"), "1.0.0");
assert.strictEqual(semverify("1.0.0"), "1.0.0");
assert.strictEqual(semverify(1), "1.0.0");
assert.strictEqual(semverify(1.2), "1.2.0");
});
});
describe("prettifyVersion", () => {
it("returns", () => {
assert.strictEqual(prettifyVersion(true), true);
assert.strictEqual(prettifyVersion("0.16.0"), "0.16");
assert.strictEqual(prettifyVersion("1.0.0"), "1");
assert.strictEqual(prettifyVersion("1.1.0"), "1.1");
assert.strictEqual(prettifyVersion("1.0.2"), "1.0.2");
assert.strictEqual(prettifyVersion("1.2.3"), "1.2.3");
});
});
describe("prettifyTargets", () => {
it("returns", () => {
assert.deepStrictEqual(prettifyTargets({}), {});
assert.deepStrictEqual(
prettifyTargets({
uglify: true,
}),
{
uglify: true,
},
);
assert.deepStrictEqual(
prettifyTargets({
chrome: "54.0.0",
electron: "1.6.0",
node: "0.12.0",
}),
{
chrome: "54",
electron: "1.6",
node: "0.12",
},
);
});
});
});