Update to core-js@3 (#7646)

### `@babel/runtime`
- Added `@babel/runtime-corejs3` package and `corejs: 3` options to `@babel/plugin-transform-runtime`.
- Added support of instance methods, fixes #8928.
- Added flag `proposals` (in `corejs: { version: 3, proposals: true }` format) for support all proposals polyfills from `core-js`.
- Used separate directories in runtime for `core-js` entry points with proposals and without.
- Used `get-iterator-method` helper for getting iterators, fixes #2500.
- As a cheap bonus, added support of IE8- (except some cases of `regenerator`).

### `@babel/polyfill`
- Should be deprecated in favor of separate usage required features from `core-js` and `regenerator-runtime` with an informative message.

### `@babel/preset-env`
- Uses for built-ins data from [`core-js-compat`](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) instead of `compat-table` since information from `compat-table` [is not enough](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat).
- `useBuilIns` now requires direct setting of `corejs` version option, without it will be used `2` by default and shown deprecation warning.
- Added support of minor `core-js` versions for simplify updating in the future.
- For preventing some order-related problems, polyfills in the both `core-js@3` plugins added on `post` stage in the order of `core-js-compat` data.
- Divided plugins and polyfills parts of `preset-env`, instead of 2 internal plugins for adding polyfills, we have 6: usage and entry versions of plugins for `core-js@2`, ### Current state:
`core-js@3`, `regenerator-runtime`.
- Added support `samsung` target (for Samsung Internet) since `core-js-compat` and `compat-table` now contains mapping for this, fixes #6602.

#### `useBuilIns: entry` with `corejs: 3`
- No longer transforms `@babel/polyfill`.
- Transforms **all possible** `core-js` entry points to import of related modules (based on data from [`core-js-compat`](https://unpkg.com/core-js-compat@3.0.0-beta.15/entries.json)).
- Since of this, we no longer need `shippedProposals` / `proposals` flags with `useBuilIns: entry`.
- Removes `regenerator-runtime/runtime` import where it's not required.

#### `useBuilIns: usage` with `corejs: 3`
- In addition to `shippedProposals`, added flag `proposals`  (in `corejs: { version: 3, proposals: true }` format) for polyfill all proposals from `core-js`.
- Fixed list of dependencies in built-in definitions.
- Improved the way of determination method / built-in name and source of this method.
- Adds import of required polyfills on `MemberExpression`, `ObjectPattern`, `in` operator.
- Adds import of required polyfills on access to global object properties.
- Adds import of all required common iterators on all syntax features which use iterators protocol (`for-of`, destructuring, spread, `yield` delegation, etc.).
- Adds import of promises on syntax features which use promises (async functions/generators, dynamic import, etc.), fixes #9250, #7402, etc.

### `core-js@2` stuff
I didn't want to tough `core-js@2`-related stuff, however
- Fixed some serious errors in definitions which breaks `Object.getOwnPropertySymbols`, `Symbol.toStringTag` logic, `Promise#finally`, `Array#forEach`, etc.
- `Array#flatMap` and trim methods moved to stable features as a part of ES2019 and loaded by deprecated `@babel/polyfill` and `@babel/preset-env` with `corejs: 2` option.
This commit is contained in:
Denis Pushkarev 2019-03-20 03:07:45 +07:00 committed by Nicolò Ribaudo
parent 7df0d16131
commit 3303b079c5
889 changed files with 18536 additions and 1575 deletions

View File

@ -5,8 +5,8 @@ package.json
lerna.json lerna.json
packages/babel-runtime packages/babel-runtime
!packages/babel-plugin-transform-runtime/scripts !packages/babel-plugin-transform-runtime/scripts
!packages/babel-runtime-corejs2/core-js.js
packages/babel-runtime-corejs2 packages/babel-runtime-corejs2
packages/babel-runtime-corejs3
packages/*/node_modules packages/*/node_modules
packages/*/lib packages/*/lib
packages/*/dist packages/*/dist

5
.gitignore vendored
View File

@ -38,6 +38,11 @@ package-lock.json
/packages/babel-runtime-corejs2/core-js/**/*.js /packages/babel-runtime-corejs2/core-js/**/*.js
!/packages/babel-runtime-corejs2/core-js/map.js !/packages/babel-runtime-corejs2/core-js/map.js
/packages/babel-runtime-corejs3/helpers/*.js
/packages/babel-runtime-corejs3/helpers/esm/*.js
/packages/babel-runtime-corejs3/core-js/**/*.js
/packages/babel-runtime-corejs3/core-js-stable/**/*.js
/packages/babel-register/test/.babel /packages/babel-register/test/.babel
/packages/babel-cli/test/tmp /packages/babel-cli/test/tmp
/packages/babel-node/test/tmp /packages/babel-node/test/tmp

View File

@ -27,16 +27,31 @@ declare module "lodash/merge" {
} }
declare module "semver" { declare module "semver" {
declare class SemVer {
build: Array<string>;
loose: ?boolean;
major: number;
minor: number;
patch: number;
prerelease: Array<string | number>;
raw: string;
version: string;
constructor(version: string | SemVer): SemVer;
}
declare module.exports: { declare module.exports: {
valid(v: string): boolean; SemVer: SemVer;
coerce(version: string | SemVer): SemVer | null;
gt(v1: string, v2: string): boolean; gt(v1: string, v2: string): boolean;
intersects(r1: string, r2: string): boolean;
lt(v1: string, v2: string): boolean; lt(v1: string, v2: string): boolean;
major(v: string): number; major(v: string): number;
minor(v: string): number; minor(v: string): number;
patch(v: string): number; patch(v: string): number;
satisfies(v1: string, r1: string): boolean; satisfies(v1: string, r1: string): boolean;
valid(v: string): boolean;
intersects(r1: string, r2: string): boolean;
} }
} }
@ -180,3 +195,13 @@ declare module "js-levenshtein" {
(string, string): number, (string, string): number,
}; };
} }
declare module "core-js-compat/data" {
declare type Target = "node" | "chrome" | "opera" | "edge" | "firefox" | "safari" | "ie" | "ios" | "android" | "electron" | "samsung";
declare module.exports: {
[key: string]: {
[target: Target]: string;
}
}
}

View File

@ -998,7 +998,7 @@ helpers.initializerDefineProperty = helper("7.0.0-beta.0")`
helpers.applyDecoratedDescriptor = helper("7.0.0-beta.0")` helpers.applyDecoratedDescriptor = helper("7.0.0-beta.0")`
export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context){ export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context){
var desc = {}; var desc = {};
Object['ke' + 'ys'](descriptor).forEach(function(key){ Object.keys(descriptor).forEach(function(key){
desc[key] = descriptor[key]; desc[key] = descriptor[key];
}); });
desc.enumerable = !!desc.enumerable; desc.enumerable = !!desc.enumerable;
@ -1019,7 +1019,7 @@ helpers.applyDecoratedDescriptor = helper("7.0.0-beta.0")`
if (desc.initializer === void 0){ if (desc.initializer === void 0){
// This is a hack to avoid this being processed by 'transform-runtime'. // This is a hack to avoid this being processed by 'transform-runtime'.
// See issue #9. // See issue #9.
Object['define' + 'Property'](target, property, desc); Object.defineProperty(target, property, desc);
desc = null; desc = null;
} }

View File

@ -8,7 +8,7 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.'); } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.'); }

View File

@ -1,6 +1,6 @@
var _class, _class2; var _class, _class2;
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
let A = (_class2 = class A { let A = (_class2 = class A {
foo() {} foo() {}

View File

@ -1,6 +1,6 @@
var _class2; var _class2;
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
let _class = (_class2 = class { let _class = (_class2 = class {
bar() {} bar() {}

View File

@ -7,7 +7,8 @@
"targets": { "targets": {
"node": 8 "node": 8
}, },
"useBuiltIns": "usage" "useBuiltIns": "usage",
"corejs": 3
} }
] ]
], ],

View File

@ -25,6 +25,8 @@
"@babel/helper-plugin-test-runner": "^7.0.0", "@babel/helper-plugin-test-runner": "^7.0.0",
"@babel/helpers": "^7.2.0", "@babel/helpers": "^7.2.0",
"@babel/plugin-transform-runtime": "^7.3.4", "@babel/plugin-transform-runtime": "^7.3.4",
"@babel/plugin-transform-member-expression-literals": "^7.2.0",
"@babel/plugin-transform-property-literals": "^7.2.0",
"@babel/preset-env": "^7.3.4", "@babel/preset-env": "^7.3.4",
"@babel/runtime": "^7.3.4", "@babel/runtime": "^7.3.4",
"@babel/template": "^7.0.0", "@babel/template": "^7.0.0",

View File

@ -8,43 +8,81 @@ const template = require("@babel/template");
const t = require("@babel/types"); const t = require("@babel/types");
const transformRuntime = require("../"); const transformRuntime = require("../");
const getCorejs2Definitions = require("../lib/definitions").default; const transformMemberExpressionLiterals = require("@babel/plugin-transform-member-expression-literals");
const corejs2Definitions = getCorejs2Definitions(); const transformPropertyLiterals = require("@babel/plugin-transform-property-literals");
const corejs2Definitions = require("../lib/runtime-corejs2-definitions").default();
const corejs3Definitions = require("../lib/runtime-corejs3-definitions").default();
writeHelpers("@babel/runtime"); writeHelpers("@babel/runtime");
writeCoreJS2("@babel/runtime-corejs2");
writeHelpers("@babel/runtime-corejs2", { corejs: 2 }); writeHelpers("@babel/runtime-corejs2", { corejs: 2 });
writeHelpers("@babel/runtime-corejs3", {
corejs: { version: 3, proposals: true },
});
function writeCoreJS2(runtimeName) { writeCoreJS({
const pkgDirname = getRuntimeRoot(runtimeName); corejs: 2,
proposals: true,
const paths = [ definitions: corejs2Definitions,
paths: [
"is-iterable", "is-iterable",
"get-iterator", "get-iterator",
// This was previously in definitions, but was removed to work around // This was previously in definitions, but was removed to work around
// zloirock/core-js#262. We need to keep it in @babel/runtime-corejs2 to // zloirock/core-js#262. We need to keep it in @babel/runtime-corejs2 to
// avoid a breaking change there. // avoid a breaking change there.
"symbol/async-iterator", "symbol/async-iterator",
]; ],
corejsRoot: "core-js/library/fn",
Object.keys(corejs2Definitions.builtins).forEach(key => { });
const path = corejs2Definitions.builtins[key]; writeCoreJS({
paths.push(path); corejs: 3,
proposals: false,
definitions: corejs3Definitions,
paths: [],
corejsRoot: "core-js-pure/stable",
});
writeCoreJS({
corejs: 3,
proposals: true,
definitions: corejs3Definitions,
paths: ["is-iterable", "get-iterator", "get-iterator-method"],
corejsRoot: "core-js-pure/features",
}); });
Object.keys(corejs2Definitions.methods).forEach(key => { function writeCoreJS({
const props = corejs2Definitions.methods[key]; corejs,
Object.keys(props).forEach(key2 => { proposals,
paths.push(props[key2]); definitions: { BuiltIns, StaticProperties, InstanceProperties },
paths,
corejsRoot,
}) {
const pkgDirname = getRuntimeRoot(`@babel/runtime-corejs${corejs}`);
Object.keys(BuiltIns).forEach(name => {
const { stable, path } = BuiltIns[name];
if (stable || proposals) paths.push(path);
});
Object.keys(StaticProperties).forEach(builtin => {
const props = StaticProperties[builtin];
Object.keys(props).forEach(name => {
const { stable, path } = props[name];
if (stable || proposals) paths.push(path);
}); });
}); });
paths.forEach(function(corePath) { if (InstanceProperties) {
Object.keys(InstanceProperties).forEach(name => {
const { stable, path } = InstanceProperties[name];
if (stable || proposals) paths.push(`instance/${path}`);
});
}
const runtimeRoot = proposals ? "core-js" : "core-js-stable";
paths.forEach(function(corejsPath) {
outputFile( outputFile(
path.join(pkgDirname, "core-js", `${corePath}.js`), path.join(pkgDirname, runtimeRoot, `${corejsPath}.js`),
`module.exports = require("core-js/library/fn/${corePath}");` `module.exports = require("${corejsRoot}/${corejsPath}");`
); );
}); });
} }
@ -118,6 +156,8 @@ function buildHelper(
presets: [[require("@babel/preset-env"), { modules: false }]], presets: [[require("@babel/preset-env"), { modules: false }]],
plugins: [ plugins: [
[transformRuntime, { corejs, useESModules: esm }], [transformRuntime, { corejs, useESModules: esm }],
[transformMemberExpressionLiterals],
[transformPropertyLiterals],
buildRuntimeRewritePlugin( buildRuntimeRewritePlugin(
runtimeName, runtimeName,
path.relative(path.dirname(helperFilename), pkgDirname), path.relative(path.dirname(helperFilename), pkgDirname),

View File

@ -1,168 +0,0 @@
import semver from "semver";
function hasMinVersion(minVersion, runtimeVersion) {
// If the range is unavailable, we're running the script during Babel's
// build process, and we want to assume that all versions are satisfied so
// that the built output will include all definitions.
if (!runtimeVersion) return true;
// semver.intersects() has some surprising behavior with comparing ranges
// with preprelease versions. We add '^' to ensure that we are always
// comparing ranges with ranges, which sidesteps this logic.
// For example:
//
// semver.intersects(`<7.0.1`, "7.0.0-beta.0") // false - surprising
// semver.intersects(`<7.0.1`, "^7.0.0-beta.0") // true - expected
//
// This is because the first falls back to
//
// semver.satisfies("7.0.0-beta.0", `<7.0.1`) // false - surprising
//
// and this fails because a prerelease version can only satisfy a range
// if it is a prerelease within the same major/minor/patch range.
//
// Note: If this is found to have issues, please also revist the logic in
// babel-core's availableHelper() API.
if (semver.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`;
return (
!semver.intersects(`<${minVersion}`, runtimeVersion) &&
!semver.intersects(`>=8.0.0`, runtimeVersion)
);
}
export default runtimeVersion => {
// Conditionally include 'Math' because it was not included in the 7.0.0
// release of '@babel/runtime'. See issue https://github.com/babel/babel/pull/8616.
const includeMathModule = hasMinVersion("7.0.1", runtimeVersion);
return {
builtins: {
Symbol: "symbol",
Promise: "promise",
Map: "map",
WeakMap: "weak-map",
Set: "set",
WeakSet: "weak-set",
setImmediate: "set-immediate",
clearImmediate: "clear-immediate",
parseFloat: "parse-float",
parseInt: "parse-int",
},
methods: {
Array: {
from: "array/from",
isArray: "array/is-array",
of: "array/of",
},
JSON: {
stringify: "json/stringify",
},
Object: {
assign: "object/assign",
create: "object/create",
defineProperties: "object/define-properties",
defineProperty: "object/define-property",
entries: "object/entries",
freeze: "object/freeze",
getOwnPropertyDescriptor: "object/get-own-property-descriptor",
getOwnPropertyDescriptors: "object/get-own-property-descriptors",
getOwnPropertyNames: "object/get-own-property-names",
getOwnPropertySymbols: "object/get-own-property-symbols",
getPrototypeOf: "object/get-prototype-of",
isExtensible: "object/is-extensible",
isFrozen: "object/is-frozen",
isSealed: "object/is-sealed",
is: "object/is",
keys: "object/keys",
preventExtensions: "object/prevent-extensions",
seal: "object/seal",
setPrototypeOf: "object/set-prototype-of",
values: "object/values",
},
...(includeMathModule
? {
Math: {
acosh: "math/acosh",
asinh: "math/asinh",
atanh: "math/atanh",
cbrt: "math/cbrt",
clz32: "math/clz32",
cosh: "math/cosh",
expm1: "math/expm1",
fround: "math/fround",
hypot: "math/hypot",
imul: "math/imul",
log10: "math/log10",
log1p: "math/log1p",
log2: "math/log2",
sign: "math/sign",
sinh: "math/sinh",
tanh: "math/tanh",
trunc: "math/trunc",
},
}
: {}),
Symbol: {
// FIXME: Disabled to work around zloirock/core-js#262.
// asyncIterator: "symbol/async-iterator",
for: "symbol/for",
hasInstance: "symbol/has-instance",
isConcatSpreadable: "symbol/is-concat-spreadable",
iterator: "symbol/iterator",
keyFor: "symbol/key-for",
match: "symbol/match",
replace: "symbol/replace",
search: "symbol/search",
species: "symbol/species",
split: "symbol/split",
toPrimitive: "symbol/to-primitive",
toStringTag: "symbol/to-string-tag",
unscopables: "symbol/unscopables",
},
String: {
at: "string/at",
fromCodePoint: "string/from-code-point",
raw: "string/raw",
},
Number: {
EPSILON: "number/epsilon",
isFinite: "number/is-finite",
isInteger: "number/is-integer",
isNaN: "number/is-nan",
isSafeInteger: "number/is-safe-integer",
MAX_SAFE_INTEGER: "number/max-safe-integer",
MIN_SAFE_INTEGER: "number/min-safe-integer",
parseFloat: "number/parse-float",
parseInt: "number/parse-int",
},
Reflect: {
apply: "reflect/apply",
construct: "reflect/construct",
defineProperty: "reflect/define-property",
deleteProperty: "reflect/delete-property",
getOwnPropertyDescriptor: "reflect/get-own-property-descriptor",
getPrototypeOf: "reflect/get-prototype-of",
get: "reflect/get",
has: "reflect/has",
isExtensible: "reflect/is-extensible",
ownKeys: "reflect/own-keys",
preventExtensions: "reflect/prevent-extensions",
setPrototypeOf: "reflect/set-prototype-of",
set: "reflect/set",
},
Date: {
now: "date/now",
},
},
};
};

View File

@ -0,0 +1,32 @@
import semver from "semver";
export function hasMinVersion(minVersion, runtimeVersion) {
// If the range is unavailable, we're running the script during Babel's
// build process, and we want to assume that all versions are satisfied so
// that the built output will include all definitions.
if (!runtimeVersion) return true;
// semver.intersects() has some surprising behavior with comparing ranges
// with preprelease versions. We add '^' to ensure that we are always
// comparing ranges with ranges, which sidesteps this logic.
// For example:
//
// semver.intersects(`<7.0.1`, "7.0.0-beta.0") // false - surprising
// semver.intersects(`<7.0.1`, "^7.0.0-beta.0") // true - expected
//
// This is because the first falls back to
//
// semver.satisfies("7.0.0-beta.0", `<7.0.1`) // false - surprising
//
// and this fails because a prerelease version can only satisfy a range
// if it is a prerelease within the same major/minor/patch range.
//
// Note: If this is found to have issues, please also revist the logic in
// babel-core's availableHelper() API.
if (semver.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`;
return (
!semver.intersects(`<${minVersion}`, runtimeVersion) &&
!semver.intersects(`>=8.0.0`, runtimeVersion)
);
}

View File

@ -4,7 +4,8 @@ import { declare } from "@babel/helper-plugin-utils";
import { addDefault, isModule } from "@babel/helper-module-imports"; import { addDefault, isModule } from "@babel/helper-module-imports";
import { types as t } from "@babel/core"; import { types as t } from "@babel/core";
import getDefinitions from "./definitions"; import getCoreJS2Definitions from "./runtime-corejs2-definitions";
import getCoreJS3Definitions from "./runtime-corejs3-definitions";
function resolveAbsoluteRuntime(moduleName: string, dirname: string) { function resolveAbsoluteRuntime(moduleName: string, dirname: string) {
try { try {
@ -33,7 +34,7 @@ export default declare((api, options, dirname) => {
api.assertVersion(7); api.assertVersion(7);
const { const {
corejs: corejsVersion = false, corejs,
helpers: useRuntimeHelpers = true, helpers: useRuntimeHelpers = true,
regenerator: useRuntimeRegenerator = true, regenerator: useRuntimeRegenerator = true,
useESModules = false, useESModules = false,
@ -41,21 +42,48 @@ export default declare((api, options, dirname) => {
absoluteRuntime = false, absoluteRuntime = false,
} = options; } = options;
const definitions = getDefinitions(runtimeVersion); let proposals = false;
let rawVersion;
if (typeof corejs === "object" && corejs !== null) {
rawVersion = corejs.version;
proposals = Boolean(corejs.proposals);
} else {
rawVersion = corejs;
}
const corejsVersion = rawVersion ? Number(rawVersion) : false;
if (![false, 2, 3].includes(corejsVersion)) {
throw new Error(
`The \`core-js\` version must be false, 2 or 3, but got ${JSON.stringify(
rawVersion,
)}.`,
);
}
if (proposals && (!corejsVersion || corejsVersion < 3)) {
throw new Error(
"The 'proposals' option is only supported when using 'corejs: 3'",
);
}
if (typeof useRuntimeRegenerator !== "boolean") { if (typeof useRuntimeRegenerator !== "boolean") {
throw new Error( throw new Error(
"The 'regenerator' option must be undefined, or a boolean.", "The 'regenerator' option must be undefined, or a boolean.",
); );
} }
if (typeof useRuntimeHelpers !== "boolean") { if (typeof useRuntimeHelpers !== "boolean") {
throw new Error("The 'helpers' option must be undefined, or a boolean."); throw new Error("The 'helpers' option must be undefined, or a boolean.");
} }
if (typeof useESModules !== "boolean" && useESModules !== "auto") { if (typeof useESModules !== "boolean" && useESModules !== "auto") {
throw new Error( throw new Error(
"The 'useESModules' option must be undefined, or a boolean, or 'auto'.", "The 'useESModules' option must be undefined, or a boolean, or 'auto'.",
); );
} }
if ( if (
typeof absoluteRuntime !== "boolean" && typeof absoluteRuntime !== "boolean" &&
typeof absoluteRuntime !== "string" typeof absoluteRuntime !== "string"
@ -64,16 +92,7 @@ export default declare((api, options, dirname) => {
"The 'absoluteRuntime' option must be undefined, a boolean, or a string.", "The 'absoluteRuntime' option must be undefined, a boolean, or a string.",
); );
} }
if (
corejsVersion !== false &&
(typeof corejsVersion !== "number" || corejsVersion !== 2) &&
(typeof corejsVersion !== "string" || corejsVersion !== "2")
) {
throw new Error(
`The 'corejs' option must be undefined, false, 2 or '2', ` +
`but got ${JSON.stringify(corejsVersion)}.`,
);
}
if (typeof runtimeVersion !== "string") { if (typeof runtimeVersion !== "string") {
throw new Error(`The 'version' option must be a version string.`); throw new Error(`The 'version' option must be a version string.`);
} }
@ -81,6 +100,18 @@ export default declare((api, options, dirname) => {
function has(obj, key) { function has(obj, key) {
return Object.prototype.hasOwnProperty.call(obj, key); return Object.prototype.hasOwnProperty.call(obj, key);
} }
function hasMapping(methods, name) {
return has(methods, name) && (proposals || methods[name].stable);
}
function hasStaticMapping(object, method) {
return (
has(StaticProperties, object) &&
hasMapping(StaticProperties[object], method)
);
}
if (has(options, "useBuiltIns")) { if (has(options, "useBuiltIns")) {
if (options.useBuiltIns) { if (options.useBuiltIns) {
throw new Error( throw new Error(
@ -90,10 +121,11 @@ export default declare((api, options, dirname) => {
} else { } else {
throw new Error( throw new Error(
"The 'useBuiltIns' option has been removed. Use the 'corejs'" + "The 'useBuiltIns' option has been removed. Use the 'corejs'" +
"option with value '2' to polyfill with CoreJS 2.x via @babel/runtime.", "option to polyfill with `core-js` via @babel/runtime.",
); );
} }
} }
if (has(options, "polyfill")) { if (has(options, "polyfill")) {
if (options.polyfill === false) { if (options.polyfill === false) {
throw new Error( throw new Error(
@ -103,10 +135,11 @@ export default declare((api, options, dirname) => {
} else { } else {
throw new Error( throw new Error(
"The 'polyfill' option has been removed. Use the 'corejs'" + "The 'polyfill' option has been removed. Use the 'corejs'" +
"option with value '2' to polyfill with CoreJS 2.x via @babel/runtime.", "option to polyfill with `core-js` via @babel/runtime.",
); );
} }
} }
if (has(options, "moduleName")) { if (has(options, "moduleName")) {
throw new Error( throw new Error(
"The 'moduleName' option has been removed. @babel/transform-runtime " + "The 'moduleName' option has been removed. @babel/transform-runtime " +
@ -119,11 +152,22 @@ export default declare((api, options, dirname) => {
const esModules = const esModules =
useESModules === "auto" ? api.caller(supportsStaticESM) : useESModules; useESModules === "auto" ? api.caller(supportsStaticESM) : useESModules;
const injectCoreJS2 = `${corejsVersion}` === "2"; const injectCoreJS2 = corejsVersion === 2;
const moduleName = injectCoreJS2 const injectCoreJS3 = corejsVersion === 3;
const injectCoreJS = corejsVersion !== false;
const moduleName = injectCoreJS3
? "@babel/runtime-corejs3"
: injectCoreJS2
? "@babel/runtime-corejs2" ? "@babel/runtime-corejs2"
: "@babel/runtime"; : "@babel/runtime";
const corejsRoot = injectCoreJS3 && !proposals ? "core-js-stable" : "core-js";
const { BuiltIns, StaticProperties, InstanceProperties } = (injectCoreJS2
? getCoreJS2Definitions
: getCoreJS3Definitions)(runtimeVersion);
const HEADER_HELPERS = ["interopRequireWildcard", "interopRequireDefault"]; const HEADER_HELPERS = ["interopRequireWildcard", "interopRequireDefault"];
let modulePath = moduleName; let modulePath = moduleName;
@ -199,7 +243,10 @@ export default declare((api, options, dirname) => {
visitor: { visitor: {
ReferencedIdentifier(path) { ReferencedIdentifier(path) {
const { node, parent, scope } = path; const { node, parent, scope } = path;
if (node.name === "regeneratorRuntime" && useRuntimeRegenerator) { const { name } = node;
// transform `regeneratorRuntime`
if (name === "regeneratorRuntime" && useRuntimeRegenerator) {
path.replaceWith( path.replaceWith(
this.addDefaultImport( this.addDefaultImport(
`${modulePath}/regenerator`, `${modulePath}/regenerator`,
@ -209,50 +256,81 @@ export default declare((api, options, dirname) => {
return; return;
} }
if (!injectCoreJS2) return; if (!injectCoreJS) return;
if (t.isMemberExpression(parent)) return; if (t.isMemberExpression(parent)) return;
if (!has(definitions.builtins, node.name)) return; if (!hasMapping(BuiltIns, name)) return;
if (scope.getBindingIdentifier(node.name)) return; if (scope.getBindingIdentifier(name)) return;
// Symbol() -> _core.Symbol(); new Promise -> new _core.Promise // transform global built-ins like `Symbol()`, `new Promise`
path.replaceWith( path.replaceWith(
this.addDefaultImport( this.addDefaultImport(
`${modulePath}/core-js/${definitions.builtins[node.name]}`, `${modulePath}/${corejsRoot}/${BuiltIns[name].path}`,
node.name, name,
), ),
); );
}, },
// arr[Symbol.iterator]() -> _core.$for.getIterator(arr)
CallExpression(path) { CallExpression(path) {
if (!injectCoreJS2) return; if (!injectCoreJS) return;
// we can't compile this const { node } = path;
if (path.node.arguments.length) return; const { callee } = node;
const callee = path.node.callee;
if (!t.isMemberExpression(callee)) return; if (!t.isMemberExpression(callee)) return;
const { object, property } = callee;
const propertyName = property.name;
// transform calling instance methods like `something.includes()`
if (injectCoreJS3 && !hasStaticMapping(object.name, propertyName)) {
if (hasMapping(InstanceProperties, propertyName)) {
let context1, context2;
if (t.isIdentifier(object)) {
context1 = object;
context2 = t.cloneNode(object);
} else {
context1 = path.scope.generateDeclaredUidIdentifier("context");
context2 = t.assignmentExpression("=", context1, object);
}
node.callee = t.memberExpression(
t.callExpression(
this.addDefaultImport(
`${moduleName}/${corejsRoot}/instance/${
InstanceProperties[propertyName].path
}`,
`${propertyName}InstanceProperty`,
),
[context2],
),
t.identifier("call"),
);
node.arguments.unshift(context1);
return;
}
}
// we can't compile this
if (node.arguments.length) return;
if (!callee.computed) return; if (!callee.computed) return;
if (!path.get("callee.property").matchesPattern("Symbol.iterator")) { if (!path.get("callee.property").matchesPattern("Symbol.iterator")) {
return; return;
} }
// transform `something[Symbol.iterator]()` to calling `getIterator(something)` helper
path.replaceWith( path.replaceWith(
t.callExpression( t.callExpression(
this.addDefaultImport( this.addDefaultImport(
`${modulePath}/core-js/get-iterator`, `${modulePath}/core-js/get-iterator`,
"getIterator", "getIterator",
), ),
[callee.object], [object],
), ),
); );
}, },
// Symbol.iterator in arr -> core.$for.isIterable(arr) // transform `Symbol.iterator in something` to calling `isIterable(something)` helper
BinaryExpression(path) { BinaryExpression(path) {
if (!injectCoreJS2) return; if (!injectCoreJS) return;
if (path.node.operator !== "in") return; if (path.node.operator !== "in") return;
if (!path.get("left").matchesPattern("Symbol.iterator")) return; if (!path.get("left").matchesPattern("Symbol.iterator")) return;
@ -267,61 +345,84 @@ export default declare((api, options, dirname) => {
); );
}, },
// Array.from -> _core.Array.from // transform static built-ins methods like `Array.from`
MemberExpression: { MemberExpression: {
enter(path) { enter(path) {
if (!injectCoreJS2) return; if (!injectCoreJS) return;
if (!path.isReferenced()) return; if (!path.isReferenced()) return;
const { node } = path; const { node } = path;
const obj = node.object; const { object, property } = node;
const prop = node.property;
if (!t.isReferenced(obj, node)) return; if (!t.isReferenced(object, node)) return;
if (node.computed) return;
if (!has(definitions.methods, obj.name)) return;
const methods = definitions.methods[obj.name]; if (node.computed) {
if (!has(methods, prop.name)) return; if (injectCoreJS2) return;
// transform `something[Symbol.iterator]` to calling `getIteratorMethod(something)` helper
// doesn't reference the global if (path.get("property").matchesPattern("Symbol.iterator")) {
if (path.scope.getBindingIdentifier(obj.name)) return; path.replaceWith(
t.callExpression(
// special case Object.defineProperty to not use core-js when using string keys this.addDefaultImport(
if ( `${moduleName}/core-js/get-iterator-method`,
obj.name === "Object" && "getIteratorMethod",
prop.name === "defineProperty" && ),
path.parentPath.isCallExpression() [object],
) { ),
const call = path.parentPath.node; );
if (call.arguments.length === 3 && t.isLiteral(call.arguments[1])) { }
return; return;
} }
const objectName = object.name;
const propertyName = property.name;
// doesn't reference the global
if (
path.scope.getBindingIdentifier(objectName) ||
!hasStaticMapping(objectName, propertyName)
) {
// transform getting of instance methods like `method = something.includes`
if (injectCoreJS3 && hasMapping(InstanceProperties, propertyName)) {
path.replaceWith(
t.callExpression(
this.addDefaultImport(
`${moduleName}/${corejsRoot}/instance/${
InstanceProperties[propertyName].path
}`,
`${propertyName}InstanceProperty`,
),
[object],
),
);
}
return;
} }
path.replaceWith( path.replaceWith(
this.addDefaultImport( this.addDefaultImport(
`${modulePath}/core-js/${methods[prop.name]}`, `${modulePath}/${corejsRoot}/${
`${obj.name}$${prop.name}`, StaticProperties[objectName][propertyName].path
}`,
`${objectName}$${propertyName}`,
), ),
); );
}, },
exit(path) { exit(path) {
if (!injectCoreJS2) return; if (!injectCoreJS) return;
if (!path.isReferenced()) return; if (!path.isReferenced()) return;
const { node } = path; const { node } = path;
const obj = node.object; const { object } = node;
const { name } = object;
if (!has(definitions.builtins, obj.name)) return; if (!hasMapping(BuiltIns, name)) return;
if (path.scope.getBindingIdentifier(obj.name)) return; if (path.scope.getBindingIdentifier(name)) return;
path.replaceWith( path.replaceWith(
t.memberExpression( t.memberExpression(
this.addDefaultImport( this.addDefaultImport(
`${modulePath}/core-js/${definitions.builtins[obj.name]}`, `${modulePath}/${corejsRoot}/${BuiltIns[name].path}`,
obj.name, name,
), ),
node.property, node.property,
node.computed, node.computed,

View File

@ -0,0 +1,155 @@
import { hasMinVersion } from "./helpers";
export default runtimeVersion => {
// Conditionally include 'Math' because it was not included in the 7.0.0
// release of '@babel/runtime'. See issue https://github.com/babel/babel/pull/8616.
const includeMathModule = hasMinVersion("7.0.1", runtimeVersion);
return {
BuiltIns: {
Symbol: { stable: true, path: "symbol" },
Promise: { stable: true, path: "promise" },
Map: { stable: true, path: "map" },
WeakMap: { stable: true, path: "weak-map" },
Set: { stable: true, path: "set" },
WeakSet: { stable: true, path: "weak-set" },
setImmediate: { stable: true, path: "set-immediate" },
clearImmediate: { stable: true, path: "clear-immediate" },
parseFloat: { stable: true, path: "parse-float" },
parseInt: { stable: true, path: "parse-int" },
},
StaticProperties: {
Array: {
from: { stable: true, path: "array/from" },
isArray: { stable: true, path: "array/is-array" },
of: { stable: true, path: "array/of" },
},
JSON: {
stringify: { stable: true, path: "json/stringify" },
},
Object: {
assign: { stable: true, path: "object/assign" },
create: { stable: true, path: "object/create" },
defineProperties: { stable: true, path: "object/define-properties" },
defineProperty: { stable: true, path: "object/define-property" },
entries: { stable: true, path: "object/entries" },
freeze: { stable: true, path: "object/freeze" },
getOwnPropertyDescriptor: {
stable: true,
path: "object/get-own-property-descriptor",
},
getOwnPropertyDescriptors: {
stable: true,
path: "object/get-own-property-descriptors",
},
getOwnPropertyNames: {
stable: true,
path: "object/get-own-property-names",
},
getOwnPropertySymbols: {
stable: true,
path: "object/get-own-property-symbols",
},
getPrototypeOf: { stable: true, path: "object/get-prototype-of" },
isExtensible: { stable: true, path: "object/is-extensible" },
isFrozen: { stable: true, path: "object/is-frozen" },
isSealed: { stable: true, path: "object/is-sealed" },
is: { stable: true, path: "object/is" },
keys: { stable: true, path: "object/keys" },
preventExtensions: { stable: true, path: "object/prevent-extensions" },
seal: { stable: true, path: "object/seal" },
setPrototypeOf: { stable: true, path: "object/set-prototype-of" },
values: { stable: true, path: "object/values" },
},
...(includeMathModule
? {
Math: {
acosh: { stable: true, path: "math/acosh" },
asinh: { stable: true, path: "math/asinh" },
atanh: { stable: true, path: "math/atanh" },
cbrt: { stable: true, path: "math/cbrt" },
clz32: { stable: true, path: "math/clz32" },
cosh: { stable: true, path: "math/cosh" },
expm1: { stable: true, path: "math/expm1" },
fround: { stable: true, path: "math/fround" },
hypot: { stable: true, path: "math/hypot" },
imul: { stable: true, path: "math/imul" },
log10: { stable: true, path: "math/log10" },
log1p: { stable: true, path: "math/log1p" },
log2: { stable: true, path: "math/log2" },
sign: { stable: true, path: "math/sign" },
sinh: { stable: true, path: "math/sinh" },
tanh: { stable: true, path: "math/tanh" },
trunc: { stable: true, path: "math/trunc" },
},
}
: {}),
Symbol: {
// FIXME: Disabled to work around zloirock/core-js#262.
// asyncIterator: { stable: true, path: "symbol/async-iterator" },
for: { stable: true, path: "symbol/for" },
hasInstance: { stable: true, path: "symbol/has-instance" },
isConcatSpreadable: {
stable: true,
path: "symbol/is-concat-spreadable",
},
iterator: { stable: true, path: "symbol/iterator" },
keyFor: { stable: true, path: "symbol/key-for" },
match: { stable: true, path: "symbol/match" },
replace: { stable: true, path: "symbol/replace" },
search: { stable: true, path: "symbol/search" },
species: { stable: true, path: "symbol/species" },
split: { stable: true, path: "symbol/split" },
toPrimitive: { stable: true, path: "symbol/to-primitive" },
toStringTag: { stable: true, path: "symbol/to-string-tag" },
unscopables: { stable: true, path: "symbol/unscopables" },
},
String: {
at: { stable: true, path: "string/at" },
fromCodePoint: { stable: true, path: "string/from-code-point" },
raw: { stable: true, path: "string/raw" },
},
Number: {
EPSILON: { stable: true, path: "number/epsilon" },
isFinite: { stable: true, path: "number/is-finite" },
isInteger: { stable: true, path: "number/is-integer" },
isNaN: { stable: true, path: "number/is-nan" },
isSafeInteger: { stable: true, path: "number/is-safe-integer" },
MAX_SAFE_INTEGER: { stable: true, path: "number/max-safe-integer" },
MIN_SAFE_INTEGER: { stable: true, path: "number/min-safe-integer" },
parseFloat: { stable: true, path: "number/parse-float" },
parseInt: { stable: true, path: "number/parse-int" },
},
Reflect: {
apply: { stable: true, path: "reflect/apply" },
construct: { stable: true, path: "reflect/construct" },
defineProperty: { stable: true, path: "reflect/define-property" },
deleteProperty: { stable: true, path: "reflect/delete-property" },
getOwnPropertyDescriptor: {
stable: true,
path: "reflect/get-own-property-descriptor",
},
getPrototypeOf: { stable: true, path: "reflect/get-prototype-of" },
get: { stable: true, path: "reflect/get" },
has: { stable: true, path: "reflect/has" },
isExtensible: { stable: true, path: "reflect/is-extensible" },
ownKeys: { stable: true, path: "reflect/own-keys" },
preventExtensions: { stable: true, path: "reflect/prevent-extensions" },
setPrototypeOf: { stable: true, path: "reflect/set-prototype-of" },
set: { stable: true, path: "reflect/set" },
},
Date: {
now: { stable: true, path: "date/now" },
},
},
};
};

View File

@ -0,0 +1,227 @@
export default () => {
return {
BuiltIns: {
AggregateError: { stable: false, path: "aggregate-error" },
Map: { stable: true, path: "map" },
Observable: { stable: false, path: "observable" },
Promise: { stable: true, path: "promise" },
Set: { stable: true, path: "set" },
Symbol: { stable: true, path: "symbol" },
URL: { stable: true, path: "url" },
URLSearchParams: { stable: true, path: "url-search-params" },
WeakMap: { stable: true, path: "weak-map" },
WeakSet: { stable: true, path: "weak-set" },
clearImmediate: { stable: true, path: "clear-immediate" },
compositeKey: { stable: false, path: "composite-key" },
compositeSymbol: { stable: false, path: "composite-symbol" },
globalThis: { stable: false, path: "global-this" },
parseFloat: { stable: true, path: "parse-float" },
parseInt: { stable: true, path: "parse-int" },
queueMicrotask: { stable: true, path: "queue-microtask" },
setImmediate: { stable: true, path: "set-immediate" },
setInterval: { stable: true, path: "set-interval" },
setTimeout: { stable: true, path: "set-timeout" },
},
StaticProperties: {
Array: {
from: { stable: true, path: "array/from" },
isArray: { stable: true, path: "array/is-array" },
of: { stable: true, path: "array/of" },
},
Date: {
now: { stable: true, path: "date/now" },
},
JSON: {
stringify: { stable: true, path: "json/stringify" },
},
Math: {
DEG_PER_RAD: { stable: false, path: "math/deg-per-rad" },
RAD_PER_DEG: { stable: false, path: "math/rad-per-deg" },
acosh: { stable: true, path: "math/acosh" },
asinh: { stable: true, path: "math/asinh" },
atanh: { stable: true, path: "math/atanh" },
cbrt: { stable: true, path: "math/cbrt" },
clamp: { stable: false, path: "math/clamp" },
clz32: { stable: true, path: "math/clz32" },
cosh: { stable: true, path: "math/cosh" },
degrees: { stable: false, path: "math/degrees" },
expm1: { stable: true, path: "math/expm1" },
fround: { stable: true, path: "math/fround" },
fscale: { stable: false, path: "math/fscale" },
hypot: { stable: true, path: "math/hypot" },
iaddh: { stable: false, path: "math/iaddh" },
imul: { stable: true, path: "math/imul" },
imulh: { stable: false, path: "math/imulh" },
isubh: { stable: false, path: "math/isubh" },
log10: { stable: true, path: "math/log10" },
log1p: { stable: true, path: "math/log1p" },
log2: { stable: true, path: "math/log2" },
radians: { stable: false, path: "math/radians" },
scale: { stable: false, path: "math/scale" },
seededPRNG: { stable: false, path: "math/seeded-prng" },
sign: { stable: true, path: "math/sign" },
signbit: { stable: false, path: "math/signbit" },
sinh: { stable: true, path: "math/sinh" },
tanh: { stable: true, path: "math/tanh" },
trunc: { stable: true, path: "math/trunc" },
umulh: { stable: false, path: "math/umulh" },
},
Number: {
EPSILON: { stable: true, path: "number/epsilon" },
MAX_SAFE_INTEGER: { stable: true, path: "number/max-safe-integer" },
MIN_SAFE_INTEGER: { stable: true, path: "number/min-safe-integer" },
fromString: { stable: false, path: "number/from-string" },
isFinite: { stable: true, path: "number/is-finite" },
isInteger: { stable: true, path: "number/is-integer" },
isNaN: { stable: true, path: "number/is-nan" },
isSafeInteger: { stable: true, path: "number/is-safe-integer" },
parseFloat: { stable: true, path: "number/parse-float" },
parseInt: { stable: true, path: "number/parse-int" },
},
Object: {
assign: { stable: true, path: "object/assign" },
create: { stable: true, path: "object/create" },
defineProperties: { stable: true, path: "object/define-properties" },
defineProperty: { stable: true, path: "object/define-property" },
entries: { stable: true, path: "object/entries" },
freeze: { stable: true, path: "object/freeze" },
fromEntries: { stable: true, path: "object/from-entries" },
getOwnPropertyDescriptor: {
stable: true,
path: "object/get-own-property-descriptor",
},
getOwnPropertyDescriptors: {
stable: true,
path: "object/get-own-property-descriptors",
},
getOwnPropertyNames: {
stable: true,
path: "object/get-own-property-names",
},
getOwnPropertySymbols: {
stable: true,
path: "object/get-own-property-symbols",
},
getPrototypeOf: { stable: true, path: "object/get-prototype-of" },
isExtensible: { stable: true, path: "object/is-extensible" },
isFrozen: { stable: true, path: "object/is-frozen" },
isSealed: { stable: true, path: "object/is-sealed" },
is: { stable: true, path: "object/is" },
keys: { stable: true, path: "object/keys" },
preventExtensions: { stable: true, path: "object/prevent-extensions" },
seal: { stable: true, path: "object/seal" },
setPrototypeOf: { stable: true, path: "object/set-prototype-of" },
values: { stable: true, path: "object/values" },
},
Reflect: {
apply: { stable: true, path: "reflect/apply" },
construct: { stable: true, path: "reflect/construct" },
defineMetadata: { stable: false, path: "reflect/define-metadata" },
defineProperty: { stable: true, path: "reflect/define-property" },
deleteMetadata: { stable: false, path: "reflect/delete-metadata" },
deleteProperty: { stable: true, path: "reflect/delete-property" },
getMetadata: { stable: false, path: "reflect/get-metadata" },
getMetadataKeys: { stable: false, path: "reflect/get-metadata-keys" },
getOwnMetadata: { stable: false, path: "reflect/get-own-metadata" },
getOwnMetadataKeys: {
stable: false,
path: "reflect/get-own-metadata-keys",
},
getOwnPropertyDescriptor: {
stable: true,
path: "reflect/get-own-property-descriptor",
},
getPrototypeOf: { stable: true, path: "reflect/get-prototype-of" },
get: { stable: true, path: "reflect/get" },
has: { stable: true, path: "reflect/has" },
hasMetadata: { stable: false, path: "reflect/has-metadata" },
hasOwnMetadata: { stable: false, path: "reflect/has-own-metadata" },
isExtensible: { stable: true, path: "reflect/is-extensible" },
metadata: { stable: false, path: "reflect/metadata" },
ownKeys: { stable: true, path: "reflect/own-keys" },
preventExtensions: { stable: true, path: "reflect/prevent-extensions" },
set: { stable: true, path: "reflect/set" },
setPrototypeOf: { stable: true, path: "reflect/set-prototype-of" },
},
String: {
fromCodePoint: { stable: true, path: "string/from-code-point" },
raw: { stable: true, path: "string/raw" },
},
Symbol: {
asyncIterator: { stable: true, path: "symbol/async-iterator" },
dispose: { stable: false, path: "symbol/dispose" },
for: { stable: true, path: "symbol/for" },
hasInstance: { stable: true, path: "symbol/has-instance" },
isConcatSpreadable: {
stable: true,
path: "symbol/is-concat-spreadable",
},
iterator: { stable: true, path: "symbol/iterator" },
keyFor: { stable: true, path: "symbol/key-for" },
match: { stable: true, path: "symbol/match" },
observable: { stable: false, path: "symbol/observable" },
patternMatch: { stable: false, path: "symbol/pattern-match" },
replace: { stable: true, path: "symbol/replace" },
search: { stable: true, path: "symbol/search" },
species: { stable: true, path: "symbol/species" },
split: { stable: true, path: "symbol/split" },
toPrimitive: { stable: true, path: "symbol/to-primitive" },
toStringTag: { stable: true, path: "symbol/to-string-tag" },
unscopables: { stable: true, path: "symbol/unscopables" },
},
},
InstanceProperties: {
at: { stable: false, path: "at" },
bind: { stable: true, path: "bind" },
codePointAt: { stable: true, path: "code-point-at" },
codePoints: { stable: false, path: "code-points" },
concat: { stable: true, path: "concat" },
copyWithin: { stable: true, path: "copy-within" },
endsWith: { stable: true, path: "ends-with" },
entries: { stable: true, path: "entries" },
every: { stable: true, path: "every" },
fill: { stable: true, path: "fill" },
filter: { stable: true, path: "filter" },
find: { stable: true, path: "find" },
findIndex: { stable: true, path: "find-index" },
flags: { stable: true, path: "flags" },
flatMap: { stable: true, path: "flat-map" },
flat: { stable: true, path: "flat" },
forEach: { stable: true, path: "for-each" },
includes: { stable: true, path: "includes" },
indexOf: { stable: true, path: "index-of" },
keys: { stable: true, path: "keys" },
lastIndexOf: { stable: true, path: "last-index-of" },
map: { stable: true, path: "map" },
matchAll: { stable: false, path: "match-all" },
padEnd: { stable: true, path: "pad-end" },
padStart: { stable: true, path: "pad-start" },
reduce: { stable: true, path: "reduce" },
reduceRight: { stable: true, path: "reduce-right" },
repeat: { stable: true, path: "repeat" },
replaceAll: { stable: false, path: "replace-all" },
reverse: { stable: true, path: "reverse" },
slice: { stable: true, path: "slice" },
some: { stable: true, path: "some" },
sort: { stable: true, path: "sort" },
splice: { stable: true, path: "splice" },
startsWith: { stable: true, path: "starts-with" },
trim: { stable: true, path: "trim" },
trimEnd: { stable: true, path: "trim-end" },
trimLeft: { stable: true, path: "trim-left" },
trimRight: { stable: true, path: "trim-right" },
trimStart: { stable: true, path: "trim-start" },
values: { stable: true, path: "values" },
},
};
};

View File

@ -2,11 +2,11 @@
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault"); var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys"); var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
Object.defineProperty(exports, "__esModule", { var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
_Object$defineProperty(exports, "__esModule", {
value: true value: true
}); });

View File

@ -0,0 +1,7 @@
obj.constructor === Object;
obj.constructor === Promise;
Symbol();
Symbol("test");
new Map();

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"]
}

View File

@ -0,0 +1,14 @@
var _Map = require("@babel/runtime-corejs3/core-js-stable/map");
var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
var _Promise = require("@babel/runtime-corejs3/core-js-stable/promise");
obj.constructor === Object;
obj.constructor === _Promise;
_Symbol();
_Symbol("test");
new _Map();

View File

@ -0,0 +1,33 @@
AggregateError
Map
Observable
Promise
Set
Symbol
URL
URLSearchParams
WeakMap
WeakSet
clearImmediate
compositeKey
compositeSymbol
globalThis
parseFloat
parseInt
queueMicrotask
setImmediate
setInterval
setTimeout
Array
Boolean
Date
Infinity
JSON
NaN
Number
Object
clearInterval
clearTimeout
something

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": { "version": 3, "proposals": true } }]]
}

View File

@ -0,0 +1,71 @@
var _setTimeout = require("@babel/runtime-corejs3/core-js/set-timeout");
var _setInterval = require("@babel/runtime-corejs3/core-js/set-interval");
var _setImmediate = require("@babel/runtime-corejs3/core-js/set-immediate");
var _queueMicrotask = require("@babel/runtime-corejs3/core-js/queue-microtask");
var _parseInt = require("@babel/runtime-corejs3/core-js/parse-int");
var _parseFloat = require("@babel/runtime-corejs3/core-js/parse-float");
var _globalThis = require("@babel/runtime-corejs3/core-js/global-this");
var _compositeSymbol = require("@babel/runtime-corejs3/core-js/composite-symbol");
var _compositeKey = require("@babel/runtime-corejs3/core-js/composite-key");
var _clearImmediate = require("@babel/runtime-corejs3/core-js/clear-immediate");
var _WeakSet = require("@babel/runtime-corejs3/core-js/weak-set");
var _WeakMap = require("@babel/runtime-corejs3/core-js/weak-map");
var _URLSearchParams = require("@babel/runtime-corejs3/core-js/url-search-params");
var _URL = require("@babel/runtime-corejs3/core-js/url");
var _Symbol = require("@babel/runtime-corejs3/core-js/symbol");
var _Set = require("@babel/runtime-corejs3/core-js/set");
var _Promise = require("@babel/runtime-corejs3/core-js/promise");
var _Observable = require("@babel/runtime-corejs3/core-js/observable");
var _Map = require("@babel/runtime-corejs3/core-js/map");
var _AggregateError = require("@babel/runtime-corejs3/core-js/aggregate-error");
_AggregateError;
_Map;
_Observable;
_Promise;
_Set;
_Symbol;
_URL;
_URLSearchParams;
_WeakMap;
_WeakSet;
_clearImmediate;
_compositeKey;
_compositeSymbol;
_globalThis;
_parseFloat;
_parseInt;
_queueMicrotask;
_setImmediate;
_setInterval;
_setTimeout;
Array;
Boolean;
Date;
Infinity;
JSON;
NaN;
Number;
Object;
clearInterval;
clearTimeout;
something;

View File

@ -0,0 +1,33 @@
AggregateError
Map
Observable
Promise
Set
Symbol
URL
URLSearchParams
WeakMap
WeakSet
clearImmediate
compositeKey
compositeSymbol
globalThis
parseFloat
parseInt
queueMicrotask
setImmediate
setInterval
setTimeout
Array
Boolean
Date
Infinity
JSON
NaN
Number
Object
clearInterval
clearTimeout
something

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }]]
}

View File

@ -0,0 +1,61 @@
var _setTimeout = require("@babel/runtime-corejs3/core-js-stable/set-timeout");
var _setInterval = require("@babel/runtime-corejs3/core-js-stable/set-interval");
var _setImmediate = require("@babel/runtime-corejs3/core-js-stable/set-immediate");
var _queueMicrotask = require("@babel/runtime-corejs3/core-js-stable/queue-microtask");
var _parseInt = require("@babel/runtime-corejs3/core-js-stable/parse-int");
var _parseFloat = require("@babel/runtime-corejs3/core-js-stable/parse-float");
var _clearImmediate = require("@babel/runtime-corejs3/core-js-stable/clear-immediate");
var _WeakSet = require("@babel/runtime-corejs3/core-js-stable/weak-set");
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
var _URLSearchParams = require("@babel/runtime-corejs3/core-js-stable/url-search-params");
var _URL = require("@babel/runtime-corejs3/core-js-stable/url");
var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
var _Set = require("@babel/runtime-corejs3/core-js-stable/set");
var _Promise = require("@babel/runtime-corejs3/core-js-stable/promise");
var _Map = require("@babel/runtime-corejs3/core-js-stable/map");
AggregateError;
_Map;
Observable;
_Promise;
_Set;
_Symbol;
_URL;
_URLSearchParams;
_WeakMap;
_WeakSet;
_clearImmediate;
compositeKey;
compositeSymbol;
globalThis;
_parseFloat;
_parseInt;
_queueMicrotask;
_setImmediate;
_setInterval;
_setTimeout;
Array;
Boolean;
Date;
Infinity;
JSON;
NaN;
Number;
Object;
clearInterval;
clearTimeout;
something;

View File

@ -0,0 +1,88 @@
object.at;
object.bind;
object.codePointAt;
object.codePoints;
object.concat;
object.copyWithin;
object.endsWith;
object.entries;
object.every;
object.fill;
object.filter;
object.find;
object.findIndex;
object.flags;
object.flatMap;
object.flat;
object.forEach;
object.includes;
object.indexOf;
object.keys;
object.lastIndexOf;
object.map;
object.matchAll;
object.padEnd;
object.padStart;
object.reduce;
object.reduceRight;
object.repeat;
object.replaceAll;
object.reverse;
object.slice;
object.some;
object.sort;
object.splice;
object.startsWith;
object.trim;
object.trimEnd;
object.trimLeft;
object.trimRight;
object.trimStart;
object.values;
object.something;
object.at(arg);
object.bind(arg);
object.codePointAt(arg);
object.codePoints(arg);
object.concat(arg);
object.copyWithin(arg);
object.endsWith(arg);
object.entries(arg);
object.every(arg);
object.fill(arg);
object.filter(arg);
object.find(arg);
object.findIndex(arg);
object.flags(arg);
object.flatMap(arg);
object.flat(arg);
object.forEach(arg);
object.includes(arg);
object.indexOf(arg);
object.keys(arg);
object.lastIndexOf(arg);
object.map(arg);
object.matchAll(arg);
object.padEnd(arg);
object.padStart(arg);
object.reduce(arg);
object.reduceRight(arg);
object.repeat(arg);
object.replaceAll(arg);
object.reverse(arg);
object.slice(arg);
object.some(arg);
object.sort(arg);
object.splice(arg);
object.startsWith(arg);
object.trim(arg);
object.trimEnd(arg);
object.trimLeft(arg);
object.trimRight(arg);
object.trimStart(arg);
object.values(arg);
Function.bind
object.something(arg);

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": { "version": 3, "proposals": true } }]]
}

View File

@ -0,0 +1,251 @@
var _valuesInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/values");
var _trimStartInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim-start");
var _trimRightInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim-right");
var _trimLeftInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim-left");
var _trimEndInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim-end");
var _trimInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/trim");
var _startsWithInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/starts-with");
var _spliceInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/splice");
var _sortInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/sort");
var _someInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/some");
var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/slice");
var _reverseInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/reverse");
var _replaceAllInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/replace-all");
var _repeatInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/repeat");
var _reduceRightInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/reduce-right");
var _reduceInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/reduce");
var _padStartInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/pad-start");
var _padEndInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/pad-end");
var _matchAllInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/match-all");
var _mapInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/map");
var _lastIndexOfInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/last-index-of");
var _keysInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/keys");
var _indexOfInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/index-of");
var _includesInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/includes");
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/for-each");
var _flatInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/flat");
var _flatMapInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/flat-map");
var _flagsInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/flags");
var _findIndexInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/find-index");
var _findInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/find");
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/filter");
var _fillInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/fill");
var _everyInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/every");
var _entriesInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/entries");
var _endsWithInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/ends-with");
var _copyWithinInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/copy-within");
var _concatInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/concat");
var _codePointsInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/code-points");
var _codePointAtInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/code-point-at");
var _bindInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/bind");
var _atInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/at");
_atInstanceProperty(object);
_bindInstanceProperty(object);
_codePointAtInstanceProperty(object);
_codePointsInstanceProperty(object);
_concatInstanceProperty(object);
_copyWithinInstanceProperty(object);
_endsWithInstanceProperty(object);
_entriesInstanceProperty(object);
_everyInstanceProperty(object);
_fillInstanceProperty(object);
_filterInstanceProperty(object);
_findInstanceProperty(object);
_findIndexInstanceProperty(object);
_flagsInstanceProperty(object);
_flatMapInstanceProperty(object);
_flatInstanceProperty(object);
_forEachInstanceProperty(object);
_includesInstanceProperty(object);
_indexOfInstanceProperty(object);
_keysInstanceProperty(object);
_lastIndexOfInstanceProperty(object);
_mapInstanceProperty(object);
_matchAllInstanceProperty(object);
_padEndInstanceProperty(object);
_padStartInstanceProperty(object);
_reduceInstanceProperty(object);
_reduceRightInstanceProperty(object);
_repeatInstanceProperty(object);
_replaceAllInstanceProperty(object);
_reverseInstanceProperty(object);
_sliceInstanceProperty(object);
_someInstanceProperty(object);
_sortInstanceProperty(object);
_spliceInstanceProperty(object);
_startsWithInstanceProperty(object);
_trimInstanceProperty(object);
_trimEndInstanceProperty(object);
_trimLeftInstanceProperty(object);
_trimRightInstanceProperty(object);
_trimStartInstanceProperty(object);
_valuesInstanceProperty(object);
object.something;
_atInstanceProperty(object).call(object, arg);
_bindInstanceProperty(object).call(object, arg);
_codePointAtInstanceProperty(object).call(object, arg);
_codePointsInstanceProperty(object).call(object, arg);
_concatInstanceProperty(object).call(object, arg);
_copyWithinInstanceProperty(object).call(object, arg);
_endsWithInstanceProperty(object).call(object, arg);
_entriesInstanceProperty(object).call(object, arg);
_everyInstanceProperty(object).call(object, arg);
_fillInstanceProperty(object).call(object, arg);
_filterInstanceProperty(object).call(object, arg);
_findInstanceProperty(object).call(object, arg);
_findIndexInstanceProperty(object).call(object, arg);
_flagsInstanceProperty(object).call(object, arg);
_flatMapInstanceProperty(object).call(object, arg);
_flatInstanceProperty(object).call(object, arg);
_forEachInstanceProperty(object).call(object, arg);
_includesInstanceProperty(object).call(object, arg);
_indexOfInstanceProperty(object).call(object, arg);
_keysInstanceProperty(object).call(object, arg);
_lastIndexOfInstanceProperty(object).call(object, arg);
_mapInstanceProperty(object).call(object, arg);
_matchAllInstanceProperty(object).call(object, arg);
_padEndInstanceProperty(object).call(object, arg);
_padStartInstanceProperty(object).call(object, arg);
_reduceInstanceProperty(object).call(object, arg);
_reduceRightInstanceProperty(object).call(object, arg);
_repeatInstanceProperty(object).call(object, arg);
_replaceAllInstanceProperty(object).call(object, arg);
_reverseInstanceProperty(object).call(object, arg);
_sliceInstanceProperty(object).call(object, arg);
_someInstanceProperty(object).call(object, arg);
_sortInstanceProperty(object).call(object, arg);
_spliceInstanceProperty(object).call(object, arg);
_startsWithInstanceProperty(object).call(object, arg);
_trimInstanceProperty(object).call(object, arg);
_trimEndInstanceProperty(object).call(object, arg);
_trimLeftInstanceProperty(object).call(object, arg);
_trimRightInstanceProperty(object).call(object, arg);
_trimStartInstanceProperty(object).call(object, arg);
_valuesInstanceProperty(object).call(object, arg);
_bindInstanceProperty(Function);
object.something(arg);

View File

@ -0,0 +1,88 @@
object.at;
object.bind;
object.codePointAt;
object.codePoints;
object.concat;
object.copyWithin;
object.endsWith;
object.entries;
object.every;
object.fill;
object.filter;
object.find;
object.findIndex;
object.flags;
object.flatMap;
object.flat;
object.forEach;
object.includes;
object.indexOf;
object.keys;
object.lastIndexOf;
object.map;
object.matchAll;
object.padEnd;
object.padStart;
object.reduce;
object.reduceRight;
object.repeat;
object.replaceAll;
object.reverse;
object.slice;
object.some;
object.sort;
object.splice;
object.startsWith;
object.trim;
object.trimEnd;
object.trimLeft;
object.trimRight;
object.trimStart;
object.values;
object.something;
object.at(arg);
object.bind(arg);
object.codePointAt(arg);
object.codePoints(arg);
object.concat(arg);
object.copyWithin(arg);
object.endsWith(arg);
object.entries(arg);
object.every(arg);
object.fill(arg);
object.filter(arg);
object.find(arg);
object.findIndex(arg);
object.flags(arg);
object.flatMap(arg);
object.flat(arg);
object.forEach(arg);
object.includes(arg);
object.indexOf(arg);
object.keys(arg);
object.lastIndexOf(arg);
object.map(arg);
object.matchAll(arg);
object.padEnd(arg);
object.padStart(arg);
object.reduce(arg);
object.reduceRight(arg);
object.repeat(arg);
object.replaceAll(arg);
object.reverse(arg);
object.slice(arg);
object.some(arg);
object.sort(arg);
object.splice(arg);
object.startsWith(arg);
object.trim(arg);
object.trimEnd(arg);
object.trimLeft(arg);
object.trimRight(arg);
object.trimStart(arg);
object.values(arg);
Function.bind
object.something(arg);

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }]]
}

View File

@ -0,0 +1,242 @@
var _valuesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/values");
var _trimStartInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim-start");
var _trimRightInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim-right");
var _trimLeftInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim-left");
var _trimEndInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim-end");
var _trimInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/trim");
var _startsWithInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/starts-with");
var _spliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/splice");
var _sortInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/sort");
var _someInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/some");
var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
var _reverseInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/reverse");
var _repeatInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/repeat");
var _reduceRightInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/reduce-right");
var _reduceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/reduce");
var _padStartInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/pad-start");
var _padEndInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/pad-end");
var _mapInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/map");
var _lastIndexOfInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/last-index-of");
var _keysInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/keys");
var _indexOfInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/index-of");
var _includesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/includes");
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
var _flatInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/flat");
var _flatMapInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/flat-map");
var _flagsInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/flags");
var _findIndexInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/find-index");
var _findInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/find");
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
var _fillInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/fill");
var _everyInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/every");
var _entriesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/entries");
var _endsWithInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/ends-with");
var _copyWithinInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/copy-within");
var _concatInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/concat");
var _codePointAtInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/code-point-at");
var _bindInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/bind");
object.at;
_bindInstanceProperty(object);
_codePointAtInstanceProperty(object);
object.codePoints;
_concatInstanceProperty(object);
_copyWithinInstanceProperty(object);
_endsWithInstanceProperty(object);
_entriesInstanceProperty(object);
_everyInstanceProperty(object);
_fillInstanceProperty(object);
_filterInstanceProperty(object);
_findInstanceProperty(object);
_findIndexInstanceProperty(object);
_flagsInstanceProperty(object);
_flatMapInstanceProperty(object);
_flatInstanceProperty(object);
_forEachInstanceProperty(object);
_includesInstanceProperty(object);
_indexOfInstanceProperty(object);
_keysInstanceProperty(object);
_lastIndexOfInstanceProperty(object);
_mapInstanceProperty(object);
object.matchAll;
_padEndInstanceProperty(object);
_padStartInstanceProperty(object);
_reduceInstanceProperty(object);
_reduceRightInstanceProperty(object);
_repeatInstanceProperty(object);
object.replaceAll;
_reverseInstanceProperty(object);
_sliceInstanceProperty(object);
_someInstanceProperty(object);
_sortInstanceProperty(object);
_spliceInstanceProperty(object);
_startsWithInstanceProperty(object);
_trimInstanceProperty(object);
_trimEndInstanceProperty(object);
_trimLeftInstanceProperty(object);
_trimRightInstanceProperty(object);
_trimStartInstanceProperty(object);
_valuesInstanceProperty(object);
object.something;
object.at(arg);
_bindInstanceProperty(object).call(object, arg);
_codePointAtInstanceProperty(object).call(object, arg);
object.codePoints(arg);
_concatInstanceProperty(object).call(object, arg);
_copyWithinInstanceProperty(object).call(object, arg);
_endsWithInstanceProperty(object).call(object, arg);
_entriesInstanceProperty(object).call(object, arg);
_everyInstanceProperty(object).call(object, arg);
_fillInstanceProperty(object).call(object, arg);
_filterInstanceProperty(object).call(object, arg);
_findInstanceProperty(object).call(object, arg);
_findIndexInstanceProperty(object).call(object, arg);
_flagsInstanceProperty(object).call(object, arg);
_flatMapInstanceProperty(object).call(object, arg);
_flatInstanceProperty(object).call(object, arg);
_forEachInstanceProperty(object).call(object, arg);
_includesInstanceProperty(object).call(object, arg);
_indexOfInstanceProperty(object).call(object, arg);
_keysInstanceProperty(object).call(object, arg);
_lastIndexOfInstanceProperty(object).call(object, arg);
_mapInstanceProperty(object).call(object, arg);
object.matchAll(arg);
_padEndInstanceProperty(object).call(object, arg);
_padStartInstanceProperty(object).call(object, arg);
_reduceInstanceProperty(object).call(object, arg);
_reduceRightInstanceProperty(object).call(object, arg);
_repeatInstanceProperty(object).call(object, arg);
object.replaceAll(arg);
_reverseInstanceProperty(object).call(object, arg);
_sliceInstanceProperty(object).call(object, arg);
_someInstanceProperty(object).call(object, arg);
_sortInstanceProperty(object).call(object, arg);
_spliceInstanceProperty(object).call(object, arg);
_startsWithInstanceProperty(object).call(object, arg);
_trimInstanceProperty(object).call(object, arg);
_trimEndInstanceProperty(object).call(object, arg);
_trimLeftInstanceProperty(object).call(object, arg);
_trimRightInstanceProperty(object).call(object, arg);
_trimStartInstanceProperty(object).call(object, arg);
_valuesInstanceProperty(object).call(object, arg);
_bindInstanceProperty(Function);
object.something(arg);

View File

@ -0,0 +1,123 @@
Array.from
Array.isArray
Array.of
Date.now
JSON.stringify
Math.DEG_PER_RAD
Math.RAD_PER_DEG
Math.acosh
Math.asinh
Math.atanh
Math.cbrt
Math.clamp
Math.clz32
Math.cosh
Math.degrees
Math.expm1
Math.fround
Math.fscale
Math.hypot
Math.iaddh
Math.imul
Math.imulh
Math.isubh
Math.log10
Math.log1p
Math.log2
Math.radians
Math.scale
Math.seededPRNG
Math.sign
Math.signbit
Math.sinh
Math.tanh
Math.trunc
Math.umulh
Number.EPSILON
Number.MAX_SAFE_INTEGER
Number.MIN_SAFE_INTEGER
Number.fromString
Number.isFinite
Number.isInteger
Number.isNaN
Number.isSafeInteger
Number.parseFloat
Number.parseInt
Object.assign
Object.create
Object.defineProperties
Object.defineProperty
Object.entries
Object.freeze
Object.fromEntries
Object.getOwnPropertyDescriptor
Object.getOwnPropertyDescriptors
Object.getOwnPropertyNames
Object.getOwnPropertySymbols
Object.getPrototypeOf
Object.isExtensible
Object.isFrozen
Object.isSealed
Object.is
Object.keys
Object.preventExtensions
Object.seal
Object.setPrototypeOf
Object.values
Reflect.apply
Reflect.construct
Reflect.defineMetadata
Reflect.defineProperty
Reflect.deleteMetadata
Reflect.deleteProperty
Reflect.getMetadata
Reflect.getMetadataKeys
Reflect.getOwnMetadata
Reflect.getOwnMetadataKeys
Reflect.getOwnPropertyDescriptor
Reflect.getPrototypeOf
Reflect.get
Reflect.has
Reflect.hasMetadata
Reflect.hasOwnMetadata
Reflect.isExtensible
Reflect.metadata
Reflect.ownKeys
Reflect.preventExtensions
Reflect.set
Reflect.setPrototypeOf
String.fromCodePoint
String.raw
Symbol.asyncIterator
Symbol.dispose
Symbol.for
Symbol.hasInstance
Symbol.isConcatSpreadable
Symbol.iterator
Symbol.keyFor
Symbol.match
Symbol.observable
Symbol.patternMatch
Symbol.replace
Symbol.search
Symbol.species
Symbol.split
Symbol.toPrimitive
Symbol.toStringTag
Symbol.unscopables
Foo.bar
Array.something
Date.something
JSON.parse
Math.pow
Symbol.something

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": { "version": 3, "proposals": true } }]]
}

View File

@ -0,0 +1,329 @@
var _Symbol = require("@babel/runtime-corejs3/core-js/symbol");
var _Symbol$unscopables = require("@babel/runtime-corejs3/core-js/symbol/unscopables");
var _Symbol$toStringTag = require("@babel/runtime-corejs3/core-js/symbol/to-string-tag");
var _Symbol$toPrimitive = require("@babel/runtime-corejs3/core-js/symbol/to-primitive");
var _Symbol$split = require("@babel/runtime-corejs3/core-js/symbol/split");
var _Symbol$species = require("@babel/runtime-corejs3/core-js/symbol/species");
var _Symbol$search = require("@babel/runtime-corejs3/core-js/symbol/search");
var _Symbol$replace = require("@babel/runtime-corejs3/core-js/symbol/replace");
var _Symbol$patternMatch = require("@babel/runtime-corejs3/core-js/symbol/pattern-match");
var _Symbol$observable = require("@babel/runtime-corejs3/core-js/symbol/observable");
var _Symbol$match = require("@babel/runtime-corejs3/core-js/symbol/match");
var _Symbol$keyFor = require("@babel/runtime-corejs3/core-js/symbol/key-for");
var _Symbol$iterator = require("@babel/runtime-corejs3/core-js/symbol/iterator");
var _Symbol$isConcatSpreadable = require("@babel/runtime-corejs3/core-js/symbol/is-concat-spreadable");
var _Symbol$hasInstance = require("@babel/runtime-corejs3/core-js/symbol/has-instance");
var _Symbol$for = require("@babel/runtime-corejs3/core-js/symbol/for");
var _Symbol$dispose = require("@babel/runtime-corejs3/core-js/symbol/dispose");
var _Symbol$asyncIterator = require("@babel/runtime-corejs3/core-js/symbol/async-iterator");
var _String$raw = require("@babel/runtime-corejs3/core-js/string/raw");
var _String$fromCodePoint = require("@babel/runtime-corejs3/core-js/string/from-code-point");
var _Reflect$setPrototypeOf = require("@babel/runtime-corejs3/core-js/reflect/set-prototype-of");
var _Reflect$set = require("@babel/runtime-corejs3/core-js/reflect/set");
var _Reflect$preventExtensions = require("@babel/runtime-corejs3/core-js/reflect/prevent-extensions");
var _Reflect$ownKeys = require("@babel/runtime-corejs3/core-js/reflect/own-keys");
var _Reflect$metadata = require("@babel/runtime-corejs3/core-js/reflect/metadata");
var _Reflect$isExtensible = require("@babel/runtime-corejs3/core-js/reflect/is-extensible");
var _Reflect$hasOwnMetadata = require("@babel/runtime-corejs3/core-js/reflect/has-own-metadata");
var _Reflect$hasMetadata = require("@babel/runtime-corejs3/core-js/reflect/has-metadata");
var _Reflect$has = require("@babel/runtime-corejs3/core-js/reflect/has");
var _Reflect$get = require("@babel/runtime-corejs3/core-js/reflect/get");
var _Reflect$getPrototypeOf = require("@babel/runtime-corejs3/core-js/reflect/get-prototype-of");
var _Reflect$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js/reflect/get-own-property-descriptor");
var _Reflect$getOwnMetadataKeys = require("@babel/runtime-corejs3/core-js/reflect/get-own-metadata-keys");
var _Reflect$getOwnMetadata = require("@babel/runtime-corejs3/core-js/reflect/get-own-metadata");
var _Reflect$getMetadataKeys = require("@babel/runtime-corejs3/core-js/reflect/get-metadata-keys");
var _Reflect$getMetadata = require("@babel/runtime-corejs3/core-js/reflect/get-metadata");
var _Reflect$deleteProperty = require("@babel/runtime-corejs3/core-js/reflect/delete-property");
var _Reflect$deleteMetadata = require("@babel/runtime-corejs3/core-js/reflect/delete-metadata");
var _Reflect$defineProperty = require("@babel/runtime-corejs3/core-js/reflect/define-property");
var _Reflect$defineMetadata = require("@babel/runtime-corejs3/core-js/reflect/define-metadata");
var _Reflect$construct = require("@babel/runtime-corejs3/core-js/reflect/construct");
var _Reflect$apply = require("@babel/runtime-corejs3/core-js/reflect/apply");
var _Object$values = require("@babel/runtime-corejs3/core-js/object/values");
var _Object$setPrototypeOf = require("@babel/runtime-corejs3/core-js/object/set-prototype-of");
var _Object$seal = require("@babel/runtime-corejs3/core-js/object/seal");
var _Object$preventExtensions = require("@babel/runtime-corejs3/core-js/object/prevent-extensions");
var _Object$keys = require("@babel/runtime-corejs3/core-js/object/keys");
var _Object$is = require("@babel/runtime-corejs3/core-js/object/is");
var _Object$isSealed = require("@babel/runtime-corejs3/core-js/object/is-sealed");
var _Object$isFrozen = require("@babel/runtime-corejs3/core-js/object/is-frozen");
var _Object$isExtensible = require("@babel/runtime-corejs3/core-js/object/is-extensible");
var _Object$getPrototypeOf = require("@babel/runtime-corejs3/core-js/object/get-prototype-of");
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js/object/get-own-property-symbols");
var _Object$getOwnPropertyNames = require("@babel/runtime-corejs3/core-js/object/get-own-property-names");
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js/object/get-own-property-descriptors");
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js/object/get-own-property-descriptor");
var _Object$fromEntries = require("@babel/runtime-corejs3/core-js/object/from-entries");
var _Object$freeze = require("@babel/runtime-corejs3/core-js/object/freeze");
var _Object$entries = require("@babel/runtime-corejs3/core-js/object/entries");
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js/object/define-properties");
var _Object$create = require("@babel/runtime-corejs3/core-js/object/create");
var _Object$assign = require("@babel/runtime-corejs3/core-js/object/assign");
var _Number$parseInt = require("@babel/runtime-corejs3/core-js/number/parse-int");
var _Number$parseFloat = require("@babel/runtime-corejs3/core-js/number/parse-float");
var _Number$isSafeInteger = require("@babel/runtime-corejs3/core-js/number/is-safe-integer");
var _Number$isNaN = require("@babel/runtime-corejs3/core-js/number/is-nan");
var _Number$isInteger = require("@babel/runtime-corejs3/core-js/number/is-integer");
var _Number$isFinite = require("@babel/runtime-corejs3/core-js/number/is-finite");
var _Number$fromString = require("@babel/runtime-corejs3/core-js/number/from-string");
var _Number$MIN_SAFE_INTEGER = require("@babel/runtime-corejs3/core-js/number/min-safe-integer");
var _Number$MAX_SAFE_INTEGER = require("@babel/runtime-corejs3/core-js/number/max-safe-integer");
var _Number$EPSILON = require("@babel/runtime-corejs3/core-js/number/epsilon");
var _Math$umulh = require("@babel/runtime-corejs3/core-js/math/umulh");
var _Math$trunc = require("@babel/runtime-corejs3/core-js/math/trunc");
var _Math$tanh = require("@babel/runtime-corejs3/core-js/math/tanh");
var _Math$sinh = require("@babel/runtime-corejs3/core-js/math/sinh");
var _Math$signbit = require("@babel/runtime-corejs3/core-js/math/signbit");
var _Math$sign = require("@babel/runtime-corejs3/core-js/math/sign");
var _Math$seededPRNG = require("@babel/runtime-corejs3/core-js/math/seeded-prng");
var _Math$scale = require("@babel/runtime-corejs3/core-js/math/scale");
var _Math$radians = require("@babel/runtime-corejs3/core-js/math/radians");
var _Math$log2 = require("@babel/runtime-corejs3/core-js/math/log2");
var _Math$log1p = require("@babel/runtime-corejs3/core-js/math/log1p");
var _Math$log = require("@babel/runtime-corejs3/core-js/math/log10");
var _Math$isubh = require("@babel/runtime-corejs3/core-js/math/isubh");
var _Math$imulh = require("@babel/runtime-corejs3/core-js/math/imulh");
var _Math$imul = require("@babel/runtime-corejs3/core-js/math/imul");
var _Math$iaddh = require("@babel/runtime-corejs3/core-js/math/iaddh");
var _Math$hypot = require("@babel/runtime-corejs3/core-js/math/hypot");
var _Math$fscale = require("@babel/runtime-corejs3/core-js/math/fscale");
var _Math$fround = require("@babel/runtime-corejs3/core-js/math/fround");
var _Math$expm = require("@babel/runtime-corejs3/core-js/math/expm1");
var _Math$degrees = require("@babel/runtime-corejs3/core-js/math/degrees");
var _Math$cosh = require("@babel/runtime-corejs3/core-js/math/cosh");
var _Math$clz = require("@babel/runtime-corejs3/core-js/math/clz32");
var _Math$clamp = require("@babel/runtime-corejs3/core-js/math/clamp");
var _Math$cbrt = require("@babel/runtime-corejs3/core-js/math/cbrt");
var _Math$atanh = require("@babel/runtime-corejs3/core-js/math/atanh");
var _Math$asinh = require("@babel/runtime-corejs3/core-js/math/asinh");
var _Math$acosh = require("@babel/runtime-corejs3/core-js/math/acosh");
var _Math$RAD_PER_DEG = require("@babel/runtime-corejs3/core-js/math/rad-per-deg");
var _Math$DEG_PER_RAD = require("@babel/runtime-corejs3/core-js/math/deg-per-rad");
var _JSON$stringify = require("@babel/runtime-corejs3/core-js/json/stringify");
var _Date$now = require("@babel/runtime-corejs3/core-js/date/now");
var _Array$of = require("@babel/runtime-corejs3/core-js/array/of");
var _Array$isArray = require("@babel/runtime-corejs3/core-js/array/is-array");
var _Array$from = require("@babel/runtime-corejs3/core-js/array/from");
_Array$from;
_Array$isArray;
_Array$of;
_Date$now;
_JSON$stringify;
_Math$DEG_PER_RAD;
_Math$RAD_PER_DEG;
_Math$acosh;
_Math$asinh;
_Math$atanh;
_Math$cbrt;
_Math$clamp;
_Math$clz;
_Math$cosh;
_Math$degrees;
_Math$expm;
_Math$fround;
_Math$fscale;
_Math$hypot;
_Math$iaddh;
_Math$imul;
_Math$imulh;
_Math$isubh;
_Math$log;
_Math$log1p;
_Math$log2;
_Math$radians;
_Math$scale;
_Math$seededPRNG;
_Math$sign;
_Math$signbit;
_Math$sinh;
_Math$tanh;
_Math$trunc;
_Math$umulh;
_Number$EPSILON;
_Number$MAX_SAFE_INTEGER;
_Number$MIN_SAFE_INTEGER;
_Number$fromString;
_Number$isFinite;
_Number$isInteger;
_Number$isNaN;
_Number$isSafeInteger;
_Number$parseFloat;
_Number$parseInt;
_Object$assign;
_Object$create;
_Object$defineProperties;
_Object$defineProperty;
_Object$entries;
_Object$freeze;
_Object$fromEntries;
_Object$getOwnPropertyDescriptor;
_Object$getOwnPropertyDescriptors;
_Object$getOwnPropertyNames;
_Object$getOwnPropertySymbols;
_Object$getPrototypeOf;
_Object$isExtensible;
_Object$isFrozen;
_Object$isSealed;
_Object$is;
_Object$keys;
_Object$preventExtensions;
_Object$seal;
_Object$setPrototypeOf;
_Object$values;
_Reflect$apply;
_Reflect$construct;
_Reflect$defineMetadata;
_Reflect$defineProperty;
_Reflect$deleteMetadata;
_Reflect$deleteProperty;
_Reflect$getMetadata;
_Reflect$getMetadataKeys;
_Reflect$getOwnMetadata;
_Reflect$getOwnMetadataKeys;
_Reflect$getOwnPropertyDescriptor;
_Reflect$getPrototypeOf;
_Reflect$get;
_Reflect$has;
_Reflect$hasMetadata;
_Reflect$hasOwnMetadata;
_Reflect$isExtensible;
_Reflect$metadata;
_Reflect$ownKeys;
_Reflect$preventExtensions;
_Reflect$set;
_Reflect$setPrototypeOf;
_String$fromCodePoint;
_String$raw;
_Symbol$asyncIterator;
_Symbol$dispose;
_Symbol$for;
_Symbol$hasInstance;
_Symbol$isConcatSpreadable;
_Symbol$iterator;
_Symbol$keyFor;
_Symbol$match;
_Symbol$observable;
_Symbol$patternMatch;
_Symbol$replace;
_Symbol$search;
_Symbol$species;
_Symbol$split;
_Symbol$toPrimitive;
_Symbol$toStringTag;
_Symbol$unscopables;
Foo.bar;
Array.something;
Date.something;
JSON.parse;
Math.pow;
_Symbol.something;

View File

@ -0,0 +1,123 @@
Array.from
Array.isArray
Array.of
Date.now
JSON.stringify
Math.DEG_PER_RAD
Math.RAD_PER_DEG
Math.acosh
Math.asinh
Math.atanh
Math.cbrt
Math.clamp
Math.clz32
Math.cosh
Math.degrees
Math.expm1
Math.fround
Math.fscale
Math.hypot
Math.iaddh
Math.imul
Math.imulh
Math.isubh
Math.log10
Math.log1p
Math.log2
Math.radians
Math.scale
Math.seededPRNG
Math.sign
Math.signbit
Math.sinh
Math.tanh
Math.trunc
Math.umulh
Number.EPSILON
Number.MAX_SAFE_INTEGER
Number.MIN_SAFE_INTEGER
Number.fromString
Number.isFinite
Number.isInteger
Number.isNaN
Number.isSafeInteger
Number.parseFloat
Number.parseInt
Object.assign
Object.create
Object.defineProperties
Object.defineProperty
Object.entries
Object.freeze
Object.fromEntries
Object.getOwnPropertyDescriptor
Object.getOwnPropertyDescriptors
Object.getOwnPropertyNames
Object.getOwnPropertySymbols
Object.getPrototypeOf
Object.isExtensible
Object.isFrozen
Object.isSealed
Object.is
Object.keys
Object.preventExtensions
Object.seal
Object.setPrototypeOf
Object.values
Reflect.apply
Reflect.construct
Reflect.defineMetadata
Reflect.defineProperty
Reflect.deleteMetadata
Reflect.deleteProperty
Reflect.getMetadata
Reflect.getMetadataKeys
Reflect.getOwnMetadata
Reflect.getOwnMetadataKeys
Reflect.getOwnPropertyDescriptor
Reflect.getPrototypeOf
Reflect.get
Reflect.has
Reflect.hasMetadata
Reflect.hasOwnMetadata
Reflect.isExtensible
Reflect.metadata
Reflect.ownKeys
Reflect.preventExtensions
Reflect.set
Reflect.setPrototypeOf
String.fromCodePoint
String.raw
Symbol.asyncIterator
Symbol.dispose
Symbol.for
Symbol.hasInstance
Symbol.isConcatSpreadable
Symbol.iterator
Symbol.keyFor
Symbol.match
Symbol.observable
Symbol.patternMatch
Symbol.replace
Symbol.search
Symbol.species
Symbol.split
Symbol.toPrimitive
Symbol.toStringTag
Symbol.unscopables
Foo.bar
Array.something
Date.something
JSON.parse
Math.pow
Symbol.something

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }]]
}

View File

@ -0,0 +1,277 @@
var _Symbol$unscopables = require("@babel/runtime-corejs3/core-js-stable/symbol/unscopables");
var _Symbol$toStringTag = require("@babel/runtime-corejs3/core-js-stable/symbol/to-string-tag");
var _Symbol$toPrimitive = require("@babel/runtime-corejs3/core-js-stable/symbol/to-primitive");
var _Symbol$split = require("@babel/runtime-corejs3/core-js-stable/symbol/split");
var _Symbol$species = require("@babel/runtime-corejs3/core-js-stable/symbol/species");
var _Symbol$search = require("@babel/runtime-corejs3/core-js-stable/symbol/search");
var _Symbol$replace = require("@babel/runtime-corejs3/core-js-stable/symbol/replace");
var _Symbol$match = require("@babel/runtime-corejs3/core-js-stable/symbol/match");
var _Symbol$keyFor = require("@babel/runtime-corejs3/core-js-stable/symbol/key-for");
var _Symbol$iterator = require("@babel/runtime-corejs3/core-js-stable/symbol/iterator");
var _Symbol$isConcatSpreadable = require("@babel/runtime-corejs3/core-js-stable/symbol/is-concat-spreadable");
var _Symbol$hasInstance = require("@babel/runtime-corejs3/core-js-stable/symbol/has-instance");
var _Symbol$for = require("@babel/runtime-corejs3/core-js-stable/symbol/for");
var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
var _Symbol$asyncIterator = require("@babel/runtime-corejs3/core-js-stable/symbol/async-iterator");
var _String$raw = require("@babel/runtime-corejs3/core-js-stable/string/raw");
var _String$fromCodePoint = require("@babel/runtime-corejs3/core-js-stable/string/from-code-point");
var _Reflect$setPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/reflect/set-prototype-of");
var _Reflect$set = require("@babel/runtime-corejs3/core-js-stable/reflect/set");
var _Reflect$preventExtensions = require("@babel/runtime-corejs3/core-js-stable/reflect/prevent-extensions");
var _Reflect$ownKeys = require("@babel/runtime-corejs3/core-js-stable/reflect/own-keys");
var _Reflect$isExtensible = require("@babel/runtime-corejs3/core-js-stable/reflect/is-extensible");
var _Reflect$has = require("@babel/runtime-corejs3/core-js-stable/reflect/has");
var _Reflect$get = require("@babel/runtime-corejs3/core-js-stable/reflect/get");
var _Reflect$getPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/reflect/get-prototype-of");
var _Reflect$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/reflect/get-own-property-descriptor");
var _Reflect$deleteProperty = require("@babel/runtime-corejs3/core-js-stable/reflect/delete-property");
var _Reflect$defineProperty = require("@babel/runtime-corejs3/core-js-stable/reflect/define-property");
var _Reflect$construct = require("@babel/runtime-corejs3/core-js-stable/reflect/construct");
var _Reflect$apply = require("@babel/runtime-corejs3/core-js-stable/reflect/apply");
var _Object$values = require("@babel/runtime-corejs3/core-js-stable/object/values");
var _Object$setPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/object/set-prototype-of");
var _Object$seal = require("@babel/runtime-corejs3/core-js-stable/object/seal");
var _Object$preventExtensions = require("@babel/runtime-corejs3/core-js-stable/object/prevent-extensions");
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
var _Object$is = require("@babel/runtime-corejs3/core-js-stable/object/is");
var _Object$isSealed = require("@babel/runtime-corejs3/core-js-stable/object/is-sealed");
var _Object$isFrozen = require("@babel/runtime-corejs3/core-js-stable/object/is-frozen");
var _Object$isExtensible = require("@babel/runtime-corejs3/core-js-stable/object/is-extensible");
var _Object$getPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/object/get-prototype-of");
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
var _Object$getOwnPropertyNames = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-names");
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
var _Object$fromEntries = require("@babel/runtime-corejs3/core-js-stable/object/from-entries");
var _Object$freeze = require("@babel/runtime-corejs3/core-js-stable/object/freeze");
var _Object$entries = require("@babel/runtime-corejs3/core-js-stable/object/entries");
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
var _Object$create = require("@babel/runtime-corejs3/core-js-stable/object/create");
var _Object$assign = require("@babel/runtime-corejs3/core-js-stable/object/assign");
var _Number$parseInt = require("@babel/runtime-corejs3/core-js-stable/number/parse-int");
var _Number$parseFloat = require("@babel/runtime-corejs3/core-js-stable/number/parse-float");
var _Number$isSafeInteger = require("@babel/runtime-corejs3/core-js-stable/number/is-safe-integer");
var _Number$isNaN = require("@babel/runtime-corejs3/core-js-stable/number/is-nan");
var _Number$isInteger = require("@babel/runtime-corejs3/core-js-stable/number/is-integer");
var _Number$isFinite = require("@babel/runtime-corejs3/core-js-stable/number/is-finite");
var _Number$MIN_SAFE_INTEGER = require("@babel/runtime-corejs3/core-js-stable/number/min-safe-integer");
var _Number$MAX_SAFE_INTEGER = require("@babel/runtime-corejs3/core-js-stable/number/max-safe-integer");
var _Number$EPSILON = require("@babel/runtime-corejs3/core-js-stable/number/epsilon");
var _Math$trunc = require("@babel/runtime-corejs3/core-js-stable/math/trunc");
var _Math$tanh = require("@babel/runtime-corejs3/core-js-stable/math/tanh");
var _Math$sinh = require("@babel/runtime-corejs3/core-js-stable/math/sinh");
var _Math$sign = require("@babel/runtime-corejs3/core-js-stable/math/sign");
var _Math$log2 = require("@babel/runtime-corejs3/core-js-stable/math/log2");
var _Math$log1p = require("@babel/runtime-corejs3/core-js-stable/math/log1p");
var _Math$log = require("@babel/runtime-corejs3/core-js-stable/math/log10");
var _Math$imul = require("@babel/runtime-corejs3/core-js-stable/math/imul");
var _Math$hypot = require("@babel/runtime-corejs3/core-js-stable/math/hypot");
var _Math$fround = require("@babel/runtime-corejs3/core-js-stable/math/fround");
var _Math$expm = require("@babel/runtime-corejs3/core-js-stable/math/expm1");
var _Math$cosh = require("@babel/runtime-corejs3/core-js-stable/math/cosh");
var _Math$clz = require("@babel/runtime-corejs3/core-js-stable/math/clz32");
var _Math$cbrt = require("@babel/runtime-corejs3/core-js-stable/math/cbrt");
var _Math$atanh = require("@babel/runtime-corejs3/core-js-stable/math/atanh");
var _Math$asinh = require("@babel/runtime-corejs3/core-js-stable/math/asinh");
var _Math$acosh = require("@babel/runtime-corejs3/core-js-stable/math/acosh");
var _JSON$stringify = require("@babel/runtime-corejs3/core-js-stable/json/stringify");
var _Date$now = require("@babel/runtime-corejs3/core-js-stable/date/now");
var _Array$of = require("@babel/runtime-corejs3/core-js-stable/array/of");
var _Array$isArray = require("@babel/runtime-corejs3/core-js-stable/array/is-array");
var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
_Array$from;
_Array$isArray;
_Array$of;
_Date$now;
_JSON$stringify;
Math.DEG_PER_RAD;
Math.RAD_PER_DEG;
_Math$acosh;
_Math$asinh;
_Math$atanh;
_Math$cbrt;
Math.clamp;
_Math$clz;
_Math$cosh;
Math.degrees;
_Math$expm;
_Math$fround;
Math.fscale;
_Math$hypot;
Math.iaddh;
_Math$imul;
Math.imulh;
Math.isubh;
_Math$log;
_Math$log1p;
_Math$log2;
Math.radians;
Math.scale;
Math.seededPRNG;
_Math$sign;
Math.signbit;
_Math$sinh;
_Math$tanh;
_Math$trunc;
Math.umulh;
_Number$EPSILON;
_Number$MAX_SAFE_INTEGER;
_Number$MIN_SAFE_INTEGER;
Number.fromString;
_Number$isFinite;
_Number$isInteger;
_Number$isNaN;
_Number$isSafeInteger;
_Number$parseFloat;
_Number$parseInt;
_Object$assign;
_Object$create;
_Object$defineProperties;
_Object$defineProperty;
_Object$entries;
_Object$freeze;
_Object$fromEntries;
_Object$getOwnPropertyDescriptor;
_Object$getOwnPropertyDescriptors;
_Object$getOwnPropertyNames;
_Object$getOwnPropertySymbols;
_Object$getPrototypeOf;
_Object$isExtensible;
_Object$isFrozen;
_Object$isSealed;
_Object$is;
_Object$keys;
_Object$preventExtensions;
_Object$seal;
_Object$setPrototypeOf;
_Object$values;
_Reflect$apply;
_Reflect$construct;
Reflect.defineMetadata;
_Reflect$defineProperty;
Reflect.deleteMetadata;
_Reflect$deleteProperty;
Reflect.getMetadata;
Reflect.getMetadataKeys;
Reflect.getOwnMetadata;
Reflect.getOwnMetadataKeys;
_Reflect$getOwnPropertyDescriptor;
_Reflect$getPrototypeOf;
_Reflect$get;
_Reflect$has;
Reflect.hasMetadata;
Reflect.hasOwnMetadata;
_Reflect$isExtensible;
Reflect.metadata;
_Reflect$ownKeys;
_Reflect$preventExtensions;
_Reflect$set;
_Reflect$setPrototypeOf;
_String$fromCodePoint;
_String$raw;
_Symbol$asyncIterator;
_Symbol.dispose;
_Symbol$for;
_Symbol$hasInstance;
_Symbol$isConcatSpreadable;
_Symbol$iterator;
_Symbol$keyFor;
_Symbol$match;
_Symbol.observable;
_Symbol.patternMatch;
_Symbol$replace;
_Symbol$search;
_Symbol$species;
_Symbol$split;
_Symbol$toPrimitive;
_Symbol$toStringTag;
_Symbol$unscopables;
Foo.bar;
Array.something;
Date.something;
JSON.parse;
Math.pow;
_Symbol.something;

View File

@ -0,0 +1 @@
Promise.resolve;

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"]
}

View File

@ -0,0 +1,3 @@
var _Promise = require("@babel/runtime-corejs3/core-js-stable/promise");
_Promise.resolve;

View File

@ -0,0 +1 @@
class Foo {}

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }], "transform-classes"]
}

View File

@ -0,0 +1,7 @@
var _classCallCheck = require("@babel/runtime-corejs3/helpers/classCallCheck");
let Foo = function Foo() {
"use strict";
_classCallCheck(this, Foo);
};

View File

@ -0,0 +1,3 @@
for (var i of arr) {
}

View File

@ -0,0 +1,3 @@
{
"plugins": ["transform-for-of", ["transform-runtime", { "corejs": 3 }]]
}

View File

@ -0,0 +1,24 @@
var _getIterator = require("@babel/runtime-corejs3/core-js/get-iterator");
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = _getIterator(arr), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var i = _step.value;
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}

View File

@ -0,0 +1,9 @@
import foo, * as bar from "someModule";
export const myWord = Symbol("abc");
export function* giveWord () {
yield myWord;
}
foo;
bar;

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"]
}

View File

@ -0,0 +1,24 @@
import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
import _Symbol from "@babel/runtime-corejs3/core-js-stable/symbol";
var _marked =
/*#__PURE__*/
_regeneratorRuntime.mark(giveWord);
import foo, * as bar from "someModule";
export const myWord = _Symbol("abc");
export function giveWord() {
return _regeneratorRuntime.wrap(function giveWord$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return myWord;
case 2:
case "end":
return _context.stop();
}
}, _marked);
}
foo;
bar;

View File

@ -0,0 +1,7 @@
foo.includes(1, 2, 3, 4);
[1, 2, 3, 4].includes(1);
'1234'.includes('1');
keys(bar).includes(1, 2);

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }]]
}

View File

@ -0,0 +1,11 @@
var _includesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/includes");
var _context, _context2, _context3;
_includesInstanceProperty(foo).call(foo, 1, 2, 3, 4);
_includesInstanceProperty(_context = [1, 2, 3, 4]).call(_context, 1);
_includesInstanceProperty(_context2 = '1234').call(_context2, '1');
_includesInstanceProperty(_context3 = keys(bar)).call(_context3, 1, 2);

View File

@ -0,0 +1,7 @@
foo.includes;
keys(bar).includes;
foo.includes.apply(bar, [1, 2]);
foo.includes = 42;

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }]]
}

View File

@ -0,0 +1,9 @@
var _includesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/includes");
_includesInstanceProperty(foo);
_includesInstanceProperty(keys(bar));
_includesInstanceProperty(foo).apply(bar, [1, 2]);
foo.includes = 42;

View File

@ -0,0 +1,5 @@
import foo from "foo";
class Example {
method() {}
}

View File

@ -0,0 +1,7 @@
{
"plugins": [
["transform-runtime", { "corejs": 3 }],
"transform-modules-commonjs",
"transform-classes"
]
}

View File

@ -0,0 +1,23 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
var _foo = _interopRequireDefault(require("foo"));
let Example =
/*#__PURE__*/
function () {
function Example() {
(0, _classCallCheck2.default)(this, Example);
}
(0, _createClass2.default)(Example, [{
key: "method",
value: function method() {}
}]);
return Example;
}();

View File

@ -0,0 +1,5 @@
import foo from "bar";
import { baz } from "fuz";
export const exp = foo + baz;
export * from "mod";

View File

@ -0,0 +1,6 @@
{
"plugins": [
["transform-runtime", { "corejs": 3 }],
["transform-modules-commonjs", { "loose": true }]
]
}

View File

@ -0,0 +1,30 @@
"use strict";
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
var _context;
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
exports.__esModule = true;
var _exportNames = {
exp: true
};
exports.exp = void 0;
var _bar = _interopRequireDefault(require("bar"));
var _fuz = require("fuz");
var _mod = require("mod");
_forEachInstanceProperty(_context = _Object$keys(_mod)).call(_context, function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
exports[key] = _mod[key];
});
const exp = _bar.default + _fuz.baz;
exports.exp = exp;

View File

@ -0,0 +1,5 @@
import foo from "bar";
import { baz } from "fuz";
export const exp = foo + baz;
export * from "mod";

View File

@ -0,0 +1,6 @@
{
"plugins": [
["transform-runtime", { "corejs": 3 }],
"transform-modules-commonjs"
]
}

View File

@ -0,0 +1,41 @@
"use strict";
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
var _context;
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
_Object$defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
exp: true
};
exports.exp = void 0;
var _bar = _interopRequireDefault(require("bar"));
var _fuz = require("fuz");
var _mod = require("mod");
_forEachInstanceProperty(_context = _Object$keys(_mod)).call(_context, function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
_Object$defineProperty(exports, key, {
enumerable: true,
get: function () {
return _mod[key];
}
});
});
const exp = _bar.default + _fuz.baz;
exports.exp = exp;

View File

@ -0,0 +1 @@
class Foo {}

View File

@ -0,0 +1,6 @@
{
"plugins": [
["transform-runtime", { "helpers": false, "corejs": 3 }],
"transform-classes"
]
}

View File

@ -0,0 +1,7 @@
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
let Foo = function Foo() {
"use strict";
_classCallCheck(this, Foo);
};

View File

@ -0,0 +1,2 @@
void function* () {
};

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"]
}

View File

@ -0,0 +1,13 @@
var _regeneratorRuntime = require("@babel/runtime-corejs3/regenerator");
void
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee() {
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
case "end":
return _context.stop();
}
}, _callee);
});

View File

@ -0,0 +1 @@
const method = array[Symbol.iterator];

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"]
}

View File

@ -0,0 +1,3 @@
var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method");
const method = _getIteratorMethod(array);

View File

@ -0,0 +1 @@
const iterator = array[Symbol.iterator]();

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"]
}

View File

@ -0,0 +1,3 @@
var _getIterator = require("@babel/runtime-corejs3/core-js/get-iterator");
const iterator = _getIterator(array);

View File

@ -0,0 +1 @@
Symbol.iterator in Object(arr);

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"]
}

View File

@ -0,0 +1,3 @@
var _isIterable = require("@babel/runtime-corejs3/core-js/is-iterable");
_isIterable(Object(arr));

View File

@ -0,0 +1 @@
Symbol.iterator;

View File

@ -0,0 +1,3 @@
{
"plugins": [["transform-runtime", { "corejs": 3 }], "transform-regenerator"]
}

View File

@ -0,0 +1,3 @@
var _Symbol$iterator = require("@babel/runtime-corejs3/core-js-stable/symbol/iterator");
_Symbol$iterator;

View File

@ -1,6 +1,6 @@
var _class; var _class;
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
import { computed } from 'mobx'; import { computed } from 'mobx';
let Foo = (_class = class Foo { let Foo = (_class = class Foo {

View File

@ -1,6 +1,6 @@
var _class, _descriptor; var _class, _descriptor;
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.'); } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.'); }

View File

@ -2,6 +2,9 @@
> Provides polyfills necessary for a full ES2015+ environment > Provides polyfills necessary for a full ES2015+ environment
**This package has been deprecated in favor of separate inclusion of required parts of [`core-js`](https://github.com/zloirock/core-js) and [`regenerator-runtime`](https://www.npmjs.com/package/regenerator-runtime). See our website [@babel/polyfill](https://babeljs.io/docs/en/next/babel-polyfill.html) for more information.**
See our website [@babel/polyfill](https://babeljs.io/docs/en/next/babel-polyfill.html) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20polyfill%22+is%3Aopen) associated with this package. See our website [@babel/polyfill](https://babeljs.io/docs/en/next/babel-polyfill.html) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20polyfill%22+is%3Aopen) associated with this package.
## Install ## Install

View File

@ -11,7 +11,7 @@
"repository": "https://github.com/babel/babel/tree/master/packages/babel-polyfill", "repository": "https://github.com/babel/babel/tree/master/packages/babel-polyfill",
"main": "lib/index.js", "main": "lib/index.js",
"dependencies": { "dependencies": {
"core-js": "^2.5.7", "core-js": "^2.6.5",
"regenerator-runtime": "^0.13.2" "regenerator-runtime": "^0.13.2"
} }
} }

View File

@ -3,8 +3,11 @@ import "core-js/es6";
// Standard now // Standard now
import "core-js/fn/array/includes"; import "core-js/fn/array/includes";
import "core-js/fn/array/flat-map";
import "core-js/fn/string/pad-start"; import "core-js/fn/string/pad-start";
import "core-js/fn/string/pad-end"; import "core-js/fn/string/pad-end";
import "core-js/fn/string/trim-start";
import "core-js/fn/string/trim-end";
import "core-js/fn/symbol/async-iterator"; import "core-js/fn/symbol/async-iterator";
import "core-js/fn/object/get-own-property-descriptors"; import "core-js/fn/object/get-own-property-descriptors";
import "core-js/fn/object/values"; import "core-js/fn/object/values";

View File

@ -1,6 +1,6 @@
# Contributing # Contributing
## Adding a new plugin to support (when approved in the next ECMAScript version) ## Adding a new plugin or polyfill to support (when approved in the next ECMAScript version)
### Update [`plugin-features.js`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/plugin-features.js) ### Update [`plugin-features.js`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/plugin-features.js)
@ -27,7 +27,7 @@ And add them in this structure:
}, },
``` ```
### Update [`built-in-features.js`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/built-in-features.js) ### Update data for `core-js@2` polyfilling
*Example:* *Example:*
@ -38,19 +38,29 @@ and split it with `/`:
`Object static methods / Object.values` `Object static methods / Object.values`
Find the corresponding module on [core-js](https://github.com/zloirock/core-js/tree/master/modules): Find the corresponding module on [`core-js@2`](https://github.com/zloirock/core-js/tree/v2/modules):
`es7.object.values.js` `es7.object.values.js`
Find required ES version in [`built-in-features.js`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/built-in-features.js) and add the new feature: Find required ES version in [`corejs2-built-in-features.js`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/corejs2-built-in-features.js) and add the new feature:
```js ```js
const es2017 = { const es = {
//... //...
"es7.object.values": "Object static methods / Object.values" "es7.object.values": "Object static methods / Object.values"
} }
``` ```
If you wan to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related `core-js` modules to [this file](https://github.com/babel/babel/blob/master/packages/babel-preset-env/polyfills/corejs2/built-in-definitions.js).
### Update data for `core-js@3` polyfilling
Just update the version of [`core-js-compat`](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) in dependencies.
If you wan to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related [`core-js`](https://github.com/zloirock/core-js/tree/master/packages/core-js/modules) modules to [this file](https://github.com/babel/babel/blob/master/packages/babel-preset-env/polyfills/corejs3/built-in-definitions.js).
If you want to mark a new proposal as shipped, add it to [this list](https://github.com/babel/babel/blob/master/packages/babel-preset-env/polyfills/corejs3/shipped-proposals.js).
### Update [`plugins.json`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/plugins.json) ### Update [`plugins.json`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/plugins.json)
Until `compat-table` is a standalone npm module for data we are using the git url Until `compat-table` is a standalone npm module for data we are using the git url

View File

@ -46,6 +46,7 @@ const es = {
}, },
"es6.array.find": "Array.prototype methods / Array.prototype.find", "es6.array.find": "Array.prototype methods / Array.prototype.find",
"es6.array.find-index": "Array.prototype methods / Array.prototype.findIndex", "es6.array.find-index": "Array.prototype methods / Array.prototype.findIndex",
"es7.array.flat-map": "Array.prototype.{flat, flatMap} / Array.prototype.flatMap",
"es6.array.for-each": "Array methods / Array.prototype.forEach", "es6.array.for-each": "Array methods / Array.prototype.forEach",
"es6.array.from": "Array static methods / Array.from", "es6.array.from": "Array static methods / Array.from",
"es7.array.includes": "Array.prototype.includes", "es7.array.includes": "Array.prototype.includes",
@ -175,6 +176,7 @@ const es = {
], ],
}, },
"es6.object.prevent-extensions": "Object static methods accept primitives / Object.preventExtensions", "es6.object.prevent-extensions": "Object static methods accept primitives / Object.preventExtensions",
"es6.object.to-string": "well-known symbols / Symbol.toStringTag",
"es6.object.is": "Object static methods / Object.is", "es6.object.is": "Object static methods / Object.is",
"es6.object.is-frozen": "Object static methods accept primitives / Object.isFrozen", "es6.object.is-frozen": "Object static methods accept primitives / Object.isFrozen",
"es6.object.is-sealed": "Object static methods accept primitives / Object.isSealed", "es6.object.is-sealed": "Object static methods accept primitives / Object.isSealed",
@ -290,6 +292,8 @@ const es = {
"es6.string.sub": "String.prototype HTML methods", "es6.string.sub": "String.prototype HTML methods",
"es6.string.sup": "String.prototype HTML methods", "es6.string.sup": "String.prototype HTML methods",
"es6.string.trim": "String properties and methods / String.prototype.trim", "es6.string.trim": "String properties and methods / String.prototype.trim",
"es7.string.trim-left": "string trimming / String.prototype.trimStart",
"es7.string.trim-right": "string trimming / String.prototype.trimEnd",
"es6.typed.array-buffer": "typed arrays / ArrayBuffer[Symbol.species]", "es6.typed.array-buffer": "typed arrays / ArrayBuffer[Symbol.species]",
"es6.typed.data-view": "typed arrays / DataView", "es6.typed.data-view": "typed arrays / DataView",

View File

@ -4,6 +4,7 @@
"edge": "13", "edge": "13",
"firefox": "34", "firefox": "34",
"node": "4", "node": "4",
"samsung": "3.4",
"opera": "28", "opera": "28",
"electron": "0.24" "electron": "0.24"
}, },
@ -14,6 +15,7 @@
"safari": "9", "safari": "9",
"node": "4", "node": "4",
"ios": "9", "ios": "9",
"samsung": "4",
"opera": "31", "opera": "31",
"electron": "0.31" "electron": "0.31"
}, },
@ -23,6 +25,7 @@
"safari": "10", "safari": "10",
"node": "6.5", "node": "6.5",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "38", "opera": "38",
"electron": "1.2" "electron": "1.2"
}, },
@ -33,6 +36,7 @@
"safari": "10", "safari": "10",
"node": "6", "node": "6",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "34", "opera": "34",
"electron": "0.36" "electron": "0.36"
}, },
@ -44,6 +48,7 @@
"node": "4", "node": "4",
"ie": "11", "ie": "11",
"ios": "10", "ios": "10",
"samsung": "3.4",
"opera": "28", "opera": "28",
"electron": "0.24" "electron": "0.24"
}, },
@ -54,6 +59,7 @@
"safari": "10", "safari": "10",
"node": "5", "node": "5",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "33", "opera": "33",
"electron": "0.36" "electron": "0.36"
}, },
@ -64,6 +70,7 @@
"safari": "10", "safari": "10",
"node": "5", "node": "5",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "33", "opera": "33",
"electron": "0.36" "electron": "0.36"
}, },
@ -74,6 +81,7 @@
"safari": "9", "safari": "9",
"node": "4", "node": "4",
"ios": "9", "ios": "9",
"samsung": "4",
"opera": "30", "opera": "30",
"electron": "0.29" "electron": "0.29"
}, },
@ -84,6 +92,7 @@
"safari": "9", "safari": "9",
"node": "4", "node": "4",
"ios": "9", "ios": "9",
"samsung": "3.4",
"opera": "29", "opera": "29",
"electron": "0.27" "electron": "0.27"
}, },
@ -94,6 +103,7 @@
"safari": "7.1", "safari": "7.1",
"node": "4", "node": "4",
"ios": "8", "ios": "8",
"samsung": "4",
"opera": "31", "opera": "31",
"electron": "0.31" "electron": "0.31"
}, },
@ -104,6 +114,7 @@
"safari": "10", "safari": "10",
"node": "6.5", "node": "6.5",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "38", "opera": "38",
"electron": "1.2" "electron": "1.2"
}, },
@ -114,6 +125,7 @@
"safari": "10", "safari": "10",
"node": "6", "node": "6",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "36", "opera": "36",
"electron": "1" "electron": "1"
}, },
@ -122,6 +134,7 @@
"safari": "11.1", "safari": "11.1",
"node": "8.10", "node": "8.10",
"ios": "11.3", "ios": "11.3",
"samsung": "8.2",
"opera": "49", "opera": "49",
"electron": "3.1" "electron": "3.1"
}, },
@ -132,6 +145,7 @@
"safari": "12", "safari": "12",
"node": "6", "node": "6",
"ios": "12", "ios": "12",
"samsung": "5",
"opera": "37", "opera": "37",
"electron": "1.1" "electron": "1.1"
}, },
@ -142,6 +156,7 @@
"safari": "10", "safari": "10",
"node": "5", "node": "5",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "33", "opera": "33",
"electron": "0.36" "electron": "0.36"
}, },
@ -152,6 +167,7 @@
"safari": "10", "safari": "10",
"node": "6", "node": "6",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "36", "opera": "36",
"electron": "1" "electron": "1"
}, },
@ -162,6 +178,7 @@
"safari": "10", "safari": "10",
"node": "6.5", "node": "6.5",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "38", "opera": "38",
"electron": "1.2" "electron": "1.2"
}, },
@ -172,6 +189,7 @@
"safari": "10.1", "safari": "10.1",
"node": "6", "node": "6",
"ios": "10.3", "ios": "10.3",
"samsung": "5",
"opera": "36", "opera": "36",
"electron": "1" "electron": "1"
}, },
@ -182,6 +200,7 @@
"safari": "9", "safari": "9",
"node": "0.12", "node": "0.12",
"ios": "9", "ios": "9",
"samsung": "3",
"opera": "25", "opera": "25",
"electron": "0.2" "electron": "0.2"
}, },
@ -192,6 +211,7 @@
"safari": "10", "safari": "10",
"node": "5", "node": "5",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "33", "opera": "33",
"electron": "0.36" "electron": "0.36"
}, },
@ -202,6 +222,7 @@
"safari": "10", "safari": "10",
"node": "6", "node": "6",
"ios": "10", "ios": "10",
"samsung": "5",
"opera": "37", "opera": "37",
"electron": "1.1" "electron": "1.1"
}, },
@ -212,6 +233,7 @@
"safari": "10.1", "safari": "10.1",
"node": "7", "node": "7",
"ios": "10.3", "ios": "10.3",
"samsung": "6.2",
"opera": "39", "opera": "39",
"electron": "1.3" "electron": "1.3"
}, },
@ -222,6 +244,7 @@
"safari": "11", "safari": "11",
"node": "7.6", "node": "7.6",
"ios": "11", "ios": "11",
"samsung": "6.2",
"opera": "42", "opera": "42",
"electron": "1.6" "electron": "1.6"
}, },
@ -231,6 +254,7 @@
"safari": "12", "safari": "12",
"node": "10", "node": "10",
"ios": "12", "ios": "12",
"samsung": "8.2",
"opera": "50", "opera": "50",
"electron": "3.1" "electron": "3.1"
}, },
@ -240,6 +264,7 @@
"safari": "11.1", "safari": "11.1",
"node": "8.3", "node": "8.3",
"ios": "11.3", "ios": "11.3",
"samsung": "8.2",
"opera": "47", "opera": "47",
"electron": "2.1" "electron": "2.1"
}, },

View File

@ -1,11 +1,7 @@
// These mappings represent the builtin/feature proposals that have been // These mappings represent the syntax proposals that have been
// shipped by browsers, and are enabled by the `shippedProposals` option. // shipped by browsers, and are enabled by the `shippedProposals` option.
const builtIns = { const proposalPlugins = {};
"es7.array.flat-map": "Array.prototype.{flat, flatMap} / Array.prototype.flatMap"
};
const features = {};
const pluginSyntaxMap = new Map([ const pluginSyntaxMap = new Map([
["proposal-async-generator-functions", "syntax-async-generators"], ["proposal-async-generator-functions", "syntax-async-generators"],
@ -15,4 +11,4 @@ const pluginSyntaxMap = new Map([
["proposal-json-strings", "syntax-json-strings"], ["proposal-json-strings", "syntax-json-strings"],
]); ]);
module.exports = { builtIns, features, pluginSyntaxMap }; module.exports = { proposalPlugins, pluginSyntaxMap };

View File

@ -53,7 +53,9 @@
"@babel/plugin-transform-template-literals": "^7.2.0", "@babel/plugin-transform-template-literals": "^7.2.0",
"@babel/plugin-transform-typeof-symbol": "^7.2.0", "@babel/plugin-transform-typeof-symbol": "^7.2.0",
"@babel/plugin-transform-unicode-regex": "^7.2.0", "@babel/plugin-transform-unicode-regex": "^7.2.0",
"@babel/types": "^7.3.4",
"browserslist": "^4.4.2", "browserslist": "^4.4.2",
"core-js-compat": "^3.0.0",
"invariant": "^2.2.2", "invariant": "^2.2.2",
"js-levenshtein": "^1.1.3", "js-levenshtein": "^1.1.3",
"semver": "^5.3.0" "semver": "^5.3.0"
@ -66,6 +68,7 @@
"@babel/core": "^7.3.4", "@babel/core": "^7.3.4",
"@babel/helper-fixtures": "^7.2.0", "@babel/helper-fixtures": "^7.2.0",
"@babel/helper-plugin-test-runner": "^7.0.0", "@babel/helper-plugin-test-runner": "^7.0.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"caniuse-db": "1.0.30000938", "caniuse-db": "1.0.30000938",
"compat-table": "kangax/compat-table#6d012ba020fa7415e8a2d29e87924bab79b128a3", "compat-table": "kangax/compat-table#6d012ba020fa7415e8a2d29e87924bab79b128a3",
"electron-to-chromium": "1.3.113" "electron-to-chromium": "1.3.113"

View File

@ -132,6 +132,7 @@ const environments = [
"android", "android",
"ios", "ios",
"phantom", "phantom",
"samsung",
]; ];
const compatibilityTests = flattenDeep( const compatibilityTests = flattenDeep(
@ -162,22 +163,16 @@ const getLowestImplementedVersion = ({ features }, env) => {
); );
}) })
.reduce((result, test) => { .reduce((result, test) => {
const isBuiltIn =
test.category === "built-ins" ||
test.category === "built-in extensions";
if (!test.subtests) { if (!test.subtests) {
result.push({ result.push({
name: test.name, name: test.name,
res: test.res, res: test.res,
isBuiltIn,
}); });
} else { } else {
test.subtests.forEach(subtest => test.subtests.forEach(subtest =>
result.push({ result.push({
name: `${test.name}/${subtest.name}`, name: `${test.name}/${subtest.name}`,
res: subtest.res, res: subtest.res,
isBuiltIn,
}) })
); );
} }
@ -186,20 +181,7 @@ const getLowestImplementedVersion = ({ features }, env) => {
}, []); }, []);
const unreleasedLabelForEnv = unreleasedLabels[env]; const unreleasedLabelForEnv = unreleasedLabels[env];
const envTests = tests.map(({ res: test, isBuiltIn }, i) => { const envTests = tests.map(({ res: test }, i) => {
// Babel itself doesn't implement the feature correctly,
// don't count against it
// only doing this for built-ins atm
//
// NOTE: when/if compat-table adds a babel7 key, we'll want to update this
if (!test.babel6corejs2 && isBuiltIn) {
return {
version: "0.0.0",
semver: "0.0.0",
implements: true,
};
}
const reportedVersions = Object.keys(test) const reportedVersions = Object.keys(test)
.filter(t => t.startsWith(env)) .filter(t => t.startsWith(env))
.map(t => { .map(t => {
@ -308,7 +290,7 @@ const generateData = (environments, features) => {
}); });
}; };
["plugin", "built-in"].forEach(target => { ["plugin", "corejs2-built-in"].forEach(target => {
const newData = generateData( const newData = generateData(
environments, environments,
require(`../data/${target}-features`) require(`../data/${target}-features`)

View File

@ -1,3 +1,5 @@
// @flow
export default { export default {
"syntax-async-generators": require("@babel/plugin-syntax-async-generators"), "syntax-async-generators": require("@babel/plugin-syntax-async-generators"),
"syntax-json-strings": require("@babel/plugin-syntax-json-strings"), "syntax-json-strings": require("@babel/plugin-syntax-json-strings"),

View File

@ -1,182 +0,0 @@
const ArrayNatureIterators = [
"es6.object.to-string",
"es6.array.iterator",
"web.dom.iterable",
];
const CommonIterators = ["es6.string.iterator"].concat(ArrayNatureIterators);
// TODO: this is the opposite of built-in-features so maybe generate one from the other?
export const definitions = {
builtins: {
DataView: "es6.typed.data-view",
Float32Array: "es6.typed.float32-array",
Float64Array: "es6.typed.float64-array",
Int8Array: "es6.typed.int8-array",
Int16Array: "es6.typed.int16-array",
Int32Array: "es6.typed.int32-array",
Map: ["es6.map"].concat(CommonIterators),
Number: "es6.number.constructor",
Promise: ["es6.object.to-string", "es6.promise"],
RegExp: ["es6.regexp.constructor"],
Set: ["es6.set"].concat(CommonIterators),
Symbol: ["es6.symbol", "es7.symbol.async-iterator"],
Uint8Array: "es6.typed.uint8-array",
Uint8ClampedArray: "es6.typed.uint8-clamped-array",
Uint16Array: "es6.typed.uint16-array",
Uint32Array: "es6.typed.uint32-array",
WeakMap: ["es6.weak-map"].concat(CommonIterators),
WeakSet: ["es6.weak-set"].concat(CommonIterators),
},
instanceMethods: {
__defineGetter__: ["es7.object.define-getter"],
__defineSetter__: ["es7.object.define-setter"],
__lookupGetter__: ["es7.object.lookup-getter"],
__lookupSetter__: ["es7.object.lookup-setter"],
anchor: ["es6.string.anchor"],
big: ["es6.string.big"],
bind: ["es6.function.bind"],
blink: ["es6.string.blink"],
bold: ["es6.string.bold"],
codePointAt: ["es6.string.code-point-at"],
copyWithin: ["es6.array.copy-within"],
endsWith: ["es6.string.ends-with"],
entries: ArrayNatureIterators,
every: ["es6.array.is-array"],
fill: ["es6.array.fill"],
filter: ["es6.array.filter"],
finally: ["es7.promise.finally"],
find: ["es6.array.find"],
findIndex: ["es6.array.find-index"],
fixed: ["es6.string.fixed"],
flags: ["es6.regexp.flags"],
fontcolor: ["es6.string.fontcolor"],
fontsize: ["es6.string.fontsize"],
forEach: ["es6.array.for-each", "web.dom.iterable"],
includes: ["es6.string.includes", "es7.array.includes"],
indexOf: ["es6.array.index-of"],
italics: ["es6.string.italics"],
keys: ArrayNatureIterators,
lastIndexOf: ["es6.array.last-index-of"],
link: ["es6.string.link"],
map: ["es6.array.map"],
match: ["es6.regexp.match"],
name: ["es6.function.name"],
padStart: ["es7.string.pad-start"],
padEnd: ["es7.string.pad-end"],
reduce: ["es6.array.reduce"],
reduceRight: ["es6.array.reduce-right"],
repeat: ["es6.string.repeat"],
replace: ["es6.regexp.replace"],
search: ["es6.regexp.search"],
slice: ["es6.array.slice"],
small: ["es6.string.small"],
some: ["es6.array.some"],
sort: ["es6.array.sort"],
split: ["es6.regexp.split"],
startsWith: ["es6.string.starts-with"],
strike: ["es6.string.strike"],
sub: ["es6.string.sub"],
sup: ["es6.string.sup"],
toISOString: ["es6.date.to-iso-string"],
toJSON: ["es6.date.to-json"],
toString: [
"es6.object.to-string",
"es6.date.to-string",
"es6.regexp.to-string",
],
trim: ["es6.string.trim"],
values: ArrayNatureIterators,
},
staticMethods: {
Array: {
from: ["es6.array.from", "es6.string.iterator"],
isArray: "es6.array.is-array",
of: "es6.array.of",
},
Date: {
now: "es6.date.now",
},
Object: {
assign: "es6.object.assign",
create: "es6.object.create",
defineProperty: "es6.object.define-property",
defineProperties: "es6.object.define-properties",
entries: "es7.object.entries",
freeze: "es6.object.freeze",
getOwnPropertyDescriptors: "es7.object.get-own-property-descriptors",
getOwnPropertySymbols: "es6.object.get-own-property-symbols",
is: "es6.object.is",
isExtensible: "es6.object.is-extensible",
isFrozen: "es6.object.is-frozen",
isSealed: "es6.object.is-sealed",
keys: "es6.object.keys",
preventExtensions: "es6.object.prevent-extensions",
seal: "es6.object.seal",
setPrototypeOf: "es6.object.set-prototype-of",
values: "es7.object.values",
},
Math: {
acosh: "es6.math.acosh",
asinh: "es6.math.asinh",
atanh: "es6.math.atanh",
cbrt: "es6.math.cbrt",
clz32: "es6.math.clz32",
cosh: "es6.math.cosh",
expm1: "es6.math.expm1",
fround: "es6.math.fround",
hypot: "es6.math.hypot",
imul: "es6.math.imul",
log1p: "es6.math.log1p",
log10: "es6.math.log10",
log2: "es6.math.log2",
sign: "es6.math.sign",
sinh: "es6.math.sinh",
tanh: "es6.math.tanh",
trunc: "es6.math.trunc",
},
String: {
fromCodePoint: "es6.string.from-code-point",
raw: "es6.string.raw",
},
Number: {
EPSILON: "es6.number.epsilon",
MIN_SAFE_INTEGER: "es6.number.min-safe-integer",
MAX_SAFE_INTEGER: "es6.number.max-safe-integer",
isFinite: "es6.number.is-finite",
isInteger: "es6.number.is-integer",
isSafeInteger: "es6.number.is-safe-integer",
isNaN: "es6.number.is-nan",
parseFloat: "es6.number.parse-float",
parseInt: "es6.number.parse-int",
},
Promise: {
all: CommonIterators,
race: CommonIterators,
},
Reflect: {
apply: "es6.reflect.apply",
construct: "es6.reflect.construct",
defineProperty: "es6.reflect.define-property",
deleteProperty: "es6.reflect.delete-property",
get: "es6.reflect.get",
getOwnPropertyDescriptor: "es6.reflect.get-own-property-descriptor",
getPrototypeOf: "es6.reflect.get-prototype-of",
has: "es6.reflect.has",
isExtensible: "es6.reflect.is-extensible",
ownKeys: "es6.reflect.own-keys",
preventExtensions: "es6.reflect.prevent-extensions",
set: "es6.reflect.set",
setPrototypeOf: "es6.reflect.set-prototype-of",
},
},
};

View File

@ -1,20 +1,21 @@
// @flow
/*eslint quotes: ["error", "double", { "avoidEscape": true }]*/ /*eslint quotes: ["error", "double", { "avoidEscape": true }]*/
import semver from "semver"; import semver from "semver";
import { isUnreleasedVersion, prettifyVersion, semverify } from "./utils"; import { isUnreleasedVersion, prettifyVersion, semverify } from "./utils";
const wordEnds = size => { import type { Targets } from "./types";
return size > 1 ? "s" : "";
};
export const logMessage = (message, context) => { const wordEnds = (size: number) => {
const pre = context ? `[${context}] ` : ""; return size > 1 ? "s" : "";
const logStr = ` ${pre}${message}`;
console.log(logStr);
}; };
// Outputs a message that shows which target(s) caused an item to be included: // Outputs a message that shows which target(s) caused an item to be included:
// transform-foo { "edge":"13", "firefox":"49", "ie":"10" } // transform-foo { "edge":"13", "firefox":"49", "ie":"10" }
export const logPlugin = (item, targetVersions, list, context) => { export const logPluginOrPolyfill = (
item: string,
targetVersions: Targets,
list: { [key: string]: Targets },
) => {
const minVersions = list[item] || {}; const minVersions = list[item] || {};
const filteredList = Object.keys(targetVersions).reduce((result, env) => { const filteredList = Object.keys(targetVersions).reduce((result, env) => {
@ -29,7 +30,8 @@ export const logPlugin = (item, targetVersions, list, context) => {
if ( if (
!targetIsUnreleased && !targetIsUnreleased &&
(minIsUnreleased || semver.lt(targetVersion, semverify(minVersion))) (minIsUnreleased ||
semver.lt(targetVersion.toString(), semverify(minVersion)))
) { ) {
result[env] = prettifyVersion(targetVersion); result[env] = prettifyVersion(targetVersion);
} }
@ -43,50 +45,56 @@ export const logPlugin = (item, targetVersions, list, context) => {
.replace(/^\{"/, '{ "') .replace(/^\{"/, '{ "')
.replace(/"\}$/, '" }'); .replace(/"\}$/, '" }');
logMessage(`${item} ${formattedTargets}`, context); console.log(` ${item} ${formattedTargets}`);
}; };
export const logEntryPolyfills = ( export const logEntryPolyfills = (
importPolyfillIncluded, polyfillName: string,
polyfills, importPolyfillIncluded: boolean,
filename, polyfills: Set<string>,
onDebug, filename: string,
polyfillTargets: Targets,
allBuiltInsList: { [key: string]: Targets },
) => { ) => {
if (!importPolyfillIncluded) { if (!importPolyfillIncluded) {
console.log( console.log(`\n[${filename}] Import of ${polyfillName} was not found.`);
`
[${filename}] \`import '@babel/polyfill'\` was not found.`,
);
return; return;
} }
if (!polyfills.size) { if (!polyfills.size) {
console.log( console.log(
` `\n[${filename}] Based on your targets, polyfills were not added.`,
[${filename}] Based on your targets, none were added.`,
); );
return; return;
} }
console.log( console.log(
` `\n[${filename}] Replaced ${polyfillName} entries with the following polyfill${wordEnds(
[${filename}] Replaced \`@babel/polyfill\` with the following polyfill${wordEnds(
polyfills.size, polyfills.size,
)}:`, )}:`,
); );
onDebug(polyfills); for (const polyfill of polyfills) {
logPluginOrPolyfill(polyfill, polyfillTargets, allBuiltInsList);
}
}; };
export const logUsagePolyfills = (polyfills, filename, onDebug) => { export const logUsagePolyfills = (
polyfills: Set<string>,
filename: string,
polyfillTargets: Targets,
allBuiltInsList: { [key: string]: Targets },
) => {
if (!polyfills.size) { if (!polyfills.size) {
console.log( console.log(
` `\n[${filename}] Based on your code and targets, core-js polyfills were not added.`,
[${filename}] Based on your code and targets, none were added.`,
); );
return; return;
} }
console.log( console.log(
` `\n[${filename}] Added following core-js polyfill${wordEnds(
[${filename}] Added following polyfill${wordEnds(polyfills.size)}:`, polyfills.size,
)}:`,
); );
onDebug(polyfills); for (const polyfill of polyfills) {
logPluginOrPolyfill(polyfill, polyfillTargets, allBuiltInsList);
}
}; };

View File

@ -1,5 +0,0 @@
export const defaultWebIncludes = [
"web.timers",
"web.immediate",
"web.dom.iterable",
];

View File

@ -1,25 +0,0 @@
import type { Targets } from "./types";
const defaultWebIncludes = ["web.timers", "web.immediate", "web.dom.iterable"];
const defaultExcludesForLooseMode = ["transform-typeof-symbol"];
export const getPlatformSpecificDefaultFor = (
targets: Targets,
): ?Array<string> => {
const targetNames = Object.keys(targets);
const isAnyTarget = !targetNames.length;
const isWebTarget = targetNames.some(name => name !== "node");
return isAnyTarget || isWebTarget ? defaultWebIncludes : null;
};
export const getOptionSpecificExcludesFor = ({
loose,
}: {
loose: boolean,
}): ?Array<string> => {
if (loose) {
return defaultExcludesForLooseMode;
}
return null;
};

View File

@ -0,0 +1,87 @@
// @flow
import semver from "semver";
import { semverify, isUnreleasedVersion } from "./utils";
import type { Targets } from "./types";
export function isPluginRequired(
supportedEnvironments: Targets,
plugin: Targets,
) {
const targetEnvironments = Object.keys(supportedEnvironments);
if (targetEnvironments.length === 0) {
return true;
}
const isRequiredForEnvironments = targetEnvironments.filter(environment => {
// Feature is not implemented in that environment
if (!plugin[environment]) {
return true;
}
const lowestImplementedVersion = plugin[environment];
const lowestTargetedVersion = supportedEnvironments[environment];
// If targets has unreleased value as a lowest version, then don't require a plugin.
if (isUnreleasedVersion(lowestTargetedVersion, environment)) {
return false;
}
// Include plugin if it is supported in the unreleased environment, which wasn't specified in targets
if (isUnreleasedVersion(lowestImplementedVersion, environment)) {
return true;
}
if (!semver.valid(lowestTargetedVersion.toString())) {
throw new Error(
`Invalid version passed for target "${environment}": "${lowestTargetedVersion}". ` +
"Versions must be in semver format (major.minor.patch)",
);
}
return semver.gt(
semverify(lowestImplementedVersion),
lowestTargetedVersion.toString(),
);
});
return isRequiredForEnvironments.length > 0;
}
export default function(
list: { [feature: string]: Targets },
includes: Set<string>,
excludes: Set<string>,
targets: Targets,
defaultIncludes: Array<string> | null,
defaultExcludes?: Array<string> | null,
pluginSyntaxMap?: Map<string, string | null>,
) {
const result = new Set<string>();
for (const item in list) {
if (
!excludes.has(item) &&
(isPluginRequired(targets, list[item]) || includes.has(item))
) {
result.add(item);
} else if (pluginSyntaxMap) {
const shippedProposalsSyntax = pluginSyntaxMap.get(item);
if (shippedProposalsSyntax) {
result.add(shippedProposalsSyntax);
}
}
}
if (defaultIncludes) {
defaultIncludes.forEach(item => !excludes.has(item) && result.add(item));
}
if (defaultExcludes) {
defaultExcludes.forEach(item => !includes.has(item) && result.delete(item));
}
return result;
}

Some files were not shown because too many files have changed in this diff Show More