Support target versions as strings (#231)
This commit is contained in:
parent
14e9fbf345
commit
0781f711d0
@ -98,11 +98,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
@ -1,231 +1,232 @@
|
||||
{
|
||||
"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-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": 7.1,
|
||||
"node": 4,
|
||||
"ios": 8,
|
||||
"opera": 31,
|
||||
"electron": 0.31
|
||||
"chrome": "44",
|
||||
"edge": "12",
|
||||
"firefox": "34",
|
||||
"safari": "7.1",
|
||||
"node": "4",
|
||||
"ios": "8",
|
||||
"opera": "31",
|
||||
"electron": "0.31"
|
||||
},
|
||||
"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,
|
||||
"ios": 10.3,
|
||||
"opera": 39,
|
||||
"electron": 1.3
|
||||
"chrome": "52",
|
||||
"edge": "14",
|
||||
"firefox": "52",
|
||||
"safari": "10.1",
|
||||
"node": "7",
|
||||
"ios": "10.3",
|
||||
"opera": "39",
|
||||
"electron": "1.3"
|
||||
},
|
||||
"transform-async-to-generator": {
|
||||
"chrome": 55,
|
||||
"edge": 15,
|
||||
"firefox": 52,
|
||||
"safari": 10.1,
|
||||
"node": 7.6,
|
||||
"ios": 10.3,
|
||||
"opera": 42,
|
||||
"electron": 1.6
|
||||
"chrome": "55",
|
||||
"edge": "15",
|
||||
"firefox": "52",
|
||||
"safari": "10.1",
|
||||
"node": "7.6",
|
||||
"ios": "10.3",
|
||||
"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",
|
||||
"electron": "1.7"
|
||||
}
|
||||
}
|
||||
|
||||
@ -50,7 +50,8 @@
|
||||
"babel-plugin-transform-exponentiation-operator": "^6.22.0",
|
||||
"babel-plugin-transform-regenerator": "^6.22.0",
|
||||
"browserslist": "^2.1.2",
|
||||
"invariant": "^2.2.2"
|
||||
"invariant": "^2.2.2",
|
||||
"semver": "^5.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-cli": "^6.23.0",
|
||||
|
||||
@ -211,20 +211,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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,24 +1,25 @@
|
||||
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";
|
||||
import normalizeOptions from "./normalize-options.js";
|
||||
import pluginList from "../data/plugins.json";
|
||||
import transformPolyfillRequirePlugin from "./transform-polyfill-require-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) { return true; }
|
||||
@ -31,90 +32,20 @@ export const isPluginRequired = (supportedEnvironments, plugin) => {
|
||||
const lowestImplementedVersion = plugin[environment];
|
||||
const lowestTargetedVersion = supportedEnvironments[environment];
|
||||
|
||||
if (typeof lowestTargetedVersion === "string") {
|
||||
throw new Error(`Target version must be a number,
|
||||
'${lowestTargetedVersion}' was given for '${environment}'`);
|
||||
if (!semver.valid(lowestTargetedVersion)) {
|
||||
throw new Error(
|
||||
// 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 = {
|
||||
android: "android",
|
||||
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 (typeof targetOpts.electron === "string") {
|
||||
targetOpts.electron = parseFloat(targetOpts.electron);
|
||||
}
|
||||
|
||||
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;
|
||||
@ -123,8 +54,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;
|
||||
}, {});
|
||||
@ -191,7 +122,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) => {
|
||||
|
||||
133
experimental/babel-preset-env/src/targets-parser.js
Normal file
133
experimental/babel-preset-env/src/targets-parser.js
Normal file
@ -0,0 +1,133 @@
|
||||
import browserslist from "browserslist";
|
||||
import semver from "semver";
|
||||
import { semverify } from "./utils";
|
||||
|
||||
const browserNameMap = {
|
||||
android: "android",
|
||||
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;
|
||||
67
experimental/babel-preset-env/src/utils.js
Normal file
67
experimental/babel-preset-env/src/utils.js
Normal 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;
|
||||
},
|
||||
{},
|
||||
);
|
||||
};
|
||||
@ -2,120 +2,120 @@ babel-preset-env: `DEBUG` option
|
||||
|
||||
Using targets:
|
||||
{
|
||||
"android": 4
|
||||
"android": "4"
|
||||
}
|
||||
|
||||
Modules transform: commonjs
|
||||
|
||||
Using plugins:
|
||||
check-es2015-constants {"android":4}
|
||||
transform-es2015-arrow-functions {"android":4}
|
||||
transform-es2015-block-scoped-functions {"android":4}
|
||||
transform-es2015-block-scoping {"android":4}
|
||||
transform-es2015-classes {"android":4}
|
||||
transform-es2015-computed-properties {"android":4}
|
||||
transform-es2015-destructuring {"android":4}
|
||||
transform-es2015-duplicate-keys {"android":4}
|
||||
transform-es2015-for-of {"android":4}
|
||||
transform-es2015-function-name {"android":4}
|
||||
transform-es2015-literals {"android":4}
|
||||
transform-es2015-object-super {"android":4}
|
||||
transform-es2015-parameters {"android":4}
|
||||
transform-es2015-shorthand-properties {"android":4}
|
||||
transform-es2015-spread {"android":4}
|
||||
transform-es2015-sticky-regex {"android":4}
|
||||
transform-es2015-template-literals {"android":4}
|
||||
transform-es2015-typeof-symbol {"android":4}
|
||||
transform-es2015-unicode-regex {"android":4}
|
||||
transform-regenerator {"android":4}
|
||||
transform-exponentiation-operator {"android":4}
|
||||
transform-async-to-generator {"android":4}
|
||||
syntax-trailing-function-commas {"android":4}
|
||||
check-es2015-constants {"android":"4"}
|
||||
transform-es2015-arrow-functions {"android":"4"}
|
||||
transform-es2015-block-scoped-functions {"android":"4"}
|
||||
transform-es2015-block-scoping {"android":"4"}
|
||||
transform-es2015-classes {"android":"4"}
|
||||
transform-es2015-computed-properties {"android":"4"}
|
||||
transform-es2015-destructuring {"android":"4"}
|
||||
transform-es2015-duplicate-keys {"android":"4"}
|
||||
transform-es2015-for-of {"android":"4"}
|
||||
transform-es2015-function-name {"android":"4"}
|
||||
transform-es2015-literals {"android":"4"}
|
||||
transform-es2015-object-super {"android":"4"}
|
||||
transform-es2015-parameters {"android":"4"}
|
||||
transform-es2015-shorthand-properties {"android":"4"}
|
||||
transform-es2015-spread {"android":"4"}
|
||||
transform-es2015-sticky-regex {"android":"4"}
|
||||
transform-es2015-template-literals {"android":"4"}
|
||||
transform-es2015-typeof-symbol {"android":"4"}
|
||||
transform-es2015-unicode-regex {"android":"4"}
|
||||
transform-regenerator {"android":"4"}
|
||||
transform-exponentiation-operator {"android":"4"}
|
||||
transform-async-to-generator {"android":"4"}
|
||||
syntax-trailing-function-commas {"android":"4"}
|
||||
|
||||
Using polyfills:
|
||||
es6.typed.array-buffer {"android":4}
|
||||
es6.typed.int8-array {"android":4}
|
||||
es6.typed.uint8-array {"android":4}
|
||||
es6.typed.uint8-clamped-array {"android":4}
|
||||
es6.typed.int16-array {"android":4}
|
||||
es6.typed.uint16-array {"android":4}
|
||||
es6.typed.int32-array {"android":4}
|
||||
es6.typed.uint32-array {"android":4}
|
||||
es6.typed.float32-array {"android":4}
|
||||
es6.typed.float64-array {"android":4}
|
||||
es6.map {"android":4}
|
||||
es6.set {"android":4}
|
||||
es6.weak-map {"android":4}
|
||||
es6.weak-set {"android":4}
|
||||
es6.reflect.apply {"android":4}
|
||||
es6.reflect.construct {"android":4}
|
||||
es6.reflect.define-property {"android":4}
|
||||
es6.reflect.delete-property {"android":4}
|
||||
es6.reflect.get {"android":4}
|
||||
es6.reflect.get-own-property-descriptor {"android":4}
|
||||
es6.reflect.get-prototype-of {"android":4}
|
||||
es6.reflect.has {"android":4}
|
||||
es6.reflect.is-extensible {"android":4}
|
||||
es6.reflect.own-keys {"android":4}
|
||||
es6.reflect.prevent-extensions {"android":4}
|
||||
es6.reflect.set {"android":4}
|
||||
es6.reflect.set-prototype-of {"android":4}
|
||||
es6.promise {"android":4}
|
||||
es6.symbol {"android":4}
|
||||
es6.object.assign {"android":4}
|
||||
es6.object.is {"android":4}
|
||||
es6.object.set-prototype-of {"android":4}
|
||||
es6.function.name {"android":4}
|
||||
es6.string.raw {"android":4}
|
||||
es6.string.from-code-point {"android":4}
|
||||
es6.string.code-point-at {"android":4}
|
||||
es6.string.repeat {"android":4}
|
||||
es6.string.starts-with {"android":4}
|
||||
es6.string.ends-with {"android":4}
|
||||
es6.string.includes {"android":4}
|
||||
es6.regexp.flags {"android":4}
|
||||
es6.regexp.match {"android":4}
|
||||
es6.regexp.replace {"android":4}
|
||||
es6.regexp.split {"android":4}
|
||||
es6.regexp.search {"android":4}
|
||||
es6.array.from {"android":4}
|
||||
es6.array.of {"android":4}
|
||||
es6.array.copy-within {"android":4}
|
||||
es6.array.find {"android":4}
|
||||
es6.array.find-index {"android":4}
|
||||
es6.array.fill {"android":4}
|
||||
es6.array.iterator {"android":4}
|
||||
es6.number.is-finite {"android":4}
|
||||
es6.number.is-integer {"android":4}
|
||||
es6.number.is-safe-integer {"android":4}
|
||||
es6.number.is-nan {"android":4}
|
||||
es6.number.epsilon {"android":4}
|
||||
es6.number.min-safe-integer {"android":4}
|
||||
es6.number.max-safe-integer {"android":4}
|
||||
es6.math.acosh {"android":4}
|
||||
es6.math.asinh {"android":4}
|
||||
es6.math.atanh {"android":4}
|
||||
es6.math.cbrt {"android":4}
|
||||
es6.math.clz32 {"android":4}
|
||||
es6.math.cosh {"android":4}
|
||||
es6.math.expm1 {"android":4}
|
||||
es6.math.fround {"android":4}
|
||||
es6.math.hypot {"android":4}
|
||||
es6.math.imul {"android":4}
|
||||
es6.math.log1p {"android":4}
|
||||
es6.math.log10 {"android":4}
|
||||
es6.math.log2 {"android":4}
|
||||
es6.math.sign {"android":4}
|
||||
es6.math.sinh {"android":4}
|
||||
es6.math.tanh {"android":4}
|
||||
es6.math.trunc {"android":4}
|
||||
es7.array.includes {"android":4}
|
||||
es7.object.values {"android":4}
|
||||
es7.object.entries {"android":4}
|
||||
es7.object.get-own-property-descriptors {"android":4}
|
||||
es7.string.pad-start {"android":4}
|
||||
es7.string.pad-end {"android":4}
|
||||
web.timers {"android":4}
|
||||
web.immediate {"android":4}
|
||||
web.dom.iterable {"android":4}
|
||||
es6.typed.array-buffer {"android":"4"}
|
||||
es6.typed.int8-array {"android":"4"}
|
||||
es6.typed.uint8-array {"android":"4"}
|
||||
es6.typed.uint8-clamped-array {"android":"4"}
|
||||
es6.typed.int16-array {"android":"4"}
|
||||
es6.typed.uint16-array {"android":"4"}
|
||||
es6.typed.int32-array {"android":"4"}
|
||||
es6.typed.uint32-array {"android":"4"}
|
||||
es6.typed.float32-array {"android":"4"}
|
||||
es6.typed.float64-array {"android":"4"}
|
||||
es6.map {"android":"4"}
|
||||
es6.set {"android":"4"}
|
||||
es6.weak-map {"android":"4"}
|
||||
es6.weak-set {"android":"4"}
|
||||
es6.reflect.apply {"android":"4"}
|
||||
es6.reflect.construct {"android":"4"}
|
||||
es6.reflect.define-property {"android":"4"}
|
||||
es6.reflect.delete-property {"android":"4"}
|
||||
es6.reflect.get {"android":"4"}
|
||||
es6.reflect.get-own-property-descriptor {"android":"4"}
|
||||
es6.reflect.get-prototype-of {"android":"4"}
|
||||
es6.reflect.has {"android":"4"}
|
||||
es6.reflect.is-extensible {"android":"4"}
|
||||
es6.reflect.own-keys {"android":"4"}
|
||||
es6.reflect.prevent-extensions {"android":"4"}
|
||||
es6.reflect.set {"android":"4"}
|
||||
es6.reflect.set-prototype-of {"android":"4"}
|
||||
es6.promise {"android":"4"}
|
||||
es6.symbol {"android":"4"}
|
||||
es6.object.assign {"android":"4"}
|
||||
es6.object.is {"android":"4"}
|
||||
es6.object.set-prototype-of {"android":"4"}
|
||||
es6.function.name {"android":"4"}
|
||||
es6.string.raw {"android":"4"}
|
||||
es6.string.from-code-point {"android":"4"}
|
||||
es6.string.code-point-at {"android":"4"}
|
||||
es6.string.repeat {"android":"4"}
|
||||
es6.string.starts-with {"android":"4"}
|
||||
es6.string.ends-with {"android":"4"}
|
||||
es6.string.includes {"android":"4"}
|
||||
es6.regexp.flags {"android":"4"}
|
||||
es6.regexp.match {"android":"4"}
|
||||
es6.regexp.replace {"android":"4"}
|
||||
es6.regexp.split {"android":"4"}
|
||||
es6.regexp.search {"android":"4"}
|
||||
es6.array.from {"android":"4"}
|
||||
es6.array.of {"android":"4"}
|
||||
es6.array.copy-within {"android":"4"}
|
||||
es6.array.find {"android":"4"}
|
||||
es6.array.find-index {"android":"4"}
|
||||
es6.array.fill {"android":"4"}
|
||||
es6.array.iterator {"android":"4"}
|
||||
es6.number.is-finite {"android":"4"}
|
||||
es6.number.is-integer {"android":"4"}
|
||||
es6.number.is-safe-integer {"android":"4"}
|
||||
es6.number.is-nan {"android":"4"}
|
||||
es6.number.epsilon {"android":"4"}
|
||||
es6.number.min-safe-integer {"android":"4"}
|
||||
es6.number.max-safe-integer {"android":"4"}
|
||||
es6.math.acosh {"android":"4"}
|
||||
es6.math.asinh {"android":"4"}
|
||||
es6.math.atanh {"android":"4"}
|
||||
es6.math.cbrt {"android":"4"}
|
||||
es6.math.clz32 {"android":"4"}
|
||||
es6.math.cosh {"android":"4"}
|
||||
es6.math.expm1 {"android":"4"}
|
||||
es6.math.fround {"android":"4"}
|
||||
es6.math.hypot {"android":"4"}
|
||||
es6.math.imul {"android":"4"}
|
||||
es6.math.log1p {"android":"4"}
|
||||
es6.math.log10 {"android":"4"}
|
||||
es6.math.log2 {"android":"4"}
|
||||
es6.math.sign {"android":"4"}
|
||||
es6.math.sinh {"android":"4"}
|
||||
es6.math.tanh {"android":"4"}
|
||||
es6.math.trunc {"android":"4"}
|
||||
es7.array.includes {"android":"4"}
|
||||
es7.object.values {"android":"4"}
|
||||
es7.object.entries {"android":"4"}
|
||||
es7.object.get-own-property-descriptors {"android":"4"}
|
||||
es7.string.pad-start {"android":"4"}
|
||||
es7.string.pad-end {"android":"4"}
|
||||
web.timers {"android":"4"}
|
||||
web.immediate {"android":"4"}
|
||||
web.dom.iterable {"android":"4"}
|
||||
src/in.js -> lib/in.js
|
||||
@ -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}
|
||||
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
|
||||
@ -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:
|
||||
check-es2015-constants {"ie":10}
|
||||
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}
|
||||
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}
|
||||
check-es2015-constants {"ie":"10"}
|
||||
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"}
|
||||
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}
|
||||
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
|
||||
@ -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:
|
||||
check-es2015-constants {"electron":0.36}
|
||||
transform-es2015-block-scoping {"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}
|
||||
check-es2015-constants {"electron":"0.36"}
|
||||
transform-es2015-block-scoping {"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}
|
||||
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
|
||||
@ -4,7 +4,8 @@
|
||||
"debug": true,
|
||||
"exclude": [
|
||||
"transform-async-to-generator",
|
||||
"transform-regenerator", "transform-es2015-parameters"
|
||||
"transform-regenerator",
|
||||
"transform-es2015-parameters"
|
||||
],
|
||||
"targets": {
|
||||
"firefox": 52,
|
||||
|
||||
@ -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
|
||||
@ -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:
|
||||
check-es2015-constants {"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}
|
||||
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}
|
||||
check-es2015-constants {"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"}
|
||||
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
|
||||
@ -0,0 +1,13 @@
|
||||
{
|
||||
"presets": [
|
||||
["../../lib", {
|
||||
"debug": true,
|
||||
"targets": {
|
||||
"chrome": 54,
|
||||
"electron": 0.36,
|
||||
"node": 6.10,
|
||||
"ie": 10
|
||||
}
|
||||
}]
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
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:
|
||||
check-es2015-constants {"electron":"0.36","ie":"10"}
|
||||
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"}
|
||||
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"}
|
||||
src/in.js -> lib/in.js
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"presets": [
|
||||
["../../lib", {
|
||||
"debug": true,
|
||||
"targets": {
|
||||
"chrome": "54",
|
||||
"node": "6.10",
|
||||
"ie": "10"
|
||||
}
|
||||
}]
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
babel-preset-env: `DEBUG` option
|
||||
|
||||
Using targets:
|
||||
{
|
||||
"chrome": "54",
|
||||
"node": "6.10",
|
||||
"ie": "10"
|
||||
}
|
||||
|
||||
Modules transform: commonjs
|
||||
|
||||
Using plugins:
|
||||
check-es2015-constants {"ie":"10"}
|
||||
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"}
|
||||
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"}
|
||||
src/in.js -> lib/in.js
|
||||
@ -2,7 +2,7 @@
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"targets": {
|
||||
"electron": 1.4
|
||||
"electron": "1.4"
|
||||
},
|
||||
"modules": false,
|
||||
"useBuiltIns": true
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"targets": {
|
||||
"chrome": 55
|
||||
"chrome": "55"
|
||||
},
|
||||
"modules": false,
|
||||
"useBuiltIns": true
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"targets": {
|
||||
"chrome": 55,
|
||||
"node": 7.6,
|
||||
"chrome": "55",
|
||||
"node": "7.6",
|
||||
"uglify": true
|
||||
},
|
||||
"modules": false,
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"targets": {
|
||||
"node": 7.6,
|
||||
"node": "7.6",
|
||||
"uglify": true
|
||||
},
|
||||
"modules": false,
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"targets": {
|
||||
"chrome": 55
|
||||
"chrome": "55"
|
||||
},
|
||||
"modules": false,
|
||||
"useBuiltIns": true
|
||||
|
||||
@ -4,56 +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'", function() {
|
||||
assert.deepEqual(babelPresetEnv.getTargets({
|
||||
node: true
|
||||
}), {
|
||||
node: parseFloat(process.versions.node)
|
||||
});
|
||||
|
||||
assert.deepEqual(babelPresetEnv.getTargets({
|
||||
node: "current"
|
||||
}), {
|
||||
node: parseFloat(process.versions.node)
|
||||
});
|
||||
});
|
||||
|
||||
it("transforms electron version to a number", function() {
|
||||
assert.deepEqual(babelPresetEnv.getTargets({
|
||||
electron: "1.2"
|
||||
}), {
|
||||
electron: 1.2
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
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", () => {
|
||||
@ -65,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", () => {
|
||||
@ -81,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", () => {
|
||||
@ -91,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", () => {
|
||||
@ -101,81 +69,49 @@ 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", () => {
|
||||
const plugin = {
|
||||
chrome: 50
|
||||
chrome: 50,
|
||||
};
|
||||
const targets = {
|
||||
chrome: "55.0.0",
|
||||
uglify: true,
|
||||
};
|
||||
assert.strictEqual(
|
||||
babelPresetEnv.isPluginRequired(targets, plugin),
|
||||
true,
|
||||
);
|
||||
});
|
||||
|
||||
it("returns when target is a decimal", () => {
|
||||
const plugin = {
|
||||
node: 6.9,
|
||||
};
|
||||
const targets = {
|
||||
node: "6.10.0",
|
||||
};
|
||||
assert.strictEqual(
|
||||
babelPresetEnv.isPluginRequired(targets, plugin),
|
||||
false,
|
||||
);
|
||||
});
|
||||
|
||||
it("throws an error if target version is invalid", () => {
|
||||
const plugin = {
|
||||
chrome: 50,
|
||||
};
|
||||
const targets = {
|
||||
chrome: 55,
|
||||
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);
|
||||
});
|
||||
|
||||
it("will throw if target version is not a number", () => {
|
||||
const plugin = {
|
||||
"node": 6,
|
||||
};
|
||||
|
||||
const targets = {
|
||||
"node": "6.5",
|
||||
};
|
||||
|
||||
assert.throws(() => {
|
||||
babelPresetEnv.isPluginRequired(targets, plugin);
|
||||
}, Error);
|
||||
assert.throws(() => babelPresetEnv.isPluginRequired(targets, plugin));
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
117
experimental/babel-preset-env/test/targets-parser.spec.js
Normal file
117
experimental/babel-preset-env/test/targets-parser.spec.js
Normal 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,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
61
experimental/babel-preset-env/test/utils.spec.js
Normal file
61
experimental/babel-preset-env/test/utils.spec.js
Normal 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.deepEqual(prettifyTargets({}), {});
|
||||
|
||||
assert.deepEqual(
|
||||
prettifyTargets({
|
||||
uglify: true,
|
||||
}),
|
||||
{
|
||||
uglify: true,
|
||||
},
|
||||
);
|
||||
|
||||
assert.deepEqual(
|
||||
prettifyTargets({
|
||||
chrome: "54.0.0",
|
||||
electron: "1.6.0",
|
||||
node: "0.12.0",
|
||||
}),
|
||||
{
|
||||
chrome: "54",
|
||||
electron: "1.6",
|
||||
node: "0.12",
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -22,10 +22,6 @@ acorn-jsx@^3.0.0:
|
||||
dependencies:
|
||||
acorn "^3.0.4"
|
||||
|
||||
acorn@4.0.4, acorn@^4.0.3:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a"
|
||||
|
||||
acorn@^2.1.0, acorn@^2.4.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7"
|
||||
@ -34,6 +30,10 @@ acorn@^3.0.4:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
|
||||
|
||||
acorn@^4.0.3:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a"
|
||||
|
||||
acorn@^5.0.1:
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.2.tgz#dc1c8fb907f64db2ab573de2326b73527c24de36"
|
||||
@ -233,31 +233,7 @@ babel-code-frame@^6.22.0:
|
||||
esutils "^2.0.2"
|
||||
js-tokens "^3.0.0"
|
||||
|
||||
babel-core@^6.23.0:
|
||||
version "6.23.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.23.1.tgz#c143cb621bb2f621710c220c5d579d15b8a442df"
|
||||
dependencies:
|
||||
babel-code-frame "^6.22.0"
|
||||
babel-generator "^6.23.0"
|
||||
babel-helpers "^6.23.0"
|
||||
babel-messages "^6.23.0"
|
||||
babel-register "^6.23.0"
|
||||
babel-runtime "^6.22.0"
|
||||
babel-template "^6.23.0"
|
||||
babel-traverse "^6.23.1"
|
||||
babel-types "^6.23.0"
|
||||
babylon "^6.11.0"
|
||||
convert-source-map "^1.1.0"
|
||||
debug "^2.1.1"
|
||||
json5 "^0.5.0"
|
||||
lodash "^4.2.0"
|
||||
minimatch "^3.0.2"
|
||||
path-is-absolute "^1.0.0"
|
||||
private "^0.1.6"
|
||||
slash "^1.0.0"
|
||||
source-map "^0.5.0"
|
||||
|
||||
babel-core@^6.24.0, babel-core@latest:
|
||||
babel-core@^6.23.0, babel-core@^6.24.0, babel-core@latest:
|
||||
version "6.24.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.0.tgz#8f36a0a77f5c155aed6f920b844d23ba56742a02"
|
||||
dependencies:
|
||||
@ -291,20 +267,7 @@ babel-eslint@^7.1.1:
|
||||
babylon "^6.13.0"
|
||||
lodash.pickby "^4.6.0"
|
||||
|
||||
babel-generator@^6.18.0, babel-generator@^6.23.0:
|
||||
version "6.23.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.23.0.tgz#6b8edab956ef3116f79d8c84c5a3c05f32a74bc5"
|
||||
dependencies:
|
||||
babel-messages "^6.23.0"
|
||||
babel-runtime "^6.22.0"
|
||||
babel-types "^6.23.0"
|
||||
detect-indent "^4.0.0"
|
||||
jsesc "^1.3.0"
|
||||
lodash "^4.2.0"
|
||||
source-map "^0.5.0"
|
||||
trim-right "^1.0.1"
|
||||
|
||||
babel-generator@^6.24.0:
|
||||
babel-generator@^6.18.0, babel-generator@^6.24.0:
|
||||
version "6.24.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.0.tgz#eba270a8cc4ce6e09a61be43465d7c62c1f87c56"
|
||||
dependencies:
|
||||
@ -1717,14 +1680,7 @@ eslint@^3.17.1:
|
||||
text-table "~0.2.0"
|
||||
user-home "^2.0.0"
|
||||
|
||||
espree@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.0.tgz#41656fa5628e042878025ef467e78f125cb86e1d"
|
||||
dependencies:
|
||||
acorn "4.0.4"
|
||||
acorn-jsx "^3.0.0"
|
||||
|
||||
espree@latest:
|
||||
espree@^3.4.0, espree@latest:
|
||||
version "3.4.1"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.1.tgz#28a83ab4aaed71ed8fe0f5efe61b76a05c13c4d2"
|
||||
dependencies:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user