Add stage-3 plugin option (#384)
This commit is contained in:
parent
9f0f8d99d5
commit
27b155aa71
@ -1,5 +1,3 @@
|
||||
// https://github.com/zloirock/core-js
|
||||
|
||||
const typedArrayMethods = [
|
||||
"typed arrays / %TypedArray%.from",
|
||||
"typed arrays / %TypedArray%.of",
|
||||
@ -80,7 +78,18 @@ const es2015 = {
|
||||
"es6.reflect.set": "Reflect / Reflect.set",
|
||||
"es6.reflect.set-prototype-of": "Reflect / Reflect.setPrototypeOf",
|
||||
|
||||
"es6.promise": "Promise",
|
||||
"es6.promise": {
|
||||
features: [
|
||||
"Promise / basic functionality",
|
||||
"Promise / constructor requires new",
|
||||
"Promise / Promise.prototype isn\'t an instance",
|
||||
"Promise / Promise.all",
|
||||
"Promise / Promise.all, generic iterables",
|
||||
"Promise / Promise.race",
|
||||
"Promise / Promise.race, generic iterables",
|
||||
"Promise / Promise[Symbol.species]"
|
||||
]
|
||||
},
|
||||
|
||||
"es6.symbol": {
|
||||
features: [
|
||||
@ -178,4 +187,6 @@ const es2017 = {
|
||||
"es7.string.pad-end": "String padding / String.prototype.padEnd",
|
||||
};
|
||||
|
||||
module.exports = Object.assign({}, es2015, es2016, es2017);
|
||||
const stage3 = require("./stage3").builtIns;
|
||||
|
||||
module.exports = Object.assign({}, es2015, es2016, es2017, stage3);
|
||||
|
||||
@ -164,7 +164,7 @@
|
||||
"es6.reflect.construct": {
|
||||
"chrome": "49",
|
||||
"edge": "13",
|
||||
"firefox": "45",
|
||||
"firefox": "44",
|
||||
"safari": "10",
|
||||
"node": "6",
|
||||
"ios": "10",
|
||||
@ -691,6 +691,7 @@
|
||||
"firefox": "23",
|
||||
"safari": "7",
|
||||
"node": "0.12",
|
||||
"android": "4.4",
|
||||
"ios": "7",
|
||||
"opera": "17",
|
||||
"electron": "0.2"
|
||||
@ -824,5 +825,6 @@
|
||||
"ios": "10",
|
||||
"opera": "44",
|
||||
"electron": "1.7"
|
||||
}
|
||||
},
|
||||
"es7.promise.finally": {}
|
||||
}
|
||||
|
||||
@ -135,4 +135,6 @@ const es2017 = {
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = Object.assign({}, es2015, es2016, es2017);
|
||||
const stage3 = require("./stage3").plugins;
|
||||
|
||||
module.exports = Object.assign({}, es2015, es2016, es2017, stage3);
|
||||
|
||||
@ -62,7 +62,6 @@
|
||||
},
|
||||
"transform-es2015-destructuring": {
|
||||
"chrome": "51",
|
||||
"edge": "15",
|
||||
"firefox": "53",
|
||||
"safari": "10",
|
||||
"node": "6.5",
|
||||
@ -238,5 +237,14 @@
|
||||
"ios": "10",
|
||||
"opera": "45",
|
||||
"electron": "1.7"
|
||||
}
|
||||
},
|
||||
"transform-async-generator-functions": {},
|
||||
"transform-object-rest-spread": {
|
||||
"chrome": "60",
|
||||
"firefox": "55",
|
||||
"node": "8.3",
|
||||
"opera": "47"
|
||||
},
|
||||
"transform-optional-catch-binding": {},
|
||||
"transform-unicode-property-regex": {}
|
||||
}
|
||||
|
||||
19
experimental/babel-preset-env/data/stage3.js
Normal file
19
experimental/babel-preset-env/data/stage3.js
Normal file
@ -0,0 +1,19 @@
|
||||
const builtIns = {
|
||||
"es7.promise.finally": "Promise.prototype.finally"
|
||||
};
|
||||
|
||||
const plugins = {
|
||||
"transform-async-generator-functions": "Asynchronous Iterators",
|
||||
"transform-object-rest-spread": "object rest/spread properties",
|
||||
"transform-optional-catch-binding": "optional catch binding",
|
||||
"transform-unicode-property-regex": "RegExp Unicode Property Escapes",
|
||||
};
|
||||
|
||||
const pluginSyntaxMap = new Map([
|
||||
["transform-async-generator-functions", "syntax-async-generators"],
|
||||
["transform-object-rest-spread", "syntax-object-rest-spread"],
|
||||
["transform-optional-catch-binding", "syntax-optional-catch-binding"],
|
||||
["transform-unicode-property-regex", null],
|
||||
]);
|
||||
|
||||
module.exports = { builtIns, plugins, pluginSyntaxMap };
|
||||
@ -26,8 +26,12 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-plugin-check-es2015-constants": "7.0.0-beta.0",
|
||||
"babel-plugin-syntax-async-generators": "7.0.0-beta.0",
|
||||
"babel-plugin-syntax-object-rest-spread": "7.0.0-beta.0",
|
||||
"babel-plugin-syntax-optional-catch-binding": "7.0.0-beta.0",
|
||||
"babel-plugin-syntax-trailing-function-commas": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-async-to-generator": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-async-generator-functions": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-es2015-arrow-functions": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-es2015-block-scoped-functions": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-es2015-block-scoping": "7.0.0-beta.0",
|
||||
@ -53,6 +57,9 @@
|
||||
"babel-plugin-transform-exponentiation-operator": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-new-target": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-regenerator": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-object-rest-spread": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-optional-catch-binding": "7.0.0-beta.0",
|
||||
"babel-plugin-transform-unicode-property-regex": "^2.0.5",
|
||||
"browserslist": "^2.4.0",
|
||||
"invariant": "^2.2.2",
|
||||
"semver": "^5.3.0"
|
||||
@ -68,7 +75,7 @@
|
||||
"babel-register": "7.0.0-alpha.16",
|
||||
"chai": "^4.0.2",
|
||||
"codecov": "^2.2.0",
|
||||
"compat-table": "kangax/compat-table#d88c80ea6dcbc7064112eb46bb020718107892f7",
|
||||
"compat-table": "kangax/compat-table#b8477cc0f6d65c000c46213e654d19f350de9fa8",
|
||||
"eslint": "^3.17.1",
|
||||
"eslint-config-babel": "^6.0.0",
|
||||
"eslint-plugin-flowtype": "^2.33.0",
|
||||
|
||||
@ -3,14 +3,11 @@
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const flatten = require("lodash/flatten");
|
||||
const flattenDeep = require("lodash/flattenDeep");
|
||||
const isEqual = require("lodash/isEqual");
|
||||
const mapValues = require("lodash/mapValues");
|
||||
const pickBy = require("lodash/pickBy");
|
||||
const electronToChromiumVersions = require("electron-to-chromium").versions;
|
||||
const pluginFeatures = require("../data/plugin-features");
|
||||
const builtInFeatures = require("../data/built-in-features");
|
||||
|
||||
const electronToChromiumKeys = Object.keys(
|
||||
electronToChromiumVersions
|
||||
@ -36,8 +33,10 @@ const findClosestElectronVersion = targetVersion => {
|
||||
const chromiumToElectron = chromium =>
|
||||
chromiumToElectronMap[chromium] || findClosestElectronVersion(chromium);
|
||||
|
||||
const renameTests = (tests, getName) =>
|
||||
tests.map(test => Object.assign({}, test, { name: getName(test.name) }));
|
||||
const renameTests = (tests, getName, category) =>
|
||||
tests.map(test =>
|
||||
Object.assign({}, test, { name: getName(test.name), category })
|
||||
);
|
||||
|
||||
// The following is adapted from compat-table:
|
||||
// https://github.com/kangax/compat-table/blob/gh-pages/build.js
|
||||
@ -54,11 +53,16 @@ const byTestSuite = suite => browser => {
|
||||
: true;
|
||||
};
|
||||
|
||||
const es6 = require("compat-table/data-es6");
|
||||
es6.browsers = pickBy(envs, byTestSuite("es6"));
|
||||
|
||||
const es2016plus = require("compat-table/data-es2016plus");
|
||||
es2016plus.browsers = pickBy(envs, byTestSuite("es2016plus"));
|
||||
const compatSources = [
|
||||
"es6",
|
||||
"es2016plus",
|
||||
"esnext",
|
||||
].reduce((result, source) => {
|
||||
const data = require(`compat-table/data-${source}`);
|
||||
data.browsers = pickBy(envs, byTestSuite(source));
|
||||
result.push(data);
|
||||
return result;
|
||||
}, []);
|
||||
|
||||
const interpolateAllResults = (rawBrowsers, tests) => {
|
||||
const interpolateResults = res => {
|
||||
@ -111,8 +115,9 @@ const interpolateAllResults = (rawBrowsers, tests) => {
|
||||
});
|
||||
};
|
||||
|
||||
interpolateAllResults(es6.browsers, es6.tests);
|
||||
interpolateAllResults(es2016plus.browsers, es2016plus.tests);
|
||||
compatSources.forEach(({ browsers, tests }) =>
|
||||
interpolateAllResults(browsers, tests)
|
||||
);
|
||||
|
||||
// End of compat-table code adaptation
|
||||
|
||||
@ -130,18 +135,24 @@ const environments = [
|
||||
];
|
||||
|
||||
const compatibilityTests = flattenDeep(
|
||||
[es6, es2016plus].map(data =>
|
||||
compatSources.map(data =>
|
||||
data.tests.map(test => {
|
||||
return test.subtests
|
||||
? [test, renameTests(test.subtests, name => test.name + " / " + name)]
|
||||
? [
|
||||
test,
|
||||
renameTests(
|
||||
test.subtests,
|
||||
name => test.name + " / " + name,
|
||||
test.category
|
||||
),
|
||||
]
|
||||
: test;
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
const getLowestImplementedVersion = ({ features }, env) => {
|
||||
const tests = flatten(
|
||||
compatibilityTests
|
||||
const tests = compatibilityTests
|
||||
.filter(test => {
|
||||
return (
|
||||
features.indexOf(test.name) >= 0 ||
|
||||
@ -150,24 +161,29 @@ const getLowestImplementedVersion = ({ features }, env) => {
|
||||
(features.length === 1 && test.name.indexOf(features[0]) === 0)
|
||||
);
|
||||
})
|
||||
.map(test => {
|
||||
.reduce((result, test) => {
|
||||
const isBuiltIn =
|
||||
test.category === "built-ins" ||
|
||||
test.category === "built-in extensions";
|
||||
|
||||
return test.subtests
|
||||
? test.subtests.map(subtest => ({
|
||||
name: `${test.name}/${subtest.name}`,
|
||||
res: subtest.res,
|
||||
isBuiltIn,
|
||||
}))
|
||||
: {
|
||||
if (!test.subtests) {
|
||||
result.push({
|
||||
name: test.name,
|
||||
res: test.res,
|
||||
isBuiltIn,
|
||||
};
|
||||
});
|
||||
} else {
|
||||
test.subtests.forEach(subtest =>
|
||||
result.push({
|
||||
name: `${test.name}/${subtest.name}`,
|
||||
res: subtest.res,
|
||||
isBuiltIn,
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
return result;
|
||||
}, []);
|
||||
|
||||
const envTests = tests.map(({ res: test, name, isBuiltIn }, i) => {
|
||||
// Babel itself doesn't implement the feature correctly,
|
||||
@ -221,6 +237,7 @@ const generateData = (environments, features) => {
|
||||
|
||||
environments.forEach(env => {
|
||||
const version = getLowestImplementedVersion(options, env);
|
||||
|
||||
if (version !== null) {
|
||||
plugin[env] = version.toString();
|
||||
}
|
||||
@ -245,20 +262,17 @@ const generateData = (environments, features) => {
|
||||
});
|
||||
};
|
||||
|
||||
const pluginsDataPath = path.join(__dirname, "../data/plugins.json");
|
||||
const builtInsDataPath = path.join(__dirname, "../data/built-ins.json");
|
||||
["plugin", "built-in"].forEach(target => {
|
||||
const newData = generateData(
|
||||
environments,
|
||||
require(`../data/${target}-features`)
|
||||
);
|
||||
const dataPath = path.join(__dirname, `../data/${target}s.json`);
|
||||
|
||||
const newPluginData = generateData(environments, pluginFeatures);
|
||||
const newBuiltInsData = generateData(environments, builtInFeatures);
|
||||
if (process.argv[2] === "--check") {
|
||||
const currentData = require(dataPath);
|
||||
|
||||
if (process.argv[2] === "--check") {
|
||||
const currentPluginData = require(pluginsDataPath);
|
||||
const currentBuiltInsData = require(builtInsDataPath);
|
||||
|
||||
if (
|
||||
!isEqual(currentPluginData, newPluginData) ||
|
||||
!isEqual(currentBuiltInsData, newBuiltInsData)
|
||||
) {
|
||||
if (!isEqual(currentData, newData)) {
|
||||
console.error(
|
||||
"The newly generated plugin/built-in data does not match the current " +
|
||||
"files. Re-run `npm run build-data`."
|
||||
@ -267,14 +281,7 @@ if (process.argv[2] === "--check") {
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
fs.writeFileSync(
|
||||
pluginsDataPath,
|
||||
JSON.stringify(newPluginData, null, 2) + "\n"
|
||||
);
|
||||
|
||||
fs.writeFileSync(
|
||||
builtInsDataPath,
|
||||
JSON.stringify(newBuiltInsData, null, 2) + "\n"
|
||||
);
|
||||
fs.writeFileSync(dataPath, `${JSON.stringify(newData, null, 2)}\n`);
|
||||
});
|
||||
|
||||
@ -1,7 +1,11 @@
|
||||
export default {
|
||||
"check-es2015-constants": require("babel-plugin-check-es2015-constants"),
|
||||
"syntax-async-generators": require("babel-plugin-syntax-async-generators"),
|
||||
"syntax-object-rest-spread": require("babel-plugin-syntax-object-rest-spread"),
|
||||
"syntax-optional-catch-binding": require("babel-plugin-syntax-optional-catch-binding"),
|
||||
"syntax-trailing-function-commas": require("babel-plugin-syntax-trailing-function-commas"),
|
||||
"transform-async-to-generator": require("babel-plugin-transform-async-to-generator"),
|
||||
"transform-async-generator-functions": require("babel-plugin-transform-async-generator-functions"),
|
||||
"transform-es2015-arrow-functions": require("babel-plugin-transform-es2015-arrow-functions"),
|
||||
"transform-es2015-block-scoped-functions": require("babel-plugin-transform-es2015-block-scoped-functions"),
|
||||
"transform-es2015-block-scoping": require("babel-plugin-transform-es2015-block-scoping"),
|
||||
@ -26,5 +30,8 @@ export default {
|
||||
"transform-es2015-unicode-regex": require("babel-plugin-transform-es2015-unicode-regex"),
|
||||
"transform-exponentiation-operator": require("babel-plugin-transform-exponentiation-operator"),
|
||||
"transform-new-target": require("babel-plugin-transform-new-target"),
|
||||
"transform-object-rest-spread": require("babel-plugin-transform-object-rest-spread"),
|
||||
"transform-optional-catch-binding": require("babel-plugin-transform-optional-catch-binding"),
|
||||
"transform-regenerator": require("babel-plugin-transform-regenerator"),
|
||||
"transform-unicode-property-regex": require("babel-plugin-transform-unicode-property-regex"),
|
||||
};
|
||||
|
||||
@ -7,13 +7,36 @@ import { defaultWebIncludes } from "./default-includes";
|
||||
import moduleTransformations from "./module-transformations";
|
||||
import normalizeOptions from "./normalize-options.js";
|
||||
import pluginList from "../data/plugins.json";
|
||||
import {
|
||||
builtIns as stage3BuiltIns,
|
||||
plugins as stage3Plugins,
|
||||
pluginSyntaxMap,
|
||||
} from "../data/stage3.js";
|
||||
import useBuiltInsEntryPlugin from "./use-built-ins-entry-plugin";
|
||||
import addUsedBuiltInsPlugin from "./use-built-ins-plugin";
|
||||
import getTargets from "./targets-parser";
|
||||
import availablePlugins from "./available-plugins";
|
||||
import { prettifyTargets, semverify } from "./utils";
|
||||
import { filterStageFromList, prettifyTargets, semverify } from "./utils";
|
||||
import type { Plugin, Targets } from "./types";
|
||||
|
||||
const getPlugin = (pluginName: string) => {
|
||||
const plugin = availablePlugins[pluginName];
|
||||
|
||||
if (!plugin) {
|
||||
throw new Error(
|
||||
`Could not find plugin "${pluginName}". Ensure there is an entry in ./available-plugins.js for it.`,
|
||||
);
|
||||
}
|
||||
|
||||
return plugin;
|
||||
};
|
||||
|
||||
const builtInsListWithoutStage3 = filterStageFromList(
|
||||
builtInsList,
|
||||
stage3BuiltIns,
|
||||
);
|
||||
const pluginListWithoutStage3 = filterStageFromList(pluginList, stage3Plugins);
|
||||
|
||||
export const isPluginRequired = (
|
||||
supportedEnvironments: Targets,
|
||||
plugin: Targets,
|
||||
@ -84,14 +107,28 @@ const getPlatformSpecificDefaultFor = (targets: Targets): ?Array<string> => {
|
||||
return isAnyTarget || isWebTarget ? defaultWebIncludes : null;
|
||||
};
|
||||
|
||||
const filterItems = (list, includes, excludes, targets, defaultItems) => {
|
||||
const filterItems = (
|
||||
list,
|
||||
includes,
|
||||
excludes,
|
||||
targets,
|
||||
defaultItems,
|
||||
): Set<string> => {
|
||||
const result = new Set();
|
||||
|
||||
for (const item in list) {
|
||||
const excluded = excludes.has(item);
|
||||
|
||||
if (!excluded && isPluginRequired(targets, list[item])) {
|
||||
if (!excluded) {
|
||||
if (isPluginRequired(targets, list[item])) {
|
||||
result.add(item);
|
||||
} else {
|
||||
const stage3Syntax = pluginSyntaxMap.get(item);
|
||||
|
||||
if (stage3Syntax) {
|
||||
result.add(stage3Syntax);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,6 +155,7 @@ export default function buildPreset(
|
||||
loose,
|
||||
modules,
|
||||
spec,
|
||||
stage3,
|
||||
targets: optionsTargets,
|
||||
useBuiltIns,
|
||||
} = normalizeOptions(opts);
|
||||
@ -144,7 +182,7 @@ export default function buildPreset(
|
||||
const transformTargets = forceAllTransforms || hasUglifyTarget ? {} : targets;
|
||||
|
||||
const transformations = filterItems(
|
||||
pluginList,
|
||||
stage3 ? pluginList : pluginListWithoutStage3,
|
||||
include.plugins,
|
||||
exclude.plugins,
|
||||
transformTargets,
|
||||
@ -157,7 +195,7 @@ export default function buildPreset(
|
||||
polyfillTargets = getBuiltInTargets(targets);
|
||||
|
||||
polyfills = filterItems(
|
||||
builtInsList,
|
||||
stage3 ? builtInsList : builtInsListWithoutStage3,
|
||||
include.builtIns,
|
||||
exclude.builtIns,
|
||||
polyfillTargets,
|
||||
@ -166,15 +204,19 @@ export default function buildPreset(
|
||||
}
|
||||
|
||||
const plugins = [];
|
||||
|
||||
if (modules !== false && moduleTransformations[modules]) {
|
||||
plugins.push([availablePlugins[moduleTransformations[modules]], { loose }]);
|
||||
}
|
||||
const pluginUseBuiltIns = useBuiltIns !== false;
|
||||
|
||||
// NOTE: not giving spec here yet to avoid compatibility issues when
|
||||
// babel-plugin-transform-es2015-modules-commonjs gets its spec mode
|
||||
if (modules !== false && moduleTransformations[modules]) {
|
||||
plugins.push([getPlugin(moduleTransformations[modules]), { loose }]);
|
||||
}
|
||||
|
||||
transformations.forEach(pluginName =>
|
||||
plugins.push([availablePlugins[pluginName], { spec, loose }]),
|
||||
plugins.push([
|
||||
getPlugin(pluginName),
|
||||
{ spec, loose, useBuiltIns: pluginUseBuiltIns },
|
||||
]),
|
||||
);
|
||||
|
||||
const regenerator = transformations.has("transform-regenerator");
|
||||
|
||||
@ -91,15 +91,6 @@ export const validateBoolOption = (
|
||||
return value;
|
||||
};
|
||||
|
||||
export const validateLooseOption = (looseOpt: boolean) =>
|
||||
validateBoolOption("loose", looseOpt, false);
|
||||
|
||||
export const validateSpecOption = (specOpt: boolean) =>
|
||||
validateBoolOption("spec", specOpt, false);
|
||||
|
||||
export const validateForceAllTransformsOption = (forceAllTransforms: boolean) =>
|
||||
validateBoolOption("forceAllTransforms", forceAllTransforms, false);
|
||||
|
||||
export const validateIgnoreBrowserslistConfig = (
|
||||
ignoreBrowserslistConfig: boolean,
|
||||
) =>
|
||||
@ -161,16 +152,19 @@ export default function normalizeOptions(opts: Options) {
|
||||
configPath: validateConfigPathOption(opts.configPath),
|
||||
debug: opts.debug,
|
||||
exclude: validateIncludesAndExcludes(opts.exclude, "exclude"),
|
||||
forceAllTransforms: validateForceAllTransformsOption(
|
||||
forceAllTransforms: validateBoolOption(
|
||||
"forceAllTransforms",
|
||||
opts.forceAllTransforms,
|
||||
false,
|
||||
),
|
||||
ignoreBrowserslistConfig: validateIgnoreBrowserslistConfig(
|
||||
opts.ignoreBrowserslistConfig,
|
||||
),
|
||||
include: validateIncludesAndExcludes(opts.include, "include"),
|
||||
loose: validateLooseOption(opts.loose),
|
||||
loose: validateBoolOption("loose", opts.loose, false),
|
||||
modules: validateModulesOption(opts.modules),
|
||||
spec: validateSpecOption(opts.spec),
|
||||
spec: validateBoolOption("loose", opts.spec, false),
|
||||
stage3: validateBoolOption("stage3", opts.stage3, false),
|
||||
targets: opts.targets,
|
||||
useBuiltIns: validateUseBuiltInsOption(opts.useBuiltIns),
|
||||
};
|
||||
|
||||
@ -21,6 +21,7 @@ export type Options = {
|
||||
loose: boolean,
|
||||
modules: ModuleOption,
|
||||
spec: boolean,
|
||||
stage3: boolean,
|
||||
targets: Targets,
|
||||
useBuiltIns: BuiltInsOption,
|
||||
};
|
||||
|
||||
@ -51,3 +51,13 @@ export const prettifyTargets = (targets: Targets): Object => {
|
||||
return results;
|
||||
}, {});
|
||||
};
|
||||
|
||||
export const filterStageFromList = (list: any, stageList: any) => {
|
||||
return Object.keys(list).reduce((result, item) => {
|
||||
if (!stageList[item]) {
|
||||
result[item] = list[item];
|
||||
}
|
||||
|
||||
return result;
|
||||
}, {});
|
||||
};
|
||||
|
||||
@ -0,0 +1 @@
|
||||
import 'babel-polyfill';
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"presets": [
|
||||
["../../lib", {
|
||||
"debug": true,
|
||||
"targets": {
|
||||
"browsers": "chrome 60"
|
||||
},
|
||||
"stage3": true,
|
||||
"useBuiltIns": "entry"
|
||||
}]
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
babel-preset-env: `DEBUG` option
|
||||
|
||||
Using targets:
|
||||
{
|
||||
"chrome": "60"
|
||||
}
|
||||
|
||||
Using modules transform: commonjs
|
||||
|
||||
Using plugins:
|
||||
transform-async-generator-functions { "chrome":"60" }
|
||||
syntax-object-rest-spread { "chrome":"60" }
|
||||
transform-optional-catch-binding { "chrome":"60" }
|
||||
transform-unicode-property-regex { "chrome":"60" }
|
||||
|
||||
Using polyfills with `entry` option:
|
||||
|
||||
[src/in.js] Replaced `babel-polyfill` with the following polyfills:
|
||||
es7.promise.finally { "chrome":"60" }
|
||||
web.timers { "chrome":"60" }
|
||||
web.immediate { "chrome":"60" }
|
||||
web.dom.iterable { "chrome":"60" }
|
||||
src/in.js -> lib/in.js
|
||||
@ -0,0 +1 @@
|
||||
import 'babel-polyfill';
|
||||
@ -0,0 +1,9 @@
|
||||
{
|
||||
"presets": [
|
||||
["../../lib", {
|
||||
"debug": true,
|
||||
"stage3": true,
|
||||
"useBuiltIns": "entry"
|
||||
}]
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,128 @@
|
||||
babel-preset-env: `DEBUG` option
|
||||
|
||||
Using targets:
|
||||
{}
|
||||
|
||||
Using modules transform: commonjs
|
||||
|
||||
Using plugins:
|
||||
check-es2015-constants {}
|
||||
transform-es2015-arrow-functions {}
|
||||
transform-es2015-block-scoped-functions {}
|
||||
transform-es2015-block-scoping {}
|
||||
transform-es2015-classes {}
|
||||
transform-es2015-computed-properties {}
|
||||
transform-es2015-destructuring {}
|
||||
transform-es2015-duplicate-keys {}
|
||||
transform-es2015-for-of {}
|
||||
transform-es2015-function-name {}
|
||||
transform-es2015-literals {}
|
||||
transform-es2015-object-super {}
|
||||
transform-es2015-parameters {}
|
||||
transform-es2015-shorthand-properties {}
|
||||
transform-es2015-spread {}
|
||||
transform-es2015-sticky-regex {}
|
||||
transform-es2015-template-literals {}
|
||||
transform-es2015-typeof-symbol {}
|
||||
transform-es2015-unicode-regex {}
|
||||
transform-new-target {}
|
||||
transform-regenerator {}
|
||||
transform-exponentiation-operator {}
|
||||
transform-async-to-generator {}
|
||||
syntax-trailing-function-commas {}
|
||||
transform-async-generator-functions {}
|
||||
transform-object-rest-spread {}
|
||||
transform-optional-catch-binding {}
|
||||
transform-unicode-property-regex {}
|
||||
|
||||
Using polyfills with `entry` option:
|
||||
|
||||
[src/in.js] Replaced `babel-polyfill` with the following polyfills:
|
||||
es6.typed.array-buffer {}
|
||||
es6.typed.data-view {}
|
||||
es6.typed.int8-array {}
|
||||
es6.typed.uint8-array {}
|
||||
es6.typed.uint8-clamped-array {}
|
||||
es6.typed.int16-array {}
|
||||
es6.typed.uint16-array {}
|
||||
es6.typed.int32-array {}
|
||||
es6.typed.uint32-array {}
|
||||
es6.typed.float32-array {}
|
||||
es6.typed.float64-array {}
|
||||
es6.map {}
|
||||
es6.set {}
|
||||
es6.weak-map {}
|
||||
es6.weak-set {}
|
||||
es6.reflect.apply {}
|
||||
es6.reflect.construct {}
|
||||
es6.reflect.define-property {}
|
||||
es6.reflect.delete-property {}
|
||||
es6.reflect.get {}
|
||||
es6.reflect.get-own-property-descriptor {}
|
||||
es6.reflect.get-prototype-of {}
|
||||
es6.reflect.has {}
|
||||
es6.reflect.is-extensible {}
|
||||
es6.reflect.own-keys {}
|
||||
es6.reflect.prevent-extensions {}
|
||||
es6.reflect.set {}
|
||||
es6.reflect.set-prototype-of {}
|
||||
es6.promise {}
|
||||
es6.symbol {}
|
||||
es6.object.assign {}
|
||||
es6.object.is {}
|
||||
es6.object.set-prototype-of {}
|
||||
es6.function.name {}
|
||||
es6.string.raw {}
|
||||
es6.string.from-code-point {}
|
||||
es6.string.code-point-at {}
|
||||
es6.string.repeat {}
|
||||
es6.string.starts-with {}
|
||||
es6.string.ends-with {}
|
||||
es6.string.includes {}
|
||||
es6.regexp.flags {}
|
||||
es6.regexp.match {}
|
||||
es6.regexp.replace {}
|
||||
es6.regexp.split {}
|
||||
es6.regexp.search {}
|
||||
es6.array.from {}
|
||||
es6.array.of {}
|
||||
es6.array.copy-within {}
|
||||
es6.array.find {}
|
||||
es6.array.find-index {}
|
||||
es6.array.fill {}
|
||||
es6.array.iterator {}
|
||||
es6.number.is-finite {}
|
||||
es6.number.is-integer {}
|
||||
es6.number.is-safe-integer {}
|
||||
es6.number.is-nan {}
|
||||
es6.number.epsilon {}
|
||||
es6.number.min-safe-integer {}
|
||||
es6.number.max-safe-integer {}
|
||||
es6.math.acosh {}
|
||||
es6.math.asinh {}
|
||||
es6.math.atanh {}
|
||||
es6.math.cbrt {}
|
||||
es6.math.clz32 {}
|
||||
es6.math.cosh {}
|
||||
es6.math.expm1 {}
|
||||
es6.math.fround {}
|
||||
es6.math.hypot {}
|
||||
es6.math.imul {}
|
||||
es6.math.log1p {}
|
||||
es6.math.log10 {}
|
||||
es6.math.log2 {}
|
||||
es6.math.sign {}
|
||||
es6.math.sinh {}
|
||||
es6.math.tanh {}
|
||||
es6.math.trunc {}
|
||||
es7.array.includes {}
|
||||
es7.object.values {}
|
||||
es7.object.entries {}
|
||||
es7.object.get-own-property-descriptors {}
|
||||
es7.string.pad-start {}
|
||||
es7.string.pad-end {}
|
||||
es7.promise.finally {}
|
||||
web.timers {}
|
||||
web.immediate {}
|
||||
web.dom.iterable {}
|
||||
src/in.js -> lib/in.js
|
||||
@ -0,0 +1,6 @@
|
||||
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
|
||||
let n = { x, y, ...z };
|
||||
async function* agf() {
|
||||
await 1;
|
||||
yield 2;
|
||||
}
|
||||
48
experimental/babel-preset-env/test/fixtures/preset-options/stage3-use-builtins-entry/expected.js
vendored
Normal file
48
experimental/babel-preset-env/test/fixtures/preset-options/stage3-use-builtins-entry/expected.js
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
"use strict";
|
||||
|
||||
var _asyncGenerator = function () { function AwaitValue(value) { this.value = value; } function AsyncGenerator(gen) { var front, back; function send(key, arg) { return new Promise(function (resolve, reject) { var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null }; if (back) { back = back.next = request; } else { front = back = request; resume(key, arg); } }); } function resume(key, arg) { try { var result = gen[key](arg); var value = result.value; if (value instanceof AwaitValue) { Promise.resolve(value.value).then(function (arg) { resume("next", arg); }, function (arg) { resume("throw", arg); }); } else { settle(result.done ? "return" : "normal", result.value); } } catch (err) { settle("throw", err); } } function settle(type, value) { switch (type) { case "return": front.resolve({ value: value, done: true }); break; case "throw": front.reject(value); break; default: front.resolve({ value: value, done: false }); break; } front = front.next; if (front) { resume(front.key, front.arg); } else { back = null; } } this._invoke = send; if (typeof gen.return !== "function") { this.return = undefined; } } if (typeof Symbol === "function" && Symbol.asyncIterator) { AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; }; } AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); }; AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); }; AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); }; return { wrap: function wrap(fn) { return function () { return new AsyncGenerator(fn.apply(this, arguments)); }; }, await: function _await(value) { return new AwaitValue(value); } }; }();
|
||||
|
||||
var agf = function () {
|
||||
var _ref = _asyncGenerator.wrap(
|
||||
/*#__PURE__*/
|
||||
regeneratorRuntime.mark(function _callee() {
|
||||
return regeneratorRuntime.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
_context.next = 2;
|
||||
return _asyncGenerator.await(1);
|
||||
|
||||
case 2:
|
||||
_context.next = 4;
|
||||
return 2;
|
||||
|
||||
case 4:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee, this);
|
||||
}));
|
||||
|
||||
return function agf() {
|
||||
return _ref.apply(this, arguments);
|
||||
};
|
||||
}();
|
||||
|
||||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
||||
|
||||
var _x$y$a$b = {
|
||||
x: 1,
|
||||
y: 2,
|
||||
a: 3,
|
||||
b: 4
|
||||
},
|
||||
x = _x$y$a$b.x,
|
||||
y = _x$y$a$b.y,
|
||||
z = _objectWithoutProperties(_x$y$a$b, ["x", "y"]);
|
||||
|
||||
var n = Object.assign({
|
||||
x: x,
|
||||
y: y
|
||||
}, z);
|
||||
@ -0,0 +1,8 @@
|
||||
{
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"stage3": true,
|
||||
"useBuiltIns": "entry"
|
||||
}]
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
|
||||
let n = { x, y, ...z };
|
||||
async function* agf() {
|
||||
await 1;
|
||||
yield 2;
|
||||
}
|
||||
56
experimental/babel-preset-env/test/fixtures/preset-options/stage3-use-builtins-usage/expected.js
vendored
Normal file
56
experimental/babel-preset-env/test/fixtures/preset-options/stage3-use-builtins-usage/expected.js
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
|
||||
var _asyncGenerator = function () { function AwaitValue(value) { this.value = value; } function AsyncGenerator(gen) { var front, back; function send(key, arg) { return new Promise(function (resolve, reject) { var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null }; if (back) { back = back.next = request; } else { front = back = request; resume(key, arg); } }); } function resume(key, arg) { try { var result = gen[key](arg); var value = result.value; if (value instanceof AwaitValue) { Promise.resolve(value.value).then(function (arg) { resume("next", arg); }, function (arg) { resume("throw", arg); }); } else { settle(result.done ? "return" : "normal", result.value); } } catch (err) { settle("throw", err); } } function settle(type, value) { switch (type) { case "return": front.resolve({ value: value, done: true }); break; case "throw": front.reject(value); break; default: front.resolve({ value: value, done: false }); break; } front = front.next; if (front) { resume(front.key, front.arg); } else { back = null; } } this._invoke = send; if (typeof gen.return !== "function") { this.return = undefined; } } if (typeof Symbol === "function" && Symbol.asyncIterator) { AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; }; } AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); }; AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); }; AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); }; return { wrap: function wrap(fn) { return function () { return new AsyncGenerator(fn.apply(this, arguments)); }; }, await: function _await(value) { return new AwaitValue(value); } }; }();
|
||||
|
||||
var agf = function () {
|
||||
var _ref = _asyncGenerator.wrap(
|
||||
/*#__PURE__*/
|
||||
regeneratorRuntime.mark(function _callee() {
|
||||
return regeneratorRuntime.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
_context.next = 2;
|
||||
return _asyncGenerator.await(1);
|
||||
|
||||
case 2:
|
||||
_context.next = 4;
|
||||
return 2;
|
||||
|
||||
case 4:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee, this);
|
||||
}));
|
||||
|
||||
return function agf() {
|
||||
return _ref.apply(this, arguments);
|
||||
};
|
||||
}();
|
||||
|
||||
require("babel-polyfill/lib/core-js/modules/es6.symbol");
|
||||
|
||||
require("babel-polyfill/lib/core-js/modules/es6.promise");
|
||||
|
||||
require("babel-polyfill/lib/regenerator-runtime/runtime");
|
||||
|
||||
require("babel-polyfill/lib/core-js/modules/es6.object.assign");
|
||||
|
||||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
||||
|
||||
var _x$y$a$b = {
|
||||
x: 1,
|
||||
y: 2,
|
||||
a: 3,
|
||||
b: 4
|
||||
},
|
||||
x = _x$y$a$b.x,
|
||||
y = _x$y$a$b.y,
|
||||
z = _objectWithoutProperties(_x$y$a$b, ["x", "y"]);
|
||||
|
||||
var n = Object.assign({
|
||||
x: x,
|
||||
y: y
|
||||
}, z);
|
||||
@ -0,0 +1,8 @@
|
||||
{
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"stage3": true,
|
||||
"useBuiltIns": "usage"
|
||||
}]
|
||||
]
|
||||
}
|
||||
6
experimental/babel-preset-env/test/fixtures/preset-options/stage3/actual.js
vendored
Normal file
6
experimental/babel-preset-env/test/fixtures/preset-options/stage3/actual.js
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
|
||||
let n = { x, y, ...z };
|
||||
async function* agf() {
|
||||
await 1;
|
||||
yield 2;
|
||||
}
|
||||
50
experimental/babel-preset-env/test/fixtures/preset-options/stage3/expected.js
vendored
Normal file
50
experimental/babel-preset-env/test/fixtures/preset-options/stage3/expected.js
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
"use strict";
|
||||
|
||||
var _asyncGenerator = function () { function AwaitValue(value) { this.value = value; } function AsyncGenerator(gen) { var front, back; function send(key, arg) { return new Promise(function (resolve, reject) { var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null }; if (back) { back = back.next = request; } else { front = back = request; resume(key, arg); } }); } function resume(key, arg) { try { var result = gen[key](arg); var value = result.value; if (value instanceof AwaitValue) { Promise.resolve(value.value).then(function (arg) { resume("next", arg); }, function (arg) { resume("throw", arg); }); } else { settle(result.done ? "return" : "normal", result.value); } } catch (err) { settle("throw", err); } } function settle(type, value) { switch (type) { case "return": front.resolve({ value: value, done: true }); break; case "throw": front.reject(value); break; default: front.resolve({ value: value, done: false }); break; } front = front.next; if (front) { resume(front.key, front.arg); } else { back = null; } } this._invoke = send; if (typeof gen.return !== "function") { this.return = undefined; } } if (typeof Symbol === "function" && Symbol.asyncIterator) { AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; }; } AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); }; AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); }; AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); }; return { wrap: function wrap(fn) { return function () { return new AsyncGenerator(fn.apply(this, arguments)); }; }, await: function _await(value) { return new AwaitValue(value); } }; }();
|
||||
|
||||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
||||
|
||||
var agf = function () {
|
||||
var _ref = _asyncGenerator.wrap(
|
||||
/*#__PURE__*/
|
||||
regeneratorRuntime.mark(function _callee() {
|
||||
return regeneratorRuntime.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
_context.next = 2;
|
||||
return _asyncGenerator.await(1);
|
||||
|
||||
case 2:
|
||||
_context.next = 4;
|
||||
return 2;
|
||||
|
||||
case 4:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee, this);
|
||||
}));
|
||||
|
||||
return function agf() {
|
||||
return _ref.apply(this, arguments);
|
||||
};
|
||||
}();
|
||||
|
||||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
||||
|
||||
var _x$y$a$b = {
|
||||
x: 1,
|
||||
y: 2,
|
||||
a: 3,
|
||||
b: 4
|
||||
},
|
||||
x = _x$y$a$b.x,
|
||||
y = _x$y$a$b.y,
|
||||
z = _objectWithoutProperties(_x$y$a$b, ["x", "y"]);
|
||||
|
||||
var n = _extends({
|
||||
x: x,
|
||||
y: y
|
||||
}, z);
|
||||
7
experimental/babel-preset-env/test/fixtures/preset-options/stage3/options.json
vendored
Normal file
7
experimental/babel-preset-env/test/fixtures/preset-options/stage3/options.json
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"presets": [
|
||||
["../../../../lib", {
|
||||
"stage3": true
|
||||
}]
|
||||
]
|
||||
}
|
||||
@ -6,11 +6,9 @@ const assert = require("assert");
|
||||
const {
|
||||
checkDuplicateIncludeExcludes,
|
||||
normalizePluginNames,
|
||||
validateForceAllTransformsOption,
|
||||
validateBoolOption,
|
||||
validateIncludesAndExcludes,
|
||||
validateLooseOption,
|
||||
validateModulesOption,
|
||||
validateSpecOption,
|
||||
} = normalizeOptions;
|
||||
|
||||
describe("normalize-options", () => {
|
||||
@ -39,31 +37,25 @@ describe("normalize-options", () => {
|
||||
});
|
||||
});
|
||||
|
||||
const testBoolOption = validator => {
|
||||
describe(validator.name, () => {
|
||||
describe("validateBoolOption", () => {
|
||||
it("`undefined` option returns false", () => {
|
||||
assert(validator() === false);
|
||||
assert(validateBoolOption("test", undefined, false) === false);
|
||||
});
|
||||
|
||||
it("`false` option returns false", () => {
|
||||
assert(validator(false) === false);
|
||||
assert(validateBoolOption("test", false, false) === false);
|
||||
});
|
||||
|
||||
it("`true` option returns true", () => {
|
||||
assert(validator(true) === true);
|
||||
assert(validateBoolOption("test", true, false) === true);
|
||||
});
|
||||
|
||||
it("array option is invalid", () => {
|
||||
assert.throws(() => {
|
||||
validateLooseOption([]);
|
||||
validateBoolOption("test", [], false);
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
testBoolOption(validateLooseOption);
|
||||
testBoolOption(validateSpecOption);
|
||||
testBoolOption(validateForceAllTransformsOption);
|
||||
|
||||
describe("checkDuplicateIncludeExcludes", function() {
|
||||
it("should throw if duplicate names in both", function() {
|
||||
|
||||
@ -558,6 +558,14 @@ babel-helper-regex@^6.24.1:
|
||||
babel-types "^6.24.1"
|
||||
lodash "^4.2.0"
|
||||
|
||||
babel-helper-regex@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
|
||||
dependencies:
|
||||
babel-runtime "^6.26.0"
|
||||
babel-types "^6.26.0"
|
||||
lodash "^4.17.4"
|
||||
|
||||
babel-helper-remap-async-to-generator@7.0.0-alpha.16:
|
||||
version "7.0.0-alpha.16"
|
||||
resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-7.0.0-alpha.16.tgz#3c68be8d7bebe6e64bfcd0d9a21553e859a5dc07"
|
||||
@ -709,6 +717,10 @@ babel-plugin-syntax-async-functions@^6.8.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
|
||||
|
||||
babel-plugin-syntax-async-generators@7.0.0-beta.0:
|
||||
version "7.0.0-beta.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-7.0.0-beta.0.tgz#a89061e968d4f4c2ee2f8a5b9c84eed19ec48488"
|
||||
|
||||
babel-plugin-syntax-async-generators@^6.5.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a"
|
||||
@ -757,10 +769,18 @@ babel-plugin-syntax-function-bind@^6.8.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46"
|
||||
|
||||
babel-plugin-syntax-object-rest-spread@7.0.0-beta.0:
|
||||
version "7.0.0-beta.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-7.0.0-beta.0.tgz#34a1eee484acfb0a89effc364e386a8d769286eb"
|
||||
|
||||
babel-plugin-syntax-object-rest-spread@^6.8.0:
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
|
||||
|
||||
babel-plugin-syntax-optional-catch-binding@7.0.0-beta.0:
|
||||
version "7.0.0-beta.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-optional-catch-binding/-/babel-plugin-syntax-optional-catch-binding-7.0.0-beta.0.tgz#9c92545c42865954c544f480648e179ba15757fb"
|
||||
|
||||
babel-plugin-syntax-trailing-function-commas@7.0.0-alpha.16:
|
||||
version "7.0.0-alpha.16"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-alpha.16.tgz#daed195b88dcc26db401d51a58d346808b8e4585"
|
||||
@ -773,6 +793,13 @@ babel-plugin-syntax-trailing-function-commas@^6.22.0:
|
||||
version "6.22.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
|
||||
|
||||
babel-plugin-transform-async-generator-functions@7.0.0-beta.0:
|
||||
version "7.0.0-beta.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-7.0.0-beta.0.tgz#df506a7b90fe7a707f8ca8f309435df6b651ccf4"
|
||||
dependencies:
|
||||
babel-helper-remap-async-to-generator "7.0.0-beta.0"
|
||||
babel-plugin-syntax-async-generators "7.0.0-beta.0"
|
||||
|
||||
babel-plugin-transform-async-generator-functions@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db"
|
||||
@ -1327,6 +1354,12 @@ babel-plugin-transform-new-target@7.0.0-beta.0:
|
||||
version "7.0.0-beta.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-new-target/-/babel-plugin-transform-new-target-7.0.0-beta.0.tgz#0ded2d30b0e889a2916384d4955de96ddd2c2764"
|
||||
|
||||
babel-plugin-transform-object-rest-spread@7.0.0-beta.0:
|
||||
version "7.0.0-beta.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-7.0.0-beta.0.tgz#51b6cabe5b55dc63d4fe0287b3df23a7691b11d4"
|
||||
dependencies:
|
||||
babel-plugin-syntax-object-rest-spread "7.0.0-beta.0"
|
||||
|
||||
babel-plugin-transform-object-rest-spread@^6.22.0:
|
||||
version "6.23.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921"
|
||||
@ -1334,6 +1367,12 @@ babel-plugin-transform-object-rest-spread@^6.22.0:
|
||||
babel-plugin-syntax-object-rest-spread "^6.8.0"
|
||||
babel-runtime "^6.22.0"
|
||||
|
||||
babel-plugin-transform-optional-catch-binding@7.0.0-beta.0:
|
||||
version "7.0.0-beta.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-optional-catch-binding/-/babel-plugin-transform-optional-catch-binding-7.0.0-beta.0.tgz#363bcd26e133dd28ba1eb9b2680d1bf99c250294"
|
||||
dependencies:
|
||||
babel-plugin-syntax-optional-catch-binding "7.0.0-beta.0"
|
||||
|
||||
babel-plugin-transform-regenerator@7.0.0-alpha.16:
|
||||
version "7.0.0-alpha.16"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-7.0.0-alpha.16.tgz#892ccde496b9187c8517ca01eb1e86b7636e58ea"
|
||||
@ -1371,6 +1410,13 @@ babel-plugin-transform-strict-mode@^6.24.1:
|
||||
babel-runtime "^6.22.0"
|
||||
babel-types "^6.24.1"
|
||||
|
||||
babel-plugin-transform-unicode-property-regex@^2.0.5:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-unicode-property-regex/-/babel-plugin-transform-unicode-property-regex-2.0.5.tgz#24922190f9598384d258a6c8e7409309dc6f3898"
|
||||
dependencies:
|
||||
babel-helper-regex "^6.26.0"
|
||||
regexpu-core "^4.1.3"
|
||||
|
||||
babel-polyfill@7.0.0-alpha.16:
|
||||
version "7.0.0-alpha.16"
|
||||
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-7.0.0-alpha.16.tgz#3cd865f5eb18dd065916fac33aafcf4617ca2956"
|
||||
@ -1530,6 +1576,13 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0:
|
||||
core-js "^2.4.0"
|
||||
regenerator-runtime "^0.10.0"
|
||||
|
||||
babel-runtime@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
|
||||
dependencies:
|
||||
core-js "^2.4.0"
|
||||
regenerator-runtime "^0.11.0"
|
||||
|
||||
babel-template@7.0.0-alpha.16:
|
||||
version "7.0.0-alpha.16"
|
||||
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-7.0.0-alpha.16.tgz#f8bec2b5074e150c47b415d13db231b15e45598d"
|
||||
@ -1625,6 +1678,15 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24
|
||||
lodash "^4.2.0"
|
||||
to-fast-properties "^1.0.1"
|
||||
|
||||
babel-types@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
|
||||
dependencies:
|
||||
babel-runtime "^6.26.0"
|
||||
esutils "^2.0.2"
|
||||
lodash "^4.17.4"
|
||||
to-fast-properties "^1.0.3"
|
||||
|
||||
babylon@7.0.0-beta.17:
|
||||
version "7.0.0-beta.17"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.17.tgz#2aad4d6764f409dfb3ac216d855dc93d70d37911"
|
||||
@ -1633,14 +1695,14 @@ babylon@7.0.0-beta.22:
|
||||
version "7.0.0-beta.22"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.22.tgz#74f0ad82ed7c7c3cfeab74cf684f815104161b65"
|
||||
|
||||
babylon@^6.11.0, babylon@^6.17.4:
|
||||
version "6.17.4"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a"
|
||||
|
||||
babylon@^6.15.0, babylon@^6.17.0:
|
||||
babylon@^6.11.0, babylon@^6.15.0, babylon@^6.17.0:
|
||||
version "6.17.0"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.0.tgz#37da948878488b9c4e3c4038893fa3314b3fc932"
|
||||
|
||||
babylon@^6.17.4:
|
||||
version "6.17.4"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a"
|
||||
|
||||
balanced-match@^0.4.1:
|
||||
version "0.4.2"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
|
||||
@ -1694,7 +1756,14 @@ browser-stdout@1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
|
||||
|
||||
browserslist@^2.1.2, browserslist@^2.4.0:
|
||||
browserslist@^2.1.2:
|
||||
version "2.1.4"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.1.4.tgz#cc526af4a1312b7d2e05653e56d0c8ab70c0e053"
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30000670"
|
||||
electron-to-chromium "^1.3.11"
|
||||
|
||||
browserslist@^2.4.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8"
|
||||
dependencies:
|
||||
@ -1739,9 +1808,13 @@ camelcase@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
|
||||
|
||||
caniuse-lite@^1.0.30000670:
|
||||
version "1.0.30000676"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000676.tgz#1e962123f48073f0c51c4ea0651dd64d25786498"
|
||||
|
||||
caniuse-lite@^1.0.30000718:
|
||||
version "1.0.30000721"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000721.tgz#931a21a7bd85016300328d21f126d84b73437d35"
|
||||
version "1.0.30000733"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000733.tgz#ebfc48254117cc0c66197a4536cb4397a6cfbccd"
|
||||
|
||||
caseless@~0.11.0:
|
||||
version "0.11.0"
|
||||
@ -1957,9 +2030,9 @@ commoner@^0.10.1:
|
||||
q "^1.1.2"
|
||||
recast "^0.11.17"
|
||||
|
||||
compat-table@kangax/compat-table#d88c80ea6dcbc7064112eb46bb020718107892f7:
|
||||
compat-table@kangax/compat-table#b8477cc0f6d65c000c46213e654d19f350de9fa8:
|
||||
version "0.0.0"
|
||||
resolved "https://codeload.github.com/kangax/compat-table/tar.gz/d88c80ea6dcbc7064112eb46bb020718107892f7"
|
||||
resolved "https://codeload.github.com/kangax/compat-table/tar.gz/b8477cc0f6d65c000c46213e654d19f350de9fa8"
|
||||
dependencies:
|
||||
babel-core latest
|
||||
babel-polyfill latest
|
||||
@ -2231,9 +2304,13 @@ ecc-jsbn@~0.1.1:
|
||||
dependencies:
|
||||
jsbn "~0.1.0"
|
||||
|
||||
electron-to-chromium@^1.3.11:
|
||||
version "1.3.13"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.13.tgz#1b3a5eace6e087bb5e257a100b0cbfe81b2891fc"
|
||||
|
||||
electron-to-chromium@^1.3.18:
|
||||
version "1.3.19"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.19.tgz#73d97b0e8b05aa776cedf3cdce7fdc0538037675"
|
||||
version "1.3.21"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.21.tgz#a967ebdcfe8ed0083fc244d1894022a8e8113ea2"
|
||||
|
||||
elegant-spinner@^1.0.1:
|
||||
version "1.0.1"
|
||||
@ -4204,14 +4281,28 @@ regenerate-unicode-properties@^5.0.6:
|
||||
dependencies:
|
||||
regenerate "^1.3.2"
|
||||
|
||||
regenerate-unicode-properties@^5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-5.1.1.tgz#f5b947b5b7514b79ce58a756659724fa9444c06b"
|
||||
dependencies:
|
||||
regenerate "^1.3.2"
|
||||
|
||||
regenerate@^1.2.1, regenerate@^1.3.2, regenerate@latest:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
|
||||
|
||||
regenerate@^1.3.3:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
|
||||
|
||||
regenerator-runtime@^0.10.0:
|
||||
version "0.10.5"
|
||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
|
||||
|
||||
regenerator-runtime@^0.11.0:
|
||||
version "0.11.0"
|
||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
|
||||
|
||||
regenerator-transform@0.10.0:
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.0.tgz#f9ab3eac9cc2de38431d996a6a8abf1c50f2e459"
|
||||
@ -4254,6 +4345,17 @@ regexpu-core@^4.0.2:
|
||||
unicode-match-property-ecmascript "^1.0.1"
|
||||
unicode-match-property-value-ecmascript "^1.0.0"
|
||||
|
||||
regexpu-core@^4.1.3:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.1.3.tgz#fb81616dbbc2a917a7419b33f8379144f51eb8d0"
|
||||
dependencies:
|
||||
regenerate "^1.3.3"
|
||||
regenerate-unicode-properties "^5.1.1"
|
||||
regjsgen "^0.3.0"
|
||||
regjsparser "^0.2.1"
|
||||
unicode-match-property-ecmascript "^1.0.3"
|
||||
unicode-match-property-value-ecmascript "^1.0.1"
|
||||
|
||||
regjsgen@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
|
||||
@ -4296,7 +4398,7 @@ replace-ext@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
|
||||
|
||||
request@2.79.0:
|
||||
request@2.79.0, request@^2.55.0:
|
||||
version "2.79.0"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
|
||||
dependencies:
|
||||
@ -4321,7 +4423,7 @@ request@2.79.0:
|
||||
tunnel-agent "~0.4.1"
|
||||
uuid "^3.0.0"
|
||||
|
||||
request@^2.55.0, request@^2.81.0:
|
||||
request@^2.81.0:
|
||||
version "2.81.0"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
|
||||
dependencies:
|
||||
@ -4784,7 +4886,7 @@ through@^2.3.6:
|
||||
version "2.3.8"
|
||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||
|
||||
to-fast-properties@^1.0.1:
|
||||
to-fast-properties@^1.0.1, to-fast-properties@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
|
||||
|
||||
@ -4881,6 +4983,10 @@ unicode-canonical-property-names-ecmascript@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.0.tgz#20068aef4ada99ea2a80bf3ff8299a4db3e5bed0"
|
||||
|
||||
unicode-canonical-property-names-ecmascript@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.2.tgz#08ef9ec454392fc5ed99b08a70524ae3881c0306"
|
||||
|
||||
unicode-match-property-ecmascript@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.1.tgz#f380567fb895cc649828bea3a524fa34f4feb9da"
|
||||
@ -4888,14 +4994,29 @@ unicode-match-property-ecmascript@^1.0.1:
|
||||
unicode-canonical-property-names-ecmascript "^1.0.0"
|
||||
unicode-property-aliases-ecmascript "^1.0.1"
|
||||
|
||||
unicode-match-property-ecmascript@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.3.tgz#db9b1cb4ffc67e0c5583780b1b59370e4cbe97b9"
|
||||
dependencies:
|
||||
unicode-canonical-property-names-ecmascript "^1.0.2"
|
||||
unicode-property-aliases-ecmascript "^1.0.3"
|
||||
|
||||
unicode-match-property-value-ecmascript@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.0.tgz#393fa3e8baf4de2c415b95a8d7338587e3e563be"
|
||||
|
||||
unicode-match-property-value-ecmascript@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.1.tgz#fea059120a016f403afd3bf586162b4db03e0604"
|
||||
|
||||
unicode-property-aliases-ecmascript@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.2.tgz#b495f544c79c2a85cf3083c907c884ef154be1a0"
|
||||
|
||||
unicode-property-aliases-ecmascript@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.3.tgz#ac3522583b9e630580f916635333e00c5ead690d"
|
||||
|
||||
universalify@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.0.tgz#9eb1c4651debcc670cc94f1a75762332bb967778"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user