Implement @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression (#13842)

* fix: register function expression id after params

* implement bugfix plugin

* add more testcases

* fix: do not skip pattern binding referencing id

* update compat-table

* add bugfix plugin to preset-env

* update Babel 8 test fixtures

* Update packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression/README.md

* chore: bundle bugfix plugin

* address review comments

* add runtime version check

* update compat table

* fix syntax error

* update test fixtures

* revert bugfixes targets update

* update Babel 8 test fixtures
This commit is contained in:
Huáng Jùnliàng 2021-10-20 15:53:40 -04:00 committed by GitHub
parent 780aa48d2a
commit 29f697c84e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
195 changed files with 731 additions and 310 deletions

View File

@ -465,6 +465,7 @@ const libBundles = [
"packages/babel-preset-typescript",
"packages/babel-helper-member-expression-to-functions",
"packages/babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining",
"packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression",
].map(src => ({
src,
format: "cjs",

View File

@ -186,15 +186,17 @@ prepublish:
IS_PUBLISH=true $(MAKE) test
new-version-checklist:
# @echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
# @echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
# @echo "!!!!!! !!!!!!"
# @echo "!!!!!! Write any message that should !!!!!!"
# @echo "!!!!!! block the release here !!!!!!"
# @echo "!!!!!! !!!!!!"
# @echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
# @echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
# @exit 1
@echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
@echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
@echo "!!!!!! !!!!!!"
@echo "!!!!!! packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression/src/index.ts"
@echo "!!!!!! replace \"api.assertVersion()\" to the latest published version"
@echo "!!!!!! packages/babel-preset-env/src/available-plugins.ts:"
@echo "!!!!!! replace minVersion[\"bugfix/transform-v8-spread-parameters-in-optional-chaining\"] to the latest published version"
@echo "!!!!!! !!!!!!"
@echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
@echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
@exit 1
new-version:
$(MAKE) new-version-checklist

View File

@ -3,7 +3,8 @@
"bugfix/transform-async-arrows-in-class"
],
"transform-parameters": [
"bugfix/transform-edge-default-parameters"
"bugfix/transform-edge-default-parameters",
"bugfix/transform-safari-id-destructuring-collision-in-function-expression"
],
"transform-function-name": [
"bugfix/transform-edge-function-name"

View File

@ -101,6 +101,16 @@
"rhino": "1.7.13",
"electron": "0.37"
},
"bugfix/transform-safari-id-destructuring-collision-in-function-expression": {
"chrome": "49",
"opera": "36",
"edge": "14",
"firefox": "2",
"node": "6",
"samsung": "5",
"rhino": "1.7.13",
"electron": "0.37"
},
"transform-template-literals": {
"chrome": "41",
"opera": "28",
@ -135,8 +145,10 @@
"electron": "8.0"
},
"bugfix/transform-v8-spread-parameters-in-optional-chaining": {
"chrome": "91",
"firefox": "74",
"safari": "13.1",
"ios": "13.4"
"ios": "13.4",
"electron": "13.0"
}
}

View File

@ -1,11 +1,13 @@
{
"proposal-class-static-block": {
"chrome": "91",
"electron": "13.0"
"chrome": "94",
"firefox": "93"
},
"proposal-private-property-in-object": {
"chrome": "91",
"firefox": "90",
"safari": "15",
"ios": "15",
"electron": "13.0"
},
"proposal-class-properties": {
@ -15,6 +17,7 @@
"firefox": "90",
"safari": "14.1",
"node": "12",
"ios": "15",
"samsung": "11",
"electron": "6.0"
},
@ -25,6 +28,8 @@
"firefox": "90",
"safari": "15",
"node": "14.6",
"ios": "15",
"samsung": "14",
"electron": "10.0"
},
"proposal-numeric-separator": {
@ -46,6 +51,7 @@
"safari": "14",
"node": "15",
"ios": "14",
"samsung": "14",
"electron": "10.0"
},
"proposal-nullish-coalescing-operator": {
@ -60,9 +66,11 @@
"electron": "8.0"
},
"proposal-optional-chaining": {
"chrome": "91",
"firefox": "74",
"safari": "13.1",
"ios": "13.4"
"ios": "13.4",
"electron": "13.0"
},
"proposal-json-strings": {
"chrome": "66",
@ -91,9 +99,7 @@
"opera": "36",
"edge": "18",
"firefox": "53",
"safari": "10",
"node": "6",
"ios": "10",
"samsung": "5",
"electron": "0.37"
},
@ -379,7 +385,7 @@
"chrome": "46",
"opera": "33",
"edge": "14",
"firefox": "45",
"firefox": "41",
"safari": "10",
"node": "5",
"ios": "10",

View File

@ -31,6 +31,10 @@ module.exports = {
],
replaces: "transform-block-scoping",
},
"bugfix/transform-safari-id-destructuring-collision-in-function-expression": {
features: ["destructuring, parameters / duplicate identifier"],
replaces: "transform-parameters",
},
"bugfix/transform-tagged-template-caching": {
features: ["template literals / TemplateStrings permanent caching"],
replaces: "transform-template-literals",

View File

@ -18,6 +18,7 @@ const es2015Parameter = {
"rest parameters",
"destructuring, parameters / aliased defaults, arrow function",
"destructuring, parameters / shorthand defaults, arrow function",
"destructuring, parameters / duplicate identifier",
],
},
};

View File

@ -1,7 +1,7 @@
#!/bin/bash
set -e
COMPAT_TABLE_COMMIT=63abfe227f4b9c6ef019efbbf059025b537b8511
COMPAT_TABLE_COMMIT=34b14f8eb016f8f2f3312adf35c53d6364742582
GIT_HEAD=build/compat-table/.git/HEAD
if [ -d "build/compat-table" ]; then

View File

@ -0,0 +1,19 @@
# @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression
> Rename destructuring parameter to workaround a [Safari bug](https://bugs.webkit.org/show_bug.cgi?id=220517).
See our website [@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression](https://babeljs.io/docs/en/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression) for more information.
## Install
Using npm:
```sh
npm install --save-dev @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression
```
or using yarn:
```sh
yarn add @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression --dev
```

View File

@ -0,0 +1,40 @@
{
"name": "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression",
"version": "0.0.0",
"description": "Rename destructuring parameter to workaround https://bugs.webkit.org/show_bug.cgi?id=220517",
"repository": {
"type": "git",
"url": "https://github.com/babel/babel.git",
"directory": "packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression"
},
"homepage": "https://babel.dev/docs/en/next/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"main": "./lib/index.js",
"exports": {
".": [
"./lib/index.js"
]
},
"keywords": [
"babel-plugin",
"bugfix"
],
"dependencies": {
"@babel/helper-plugin-utils": "workspace:^7.14.5"
},
"peerDependencies": {
"@babel/core": "^7.0.0"
},
"devDependencies": {
"@babel/core": "workspace:*",
"@babel/helper-plugin-test-runner": "workspace:*",
"@babel/traverse": "workspace:*"
},
"engines": {
"node": ">=6.9.0"
},
"author": "The Babel Team (https://babel.dev/team)"
}

View File

@ -0,0 +1,25 @@
import { declare } from "@babel/helper-plugin-utils";
import type { PluginPass } from "@babel/core";
import type { Visitor } from "@babel/traverse";
import { shouldTransform } from "./util";
export default declare(api => {
api.assertVersion("^7.15.0");
return {
name: "plugin-bugfix-safari-id-destructuring-collision-in-function-expression",
visitor: {
FunctionExpression(path) {
const name = shouldTransform(path);
if (name) {
// Now we have (function a([a]) {})
const { scope } = path;
// invariant: path.node.id is always an Identifier here
const newParamName = scope.generateUid(name);
scope.rename(name, newParamName);
}
},
} as Visitor<PluginPass>,
};
});

View File

@ -0,0 +1,41 @@
import type { FunctionExpression } from "@babel/types";
import type { NodePath } from "@babel/traverse";
/**
* Check whether a function expression can be affected by
* https://bugs.webkit.org/show_bug.cgi?id=220517
* @param path The function expression NodePath
* @returns the name of function id if it should be transformed, otherwise returns false
*/
export function shouldTransform(
path: NodePath<FunctionExpression>,
): string | false {
const { node } = path;
const functionId = node.id;
if (!functionId) return false;
const name = functionId.name;
// On collision, `getOwnBinding` returns the param binding
// with the id binding be registered as constant violation
const paramNameBinding = path.scope.getOwnBinding(name);
const constantViolations = paramNameBinding.constantViolations;
if (constantViolations.length === 0) {
// the function scope has no such collided bindings
return false;
}
const firstViolation = constantViolations[0];
if (firstViolation.node !== node) {
// the violation does not happen in id
// e.g. (function a() { var a; })
return false;
}
if (paramNameBinding.identifier === paramNameBinding.path.node) {
// the param binding is a simple parameter
// e.g. (function a(a) {})
return false;
}
return name;
}

View File

@ -0,0 +1,3 @@
(function a([_a2, _a]) {
_a2 + _a;
});

View File

@ -0,0 +1,3 @@
(function a([a]) { a });
(function a({ ...a }) { a });
(function a({ a }) { a });

View File

@ -0,0 +1,14 @@
(function a([_a]) {
_a;
});
(function a({ ..._a2
}) {
_a2;
});
(function a({
a: _a3
}) {
_a3;
});

View File

@ -0,0 +1,3 @@
{
"plugins": ["bugfix-safari-id-destructuring-collision-in-function-expression"]
}

View File

@ -0,0 +1,3 @@
import runner from "@babel/helper-plugin-test-runner";
runner(import.meta.url);

View File

@ -0,0 +1,56 @@
import { parseSync, traverse } from "@babel/core";
import { shouldTransform } from "../src/util.ts";
function getPath(input, parserOpts = {}) {
let targetPath;
traverse(
parseSync(input, {
parserOpts,
filename: "example.js",
configFile: false,
}),
{
FunctionExpression(path) {
targetPath = path;
path.stop();
},
},
);
return targetPath;
}
describe("shouldTransform", () => {
const positiveCases = [
"(function a([a]) {})",
"({ b: function a([a]) {} })",
"(function a({a}) {})",
"(function a(...a) {})",
"(function a({ ...a }) {})",
"(function a([a = 1]) {})",
"(function a(b, { a: [,...a] }) {})",
];
const negativeCases = [
"(function () {})",
"(function a() {})",
"(function a(a) {})",
"(function a() { var a })",
"(function b([a]) { var a })",
"(function b([a]) { function a() {} })",
"(function a(x = a) {})",
"(function a() { var { a } = {}; })",
"(function b([a]) { var { a } = {}; })",
"(function a({ [a]: b }) {})",
];
describe("the following cases should be transformed", () => {
test.each(positiveCases)("%p", input => {
expect(shouldTransform(getPath(input))).toBe("a");
});
});
describe("the following cases should not be transformed", () => {
test.each(negativeCases)("%p", input => {
expect(shouldTransform(getPath(input))).toBe(false);
});
});
});

View File

@ -5,15 +5,7 @@ function getPath(input, parserOpts = {}) {
let targetPath;
traverse(
parseSync(input, {
parserOpts: {
plugins: [
"classPrivateMethods",
"classPrivateProperties",
"classProperties",
...(parserOpts.plugins || []),
],
...parserOpts,
},
parserOpts,
filename: "example.js",
configFile: false,
}),

View File

@ -11,11 +11,12 @@ var _Child2 = babelHelpers.interopRequireDefault(require("./Child"));
var _jsxRuntime = require("react/jsx-runtime");
function MyComponent({
closeFn
}) {
function MyComponent(_ref) {
var _Child;
let {
closeFn
} = _ref;
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Parent.default, {
render: () => _Child || (_Child = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Child2.default, {
closeFn: closeFn

View File

@ -20,6 +20,7 @@
"@babel/helper-compilation-targets": "workspace:^7.15.4",
"@babel/helper-plugin-utils": "workspace:^7.14.5",
"@babel/helper-validator-option": "workspace:^7.14.5",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "workspace:^0.0.0",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "workspace:^7.15.4",
"@babel/plugin-proposal-async-generator-functions": "workspace:^7.15.8",
"@babel/plugin-proposal-class-properties": "workspace:^7.14.5",

View File

@ -68,6 +68,7 @@ import bugfixEdgeFunctionName from "@babel/preset-modules/lib/plugins/transform-
import bugfixTaggedTemplateCaching from "@babel/preset-modules/lib/plugins/transform-tagged-template-caching";
import bugfixSafariBlockShadowing from "@babel/preset-modules/lib/plugins/transform-safari-block-shadowing";
import bugfixSafariForShadowing from "@babel/preset-modules/lib/plugins/transform-safari-for-shadowing";
import bugfixSafariIdDestructuringCollisionInFunctionExpression from "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression";
import bugfixV8SpreadParametersInOptionalChaining from "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining";
export default {
@ -76,6 +77,8 @@ export default {
"bugfix/transform-edge-function-name": () => bugfixEdgeFunctionName,
"bugfix/transform-safari-block-shadowing": () => bugfixSafariBlockShadowing,
"bugfix/transform-safari-for-shadowing": () => bugfixSafariForShadowing,
"bugfix/transform-safari-id-destructuring-collision-in-function-expression":
() => bugfixSafariIdDestructuringCollisionInFunctionExpression,
"bugfix/transform-tagged-template-caching": () => bugfixTaggedTemplateCaching,
"bugfix/transform-v8-spread-parameters-in-optional-chaining": () =>
bugfixV8SpreadParametersInOptionalChaining,
@ -147,6 +150,7 @@ export default {
};
export const minVersions = {
"bugfix/transform-v8-spread-parameters-in-optional-chaining": "7.15.0",
"proposal-class-static-block": "7.12.0",
"proposal-private-property-in-object": "7.10.0",
};

View File

@ -16,16 +16,16 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios, node, opera, safari, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios < 15, node, opera, safari < 15, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-numeric-separator { android, chrome < 75, edge < 79, firefox < 70, ios < 13, opera < 62, safari < 13, samsung < 11 }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung < 14 }
proposal-nullish-coalescing-operator { android, chrome < 80, edge < 80, firefox < 72, ios < 13.4, node < 14, opera < 67, safari < 13.1, samsung < 13 }
proposal-optional-chaining { android, chrome, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-optional-chaining { android, chrome < 91, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-json-strings { android, chrome < 66, edge < 79, firefox < 62, ios < 12, opera < 53, safari < 12, samsung < 9 }
proposal-optional-catch-binding { android, chrome < 66, edge < 79, ios < 11.3, opera < 53, safari < 11.1, samsung < 9 }
transform-parameters { edge < 18 }
transform-parameters { edge < 18, ios, safari }
proposal-async-generator-functions { android, chrome < 63, edge < 79, ios < 12, opera < 50, safari < 12 }
proposal-object-rest-spread { edge < 79, ios < 11.3, safari < 11.1 }
transform-dotall-regex { android, chrome < 62, edge < 79, firefox < 78, ios < 11.3, opera < 49, safari < 11.1 }

View File

@ -16,11 +16,11 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios, node, opera, safari, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios < 15, node, opera, safari < 15, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-numeric-separator { android, chrome < 75, edge < 79, firefox < 70, ios < 13, opera < 62, safari < 13, samsung < 11 }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung < 14 }
proposal-nullish-coalescing-operator { android, chrome < 80, edge < 80, firefox < 72, ios < 13.4, node < 14, opera < 67, safari < 13.1, samsung < 13 }
proposal-optional-chaining { android, chrome < 80, edge < 80, firefox < 74, ios < 13.4, node < 14, opera < 67, safari < 13.1, samsung < 13 }
proposal-json-strings { android, chrome < 66, edge < 79, firefox < 62, ios < 12, opera < 53, safari < 12, samsung < 9 }
@ -37,6 +37,7 @@ Using plugins:
bugfix/transform-edge-function-name { edge < 79 }
bugfix/transform-safari-block-shadowing { ios < 11, safari < 11 }
bugfix/transform-safari-for-shadowing { ios < 11, safari < 11 }
bugfix/transform-safari-id-destructuring-collision-in-function-expression { ios, safari }
bugfix/transform-tagged-template-caching { ios < 13, safari < 13 }
transform-modules-commonjs
proposal-dynamic-import

View File

@ -8,7 +8,7 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { safari }
proposal-private-property-in-object { safari < 15 }
proposal-class-properties { safari < 15 }
proposal-private-methods { safari < 15 }
proposal-numeric-separator { safari < 13 }
@ -17,6 +17,7 @@ Using plugins:
proposal-optional-chaining { safari < 13.1 }
proposal-json-strings { safari < 12 }
proposal-optional-catch-binding { safari < 11.1 }
transform-parameters { safari }
proposal-async-generator-functions { safari < 12 }
proposal-object-rest-spread { safari < 11.1 }
transform-dotall-regex { safari < 11.1 }

View File

@ -8,7 +8,7 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { safari }
proposal-private-property-in-object { safari < 15 }
proposal-class-properties { safari < 15 }
proposal-private-methods { safari < 15 }
proposal-numeric-separator { safari < 13 }
@ -28,6 +28,7 @@ Using plugins:
proposal-export-namespace-from { safari }
bugfix/transform-safari-block-shadowing { safari < 11 }
bugfix/transform-safari-for-shadowing { safari < 11 }
bugfix/transform-safari-id-destructuring-collision-in-function-expression { safari }
bugfix/transform-tagged-template-caching { safari < 13 }
transform-modules-commonjs
proposal-dynamic-import

View File

@ -8,7 +8,7 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { safari }
proposal-private-property-in-object { safari < 15 }
proposal-class-properties { safari < 15 }
proposal-private-methods { safari < 15 }
proposal-numeric-separator { safari < 13 }
@ -24,6 +24,7 @@ Using plugins:
transform-named-capturing-groups-regex { safari < 11.1 }
transform-unicode-regex { safari < 12 }
proposal-export-namespace-from { safari }
bugfix/transform-safari-id-destructuring-collision-in-function-expression { safari }
bugfix/transform-tagged-template-caching { safari < 13 }
transform-modules-commonjs
proposal-dynamic-import

View File

@ -8,7 +8,7 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { safari }
proposal-private-property-in-object { safari < 15 }
proposal-class-properties { safari < 15 }
proposal-private-methods { safari < 15 }
proposal-numeric-separator { safari < 13 }

View File

@ -0,0 +1,5 @@
(function a(a) {});
(function a([a]) {});
(function a({a}) {});

View File

@ -0,0 +1,15 @@
{
"validateLogs": true,
"presets": [
[
"env",
{
"debug": true,
"bugfixes": true,
"targets": {
"safari": "15"
}
}
]
]
}

View File

@ -0,0 +1,7 @@
(function a(a) {});
(function a([_a]) {});
(function a({
a: _a2
}) {});

View File

@ -0,0 +1,25 @@
@babel/preset-env: `DEBUG` option
Using targets:
{
"safari": "15"
}
Using modules transform: auto
Using plugins:
syntax-private-property-in-object
syntax-class-properties
syntax-numeric-separator
syntax-nullish-coalescing-operator
syntax-optional-chaining
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators
syntax-object-rest-spread
proposal-export-namespace-from { safari }
bugfix/transform-safari-id-destructuring-collision-in-function-expression { safari }
transform-modules-commonjs
proposal-dynamic-import
Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.

View File

@ -0,0 +1,5 @@
(function a(a) {});
(function a([a]) {});
(function a({a}) {});

View File

@ -0,0 +1,15 @@
{
"validateLogs": true,
"presets": [
[
"env",
{
"debug": true,
"bugfixes": false,
"targets": {
"safari": "15"
}
}
]
]
}

View File

@ -0,0 +1,11 @@
(function a(a) {});
(function a(_ref) {
let [a] = _ref;
});
(function a(_ref2) {
let {
a
} = _ref2;
});

View File

@ -0,0 +1,25 @@
@babel/preset-env: `DEBUG` option
Using targets:
{
"safari": "15"
}
Using modules transform: auto
Using plugins:
syntax-private-property-in-object
syntax-class-properties
syntax-numeric-separator
syntax-nullish-coalescing-operator
syntax-optional-chaining
syntax-json-strings
syntax-optional-catch-binding
transform-parameters { safari }
syntax-async-generators
syntax-object-rest-spread
proposal-export-namespace-from { safari }
transform-modules-commonjs
proposal-dynamic-import
Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.

View File

@ -12,7 +12,7 @@ Using plugins:
syntax-class-properties
syntax-numeric-separator
syntax-nullish-coalescing-operator
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -17,7 +17,7 @@ Using plugins:
syntax-optional-catch-binding
syntax-async-generators
syntax-object-rest-spread
bugfix/transform-v8-spread-parameters-in-optional-chaining { chrome }
bugfix/transform-v8-spread-parameters-in-optional-chaining { chrome < 91 }
transform-modules-commonjs
proposal-dynamic-import
proposal-export-namespace-from { }

View File

@ -16,16 +16,16 @@ Using targets:
Using modules transform: false
Using plugins:
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios, node, opera, safari, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios < 15, node, opera, safari < 15, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-numeric-separator { android, chrome < 75, edge < 79, firefox < 70, ios < 13, opera < 62, safari < 13, samsung < 11 }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung < 14 }
proposal-nullish-coalescing-operator { android, chrome < 80, edge < 80, firefox < 72, ios < 13.4, node < 14, opera < 67, safari < 13.1, samsung < 13 }
proposal-optional-chaining { android, chrome, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-optional-chaining { android, chrome < 91, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-json-strings { android, chrome < 66, edge < 79, firefox < 62, ios < 12, opera < 53, safari < 12, samsung < 9 }
proposal-optional-catch-binding { android, chrome < 66, edge < 79, ios < 11.3, opera < 53, safari < 11.1, samsung < 9 }
transform-parameters { edge < 18 }
transform-parameters { edge < 18, ios, safari }
proposal-async-generator-functions { android, chrome < 63, edge < 79, ios < 12, opera < 50, safari < 12 }
proposal-object-rest-spread { edge < 79, ios < 11.3, safari < 11.1 }
transform-dotall-regex { android, chrome < 62, edge < 79, firefox < 78, ios < 11.3, opera < 49, safari < 11.1 }

View File

@ -16,16 +16,16 @@ Using targets:
Using modules transform: false
Using plugins:
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios, node, opera, safari, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios < 15, node, opera, safari < 15, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-numeric-separator { android, chrome < 75, edge < 79, firefox < 70, ios < 13, opera < 62, safari < 13, samsung < 11 }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung < 14 }
proposal-nullish-coalescing-operator { android, chrome < 80, edge < 80, firefox < 72, ios < 13.4, node < 14, opera < 67, safari < 13.1, samsung < 13 }
proposal-optional-chaining { android, chrome, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-optional-chaining { android, chrome < 91, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-json-strings { android, chrome < 66, edge < 79, firefox < 62, ios < 12, opera < 53, safari < 12, samsung < 9 }
proposal-optional-catch-binding { android, chrome < 66, edge < 79, ios < 11.3, opera < 53, safari < 11.1, samsung < 9 }
transform-parameters { edge < 18 }
transform-parameters { edge < 18, ios, safari }
proposal-async-generator-functions { android, chrome < 63, edge < 79, ios < 12, opera < 50, safari < 12 }
proposal-object-rest-spread { edge < 79, ios < 11.3, safari < 11.1 }
transform-dotall-regex { android, chrome < 62, edge < 79, firefox < 78, ios < 11.3, opera < 49, safari < 11.1 }

View File

@ -1,3 +1,5 @@
import "core-js/modules/web.dom.iterable.js";
function a([b, c]) {}
function a(_ref) {
let [b, c] = _ref;
}

View File

@ -16,16 +16,16 @@ Using targets:
Using modules transform: false
Using plugins:
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios, node, opera, safari, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios < 15, node, opera, safari < 15, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-numeric-separator { android, chrome < 75, edge < 79, firefox < 70, ios < 13, opera < 62, safari < 13, samsung < 11 }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung < 14 }
proposal-nullish-coalescing-operator { android, chrome < 80, edge < 80, firefox < 72, ios < 13.4, node < 14, opera < 67, safari < 13.1, samsung < 13 }
proposal-optional-chaining { android, chrome, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-optional-chaining { android, chrome < 91, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-json-strings { android, chrome < 66, edge < 79, firefox < 62, ios < 12, opera < 53, safari < 12, samsung < 9 }
proposal-optional-catch-binding { android, chrome < 66, edge < 79, ios < 11.3, opera < 53, safari < 11.1, samsung < 9 }
transform-parameters { edge < 18 }
transform-parameters { edge < 18, ios, safari }
proposal-async-generator-functions { android, chrome < 63, edge < 79, ios < 12, opera < 50, safari < 12 }
proposal-object-rest-spread { edge < 79, ios < 11.3, safari < 11.1 }
transform-dotall-regex { android, chrome < 62, edge < 79, firefox < 78, ios < 11.3, opera < 49, safari < 11.1 }

View File

@ -16,16 +16,16 @@ Using targets:
Using modules transform: false
Using plugins:
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios, node, opera, safari, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios, node < 14.6, opera < 70, safari < 15, samsung }
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios < 15, node, opera, safari < 15, samsung }
proposal-class-properties { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-private-methods { android, chrome < 84, edge < 84, firefox < 90, ios < 15, node < 14.6, opera < 70, safari < 15, samsung < 14 }
proposal-numeric-separator { android, chrome < 75, edge < 79, firefox < 70, ios < 13, opera < 62, safari < 13, samsung < 11 }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung }
proposal-logical-assignment-operators { android, chrome < 85, edge < 85, firefox < 79, ios < 14, node < 15, opera < 71, safari < 14, samsung < 14 }
proposal-nullish-coalescing-operator { android, chrome < 80, edge < 80, firefox < 72, ios < 13.4, node < 14, opera < 67, safari < 13.1, samsung < 13 }
proposal-optional-chaining { android, chrome, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-optional-chaining { android, chrome < 91, edge, firefox < 74, ios < 13.4, node, opera, safari < 13.1, samsung }
proposal-json-strings { android, chrome < 66, edge < 79, firefox < 62, ios < 12, opera < 53, safari < 12, samsung < 9 }
proposal-optional-catch-binding { android, chrome < 66, edge < 79, ios < 11.3, opera < 53, safari < 11.1, samsung < 9 }
transform-parameters { edge < 18 }
transform-parameters { edge < 18, ios, safari }
proposal-async-generator-functions { android, chrome < 63, edge < 79, ios < 12, opera < 50, safari < 12 }
proposal-object-rest-spread { edge < 79, ios < 11.3, safari < 11.1 }
transform-dotall-regex { android, chrome < 62, edge < 79, firefox < 78, ios < 11.3, opera < 49, safari < 11.1 }

View File

@ -1 +1,3 @@
function a([b, c]) {}
function a(_ref) {
let [b, c] = _ref;
}

View File

@ -15,15 +15,16 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios, opera, safari, samsung }
proposal-class-properties { firefox < 90, ios, safari < 15, samsung }
proposal-private-methods { firefox < 90, ios, safari < 15, samsung }
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios < 15, opera, safari < 15, samsung }
proposal-class-properties { firefox < 90, ios < 15, safari < 15, samsung < 14 }
proposal-private-methods { firefox < 90, ios < 15, safari < 15, samsung < 14 }
syntax-numeric-separator
proposal-logical-assignment-operators { firefox < 79, ios < 14, samsung }
proposal-logical-assignment-operators { firefox < 79, ios < 14, samsung < 14 }
syntax-nullish-coalescing-operator
proposal-optional-chaining { android, chrome, edge, opera, samsung }
proposal-optional-chaining { android, chrome < 91, edge, opera, samsung }
syntax-json-strings
syntax-optional-catch-binding
transform-parameters { ios, safari }
syntax-async-generators
syntax-object-rest-spread
proposal-export-namespace-from { firefox < 80, ios, safari }

View File

@ -16,16 +16,16 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ie, ios, opera, safari, samsung }
proposal-class-properties { firefox < 90, ie, ios, safari < 15, samsung }
proposal-private-methods { firefox < 90, ie, ios, safari < 15, samsung }
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ie, ios < 15, opera, safari < 15, samsung }
proposal-class-properties { firefox < 90, ie, ios < 15, safari < 15, samsung < 14 }
proposal-private-methods { firefox < 90, ie, ios < 15, safari < 15, samsung < 14 }
proposal-numeric-separator { ie }
proposal-logical-assignment-operators { firefox < 79, ie, ios < 14, samsung }
proposal-logical-assignment-operators { firefox < 79, ie, ios < 14, samsung < 14 }
proposal-nullish-coalescing-operator { ie }
proposal-optional-chaining { android, chrome, edge, ie, opera, samsung }
proposal-optional-chaining { android, chrome < 91, edge, ie, opera, samsung }
proposal-json-strings { ie }
proposal-optional-catch-binding { ie }
transform-parameters { ie }
transform-parameters { ie, ios, safari }
proposal-async-generator-functions { ie }
proposal-object-rest-spread { ie }
transform-dotall-regex { ie }

View File

@ -15,15 +15,16 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios, opera, safari, samsung }
proposal-class-properties { firefox < 90, ios, safari < 15, samsung }
proposal-private-methods { firefox < 90, ios, safari < 15, samsung }
proposal-private-property-in-object { android, chrome < 91, edge, firefox < 90, ios < 15, opera, safari < 15, samsung }
proposal-class-properties { firefox < 90, ios < 15, safari < 15, samsung < 14 }
proposal-private-methods { firefox < 90, ios < 15, safari < 15, samsung < 14 }
syntax-numeric-separator
proposal-logical-assignment-operators { samsung }
proposal-logical-assignment-operators { samsung < 14 }
syntax-nullish-coalescing-operator
proposal-optional-chaining { android, chrome, edge, opera, samsung }
proposal-optional-chaining { android, chrome < 91, edge, opera, samsung }
syntax-json-strings
syntax-optional-catch-binding
transform-parameters { ios, safari }
syntax-async-generators
syntax-object-rest-spread
proposal-export-namespace-from { ios, safari }

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { electron < 6.0 }
proposal-logical-assignment-operators { electron < 10.0 }
proposal-nullish-coalescing-operator { electron < 8.0 }
proposal-optional-chaining { electron }
proposal-optional-chaining { electron < 13.0 }
proposal-json-strings { electron < 3.0 }
proposal-optional-catch-binding { electron < 3.0 }
transform-parameters { electron < 0.37 }

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
proposal-json-strings { chrome < 66 }
proposal-optional-catch-binding { chrome < 66 }
transform-parameters { }

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -13,16 +13,16 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { chrome < 91, edge, firefox < 90, ie, ios, safari }
proposal-class-properties { chrome < 84, edge < 84, firefox < 90, ie, ios, safari < 15 }
proposal-private-methods { chrome < 84, edge < 84, firefox < 90, ie, ios, safari < 15 }
proposal-private-property-in-object { chrome < 91, edge, firefox < 90, ie, ios < 15, safari < 15 }
proposal-class-properties { chrome < 84, edge < 84, firefox < 90, ie, ios < 15, safari < 15 }
proposal-private-methods { chrome < 84, edge < 84, firefox < 90, ie, ios < 15, safari < 15 }
proposal-numeric-separator { chrome < 75, edge < 79, firefox < 70, ie, ios < 13, safari < 13 }
proposal-logical-assignment-operators { chrome < 85, edge < 85, firefox < 79, ie, ios < 14, safari < 14 }
proposal-nullish-coalescing-operator { chrome < 80, edge < 80, firefox < 72, ie, ios < 13.4, safari < 13.1 }
proposal-optional-chaining { chrome, edge, firefox < 74, ie, ios < 13.4, safari < 13.1 }
proposal-optional-chaining { chrome < 91, edge, firefox < 74, ie, ios < 13.4, safari < 13.1 }
proposal-json-strings { chrome < 66, edge < 79, firefox < 62, ie, ios < 12, safari < 12 }
proposal-optional-catch-binding { chrome < 66, edge < 79, firefox < 58, ie, ios < 11.3, safari < 11.1 }
transform-parameters { edge < 18, firefox < 53, ie, ios < 10, safari < 10 }
transform-parameters { edge < 18, firefox < 53, ie, ios, safari }
proposal-async-generator-functions { chrome < 63, edge < 79, firefox < 57, ie, ios < 12, safari < 12 }
proposal-object-rest-spread { chrome < 60, edge < 79, firefox < 55, ie, ios < 11.3, safari < 11.1 }
transform-dotall-regex { chrome < 62, edge < 79, firefox < 78, ie, ios < 11.3, safari < 11.1 }

View File

@ -17,7 +17,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, electron < 6.0, ie, node < 12.5 }
proposal-logical-assignment-operators { chrome < 85, electron < 10.0, ie, node < 15 }
proposal-nullish-coalescing-operator { chrome < 80, electron < 8.0, ie, node < 14 }
proposal-optional-chaining { chrome, electron, ie, node }
proposal-optional-chaining { chrome < 91, electron < 13.0, ie, node }
proposal-json-strings { chrome < 66, electron < 3.0, ie, node < 10 }
proposal-optional-catch-binding { chrome < 66, electron < 3.0, ie, node < 10 }
transform-parameters { electron < 0.37, ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, ie, node < 12.5 }
proposal-logical-assignment-operators { chrome < 85, ie, node < 15 }
proposal-nullish-coalescing-operator { chrome < 80, ie, node < 14 }
proposal-optional-chaining { chrome, ie, node }
proposal-optional-chaining { chrome < 91, ie, node }
proposal-json-strings { chrome < 66, ie, node < 10 }
proposal-optional-catch-binding { chrome < 66, ie, node < 10 }
transform-parameters { ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, ie, node < 12.5 }
proposal-logical-assignment-operators { chrome < 85, ie, node < 15 }
proposal-nullish-coalescing-operator { chrome < 80, ie, node < 14 }
proposal-optional-chaining { chrome, ie, node }
proposal-optional-chaining { chrome < 91, ie, node }
proposal-json-strings { chrome < 66, ie, node < 10 }
proposal-optional-catch-binding { chrome < 66, ie, node < 10 }
transform-parameters { ie }

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { electron < 6.0 }
proposal-logical-assignment-operators { electron < 10.0 }
proposal-nullish-coalescing-operator { electron < 8.0 }
proposal-optional-chaining { electron }
proposal-optional-chaining { electron < 13.0 }
proposal-json-strings { electron < 3.0 }
proposal-optional-catch-binding { electron < 3.0 }
transform-parameters { electron < 0.37 }

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
proposal-json-strings { chrome < 66 }
proposal-optional-catch-binding { chrome < 66 }
transform-parameters { }

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -13,16 +13,16 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-private-property-in-object { chrome < 91, edge, firefox < 90, ie, ios, safari }
proposal-class-properties { chrome < 84, edge < 84, firefox < 90, ie, ios, safari < 15 }
proposal-private-methods { chrome < 84, edge < 84, firefox < 90, ie, ios, safari < 15 }
proposal-private-property-in-object { chrome < 91, edge, firefox < 90, ie, ios < 15, safari < 15 }
proposal-class-properties { chrome < 84, edge < 84, firefox < 90, ie, ios < 15, safari < 15 }
proposal-private-methods { chrome < 84, edge < 84, firefox < 90, ie, ios < 15, safari < 15 }
proposal-numeric-separator { chrome < 75, edge < 79, firefox < 70, ie, ios < 13, safari < 13 }
proposal-logical-assignment-operators { chrome < 85, edge < 85, firefox < 79, ie, ios < 14, safari < 14 }
proposal-nullish-coalescing-operator { chrome < 80, edge < 80, firefox < 72, ie, ios < 13.4, safari < 13.1 }
proposal-optional-chaining { chrome, edge, firefox < 74, ie, ios < 13.4, safari < 13.1 }
proposal-optional-chaining { chrome < 91, edge, firefox < 74, ie, ios < 13.4, safari < 13.1 }
proposal-json-strings { chrome < 66, edge < 79, firefox < 62, ie, ios < 12, safari < 12 }
proposal-optional-catch-binding { chrome < 66, edge < 79, firefox < 58, ie, ios < 11.3, safari < 11.1 }
transform-parameters { edge < 18, firefox < 53, ie, ios < 10, safari < 10 }
transform-parameters { edge < 18, firefox < 53, ie, ios, safari }
proposal-async-generator-functions { chrome < 63, edge < 79, firefox < 57, ie, ios < 12, safari < 12 }
proposal-object-rest-spread { chrome < 60, edge < 79, firefox < 55, ie, ios < 11.3, safari < 11.1 }
transform-dotall-regex { chrome < 62, edge < 79, firefox < 78, ie, ios < 11.3, safari < 11.1 }

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -10,10 +10,10 @@ Using modules transform: auto
Using plugins:
proposal-class-static-block { samsung }
proposal-private-property-in-object { samsung }
proposal-class-properties { samsung }
proposal-private-methods { samsung }
proposal-class-properties { samsung < 14 }
proposal-private-methods { samsung < 14 }
proposal-numeric-separator { samsung < 11 }
proposal-logical-assignment-operators { samsung }
proposal-logical-assignment-operators { samsung < 14 }
proposal-nullish-coalescing-operator { samsung < 13 }
proposal-optional-chaining { samsung }
proposal-json-strings { samsung < 9 }

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -17,7 +17,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, electron < 6.0, ie, node < 12.5 }
proposal-logical-assignment-operators { chrome < 85, electron < 10.0, ie, node < 15 }
proposal-nullish-coalescing-operator { chrome < 80, electron < 8.0, ie, node < 14 }
proposal-optional-chaining { chrome, electron, ie, node }
proposal-optional-chaining { chrome < 91, electron < 13.0, ie, node }
proposal-json-strings { chrome < 66, electron < 3.0, ie, node < 10 }
proposal-optional-catch-binding { chrome < 66, electron < 3.0, ie, node < 10 }
transform-parameters { electron < 0.37, ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, ie, node < 12.5 }
proposal-logical-assignment-operators { chrome < 85, ie, node < 15 }
proposal-nullish-coalescing-operator { chrome < 80, ie, node < 14 }
proposal-optional-chaining { chrome, ie, node }
proposal-optional-chaining { chrome < 91, ie, node }
proposal-json-strings { chrome < 66, ie, node < 10 }
proposal-optional-catch-binding { chrome < 66, ie, node < 10 }
transform-parameters { ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, ie, node < 12.5 }
proposal-logical-assignment-operators { chrome < 85, ie, node < 15 }
proposal-nullish-coalescing-operator { chrome < 80, ie, node < 14 }
proposal-optional-chaining { chrome, ie, node }
proposal-optional-chaining { chrome < 91, ie, node }
proposal-json-strings { chrome < 66, ie, node < 10 }
proposal-optional-catch-binding { chrome < 66, ie, node < 10 }
transform-parameters { ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, ie, node < 12.5 }
proposal-logical-assignment-operators { chrome < 85, ie, node < 15 }
proposal-nullish-coalescing-operator { chrome < 80, ie, node < 14 }
proposal-optional-chaining { chrome, ie, node }
proposal-optional-chaining { chrome < 91, ie, node }
proposal-json-strings { chrome < 66, ie, node < 10 }
proposal-optional-catch-binding { chrome < 66, ie, node < 10 }
transform-parameters { ie }

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, ie, node < 12.5 }
proposal-logical-assignment-operators { chrome < 85, ie, node < 15 }
proposal-nullish-coalescing-operator { chrome < 80, ie, node < 14 }
proposal-optional-chaining { chrome, ie, node }
proposal-optional-chaining { chrome < 91, ie, node }
proposal-json-strings { chrome < 66, ie, node < 10 }
proposal-optional-catch-binding { chrome < 66, ie, node < 10 }
transform-parameters { ie }

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
proposal-json-strings { chrome < 66 }
proposal-optional-catch-binding { chrome < 66 }
transform-parameters { }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, ie, node < 12.5 }
proposal-logical-assignment-operators { chrome < 85, ie, node < 15 }
proposal-nullish-coalescing-operator { chrome < 80, ie, node < 14 }
proposal-optional-chaining { chrome, ie, node }
proposal-optional-chaining { chrome < 91, ie, node }
proposal-json-strings { chrome < 66, ie, node < 10 }
proposal-optional-catch-binding { chrome < 66, ie, node < 10 }
transform-parameters { ie }

View File

@ -8,14 +8,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
proposal-class-properties { chrome < 84 }
proposal-private-methods { chrome < 84 }
syntax-numeric-separator
proposal-logical-assignment-operators { chrome < 85 }
syntax-nullish-coalescing-operator
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -8,13 +8,13 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91 }
proposal-class-static-block { chrome < 94 }
proposal-private-property-in-object { chrome < 91 }
syntax-class-properties
syntax-numeric-separator
proposal-logical-assignment-operators { chrome < 85 }
syntax-nullish-coalescing-operator
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
proposal-json-strings { chrome < 66 }
proposal-optional-catch-binding { chrome < 66 }
proposal-async-generator-functions { chrome < 63 }

View File

@ -14,7 +14,7 @@ Using plugins:
syntax-numeric-separator
proposal-logical-assignment-operators { chrome < 85 }
syntax-nullish-coalescing-operator
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -10,14 +10,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91, firefox, ie }
proposal-class-static-block { chrome < 94, firefox < 93, ie }
proposal-private-property-in-object { chrome < 91, firefox < 90, ie }
proposal-class-properties { chrome < 84, firefox < 90, ie }
proposal-private-methods { chrome < 84, firefox < 90, ie }
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -10,14 +10,14 @@ Using targets:
Using modules transform: auto
Using plugins:
proposal-class-static-block { chrome < 91, firefox, ie }
proposal-class-static-block { chrome < 94, firefox < 93, ie }
proposal-private-property-in-object { chrome < 91, firefox < 90, ie }
proposal-class-properties { chrome < 84, firefox < 90, ie }
proposal-private-methods { chrome < 84, firefox < 90, ie }
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
proposal-json-strings { chrome < 66 }
proposal-optional-catch-binding { chrome < 66 }
proposal-async-generator-functions { chrome < 63 }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -14,7 +14,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75 }
proposal-logical-assignment-operators { chrome < 85 }
proposal-nullish-coalescing-operator { chrome < 80 }
proposal-optional-chaining { chrome }
proposal-optional-chaining { chrome < 91 }
syntax-json-strings
syntax-optional-catch-binding
syntax-async-generators

View File

@ -16,7 +16,7 @@ Using plugins:
proposal-numeric-separator { chrome < 75, firefox < 70, ie }
proposal-logical-assignment-operators { chrome < 85, firefox < 79, ie }
proposal-nullish-coalescing-operator { chrome < 80, firefox < 72, ie }
proposal-optional-chaining { chrome, firefox < 74, ie }
proposal-optional-chaining { chrome < 91, firefox < 74, ie }
proposal-json-strings { chrome < 66, firefox < 62, ie }
proposal-optional-catch-binding { chrome < 66, firefox < 58, ie }
transform-parameters { firefox < 53, ie }

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