mirror of
https://github.com/hanzoai/babel.git
synced 2026-09-24 16:56:45 +00:00
Introduce bugfix-safari-class-field-initializer-scope (#16569)
Co-authored-by: Nicolò Ribaudo <[email protected]>
This commit is contained in:
committed by
GitHub
co-authored by
Nicolò Ribaudo
parent
94b1dee35e
commit
9a4794a7ad
@@ -734,6 +734,7 @@ if (bool(process.env.BABEL_8_BREAKING)) {
|
||||
"packages/babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining",
|
||||
"packages/babel-plugin-bugfix-v8-static-class-fields-redefine-readonly",
|
||||
"packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression",
|
||||
"packages/babel-plugin-bugfix-safari-class-field-initializer-scope",
|
||||
].map(src => ({
|
||||
src,
|
||||
format: USE_ESM ? "esm" : "cjs",
|
||||
|
||||
@@ -24,10 +24,12 @@
|
||||
],
|
||||
"transform-class-properties": [
|
||||
"bugfix/transform-v8-static-class-fields-redefine-readonly",
|
||||
"bugfix/transform-firefox-class-in-computed-class-key"
|
||||
"bugfix/transform-firefox-class-in-computed-class-key",
|
||||
"bugfix/transform-safari-class-field-initializer-scope"
|
||||
],
|
||||
"proposal-class-properties": [
|
||||
"bugfix/transform-v8-static-class-fields-redefine-readonly",
|
||||
"bugfix/transform-firefox-class-in-computed-class-key"
|
||||
"bugfix/transform-firefox-class-in-computed-class-key",
|
||||
"bugfix/transform-safari-class-field-initializer-scope"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -111,10 +111,10 @@
|
||||
"chrome": "74",
|
||||
"opera": "62",
|
||||
"edge": "79",
|
||||
"safari": "14.1",
|
||||
"safari": "16",
|
||||
"node": "12",
|
||||
"deno": "1",
|
||||
"ios": "14.5",
|
||||
"ios": "16",
|
||||
"samsung": "11",
|
||||
"opera_mobile": "53",
|
||||
"electron": "6.0"
|
||||
|
||||
@@ -35,10 +35,23 @@
|
||||
"chrome": "74",
|
||||
"opera": "62",
|
||||
"edge": "79",
|
||||
"safari": "14.1",
|
||||
"safari": "16",
|
||||
"node": "12",
|
||||
"deno": "1",
|
||||
"ios": "14.5",
|
||||
"ios": "16",
|
||||
"samsung": "11",
|
||||
"opera_mobile": "53",
|
||||
"electron": "6.0"
|
||||
},
|
||||
"bugfix/transform-safari-class-field-initializer-scope": {
|
||||
"chrome": "74",
|
||||
"opera": "62",
|
||||
"edge": "79",
|
||||
"firefox": "69",
|
||||
"safari": "16",
|
||||
"node": "12",
|
||||
"deno": "1",
|
||||
"ios": "16",
|
||||
"samsung": "11",
|
||||
"opera_mobile": "53",
|
||||
"electron": "6.0"
|
||||
|
||||
@@ -169,6 +169,10 @@ const es2022 = {
|
||||
firefox: undefined,
|
||||
},
|
||||
},
|
||||
"bugfix/transform-safari-class-field-initializer-scope": {
|
||||
features: ["instance class fields / resolving identifier in parent scope"],
|
||||
replaces: "transform-class-properties",
|
||||
},
|
||||
"transform-class-static-block": "Class static initialization blocks",
|
||||
"transform-private-property-in-object":
|
||||
"Ergonomic brand checks for private fields",
|
||||
@@ -178,6 +182,7 @@ const es2022 = {
|
||||
"instance class fields / public instance class fields",
|
||||
"instance class fields / private instance class fields basic support",
|
||||
"instance class fields / computed instance class fields",
|
||||
"instance class fields / resolving identifier in parent scope",
|
||||
],
|
||||
},
|
||||
"transform-private-methods": "private class methods",
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
src
|
||||
test
|
||||
*.log
|
||||
@@ -0,0 +1,19 @@
|
||||
# @babel/plugin-bugfix-safari-class-field-initializer-scope
|
||||
|
||||
> Wrap class field initializers with IIFE to workaround https://webkit.org/b/236843
|
||||
|
||||
See our website [@babel/plugin-bugfix-safari-class-field-initializer-scope](https://babeljs.io/docs/babel-plugin-bugfix-safari-class-field-initializer-scope) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save-dev @babel/plugin-bugfix-safari-class-field-initializer-scope
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/plugin-bugfix-safari-class-field-initializer-scope --dev
|
||||
```
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"name": "@babel/plugin-bugfix-safari-class-field-initializer-scope",
|
||||
"version": "7.24.7",
|
||||
"description": "Wrap class field initializers with IIFE to workaround https://webkit.org/b/236843",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/babel.git",
|
||||
"directory": "packages/babel-plugin-bugfix-safari-class-field-initializer-scope"
|
||||
},
|
||||
"homepage": "https://babel.dev/docs/en/next/babel-plugin-bugfix-safari-class-field-initializer-scope",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"main": "./lib/index.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./lib/index.d.ts",
|
||||
"default": "./lib/index.js"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"keywords": [
|
||||
"babel-plugin",
|
||||
"bugfix"
|
||||
],
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "workspace:^"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "workspace:^",
|
||||
"@babel/helper-function-name": "workspace:^",
|
||||
"@babel/helper-plugin-test-runner": "workspace:^",
|
||||
"@babel/traverse": "workspace:^"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"author": "The Babel Team (https://babel.dev/team)",
|
||||
"type": "module",
|
||||
"conditions": {
|
||||
"USE_ESM": [
|
||||
null,
|
||||
{
|
||||
"type": "commonjs"
|
||||
}
|
||||
],
|
||||
"BABEL_8_BREAKING": [
|
||||
{
|
||||
"engines": {
|
||||
"node": "^18.20.0 || ^20.10.0 || >=21.0.0"
|
||||
}
|
||||
},
|
||||
{}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
import { declare } from "@babel/helper-plugin-utils";
|
||||
import { types as t } from "@babel/core";
|
||||
import type { NodePath } from "@babel/core";
|
||||
|
||||
function needsWrapping(node: t.Node): boolean {
|
||||
if (t.isLiteral(node) && !t.isTemplateLiteral(node)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (
|
||||
t.isCallExpression(node) ||
|
||||
t.isOptionalCallExpression(node) ||
|
||||
t.isNewExpression(node)
|
||||
) {
|
||||
return needsWrapping(node.callee) || node.arguments.some(needsWrapping);
|
||||
}
|
||||
|
||||
if (t.isTemplateLiteral(node)) {
|
||||
return node.expressions.some(needsWrapping);
|
||||
}
|
||||
|
||||
if (t.isTaggedTemplateExpression(node)) {
|
||||
return needsWrapping(node.tag) || needsWrapping(node.quasi);
|
||||
}
|
||||
|
||||
if (t.isArrayExpression(node)) {
|
||||
return node.elements.some(needsWrapping);
|
||||
}
|
||||
|
||||
if (t.isObjectExpression(node)) {
|
||||
return node.properties.some(prop => {
|
||||
if (t.isObjectProperty(prop)) {
|
||||
return (
|
||||
needsWrapping(prop.value) ||
|
||||
(prop.computed && needsWrapping(prop.key))
|
||||
);
|
||||
}
|
||||
if (t.isObjectMethod(prop)) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
if (t.isMemberExpression(node) || t.isOptionalMemberExpression(node)) {
|
||||
return (
|
||||
needsWrapping(node.object) ||
|
||||
(node.computed && needsWrapping(node.property))
|
||||
);
|
||||
}
|
||||
|
||||
if (
|
||||
t.isFunctionExpression(node) ||
|
||||
t.isArrowFunctionExpression(node) ||
|
||||
t.isClassExpression(node)
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (t.isThisExpression(node)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (t.isSequenceExpression(node)) {
|
||||
return node.expressions.some(needsWrapping);
|
||||
}
|
||||
|
||||
// Is an identifier, or anything else not covered above
|
||||
return true;
|
||||
}
|
||||
|
||||
function wrapInitializer(
|
||||
path: NodePath<t.ClassProperty | t.ClassPrivateProperty>,
|
||||
) {
|
||||
const { value } = path.node;
|
||||
|
||||
if (value && needsWrapping(value)) {
|
||||
path.node.value = t.callExpression(
|
||||
t.arrowFunctionExpression([], value),
|
||||
[],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default declare(api => {
|
||||
api.assertVersion(REQUIRED_VERSION("^7.16.0"));
|
||||
|
||||
return {
|
||||
name: "plugin-bugfix-safari-class-field-initializer-scope",
|
||||
|
||||
visitor: {
|
||||
ClassProperty(path) {
|
||||
wrapInitializer(path);
|
||||
},
|
||||
ClassPrivateProperty(path) {
|
||||
wrapInitializer(path);
|
||||
},
|
||||
},
|
||||
};
|
||||
});
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
let someVariable = 1;
|
||||
|
||||
class MyClass {
|
||||
// These things should not need transforming
|
||||
numericLiteral = 1;
|
||||
stringLiteral = 'string';
|
||||
booleanLiteral = true;
|
||||
nullLiteral = null;
|
||||
simpleTemplateLiteral = `template literal ${"with simple interpolation"}`;
|
||||
simpleTaggedTemplateLiteral = this.foo`template literal ${"with simple interpolation"}`;
|
||||
emptyObjectLiteral = {};
|
||||
simpleObjectLiteral = {
|
||||
one: "two",
|
||||
two: ["array", "of", "literals"]
|
||||
};
|
||||
emptyArrayLiteral = [];
|
||||
simpleArrayLiteral = [1, 2, 3];
|
||||
arrow = () => someVariable;
|
||||
function = function() { return someVariable };
|
||||
iifeArrow = (() => 1)();
|
||||
iifeFunction = (function() { return someVariable })();
|
||||
thisReference = this.foo;
|
||||
optionalMemberExpression = this?.foo;
|
||||
optionalCallExpression = this.foo?.();
|
||||
sequenceExpression = (1, 2, 3);
|
||||
classExpression = class {};
|
||||
|
||||
// These things should be wrapped in IIFEs
|
||||
complexRef = someVariable;
|
||||
complexInit = someVariable + 1;
|
||||
complexObject = {
|
||||
one: someVariable,
|
||||
}
|
||||
complexArray = [
|
||||
someVariable
|
||||
]
|
||||
complexTemplateLiteral = `template literal ${someVariable}`;
|
||||
dynamicThisReference = this[someVariable];
|
||||
complexSequenceExpression = (someVariable, 2, 3);
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
let someVariable = 1;
|
||||
class MyClass {
|
||||
// These things should not need transforming
|
||||
numericLiteral = 1;
|
||||
stringLiteral = 'string';
|
||||
booleanLiteral = true;
|
||||
nullLiteral = null;
|
||||
simpleTemplateLiteral = `template literal ${"with simple interpolation"}`;
|
||||
simpleTaggedTemplateLiteral = this.foo`template literal ${"with simple interpolation"}`;
|
||||
emptyObjectLiteral = {};
|
||||
simpleObjectLiteral = {
|
||||
one: "two",
|
||||
two: ["array", "of", "literals"]
|
||||
};
|
||||
emptyArrayLiteral = [];
|
||||
simpleArrayLiteral = [1, 2, 3];
|
||||
arrow = () => someVariable;
|
||||
function = function () {
|
||||
return someVariable;
|
||||
};
|
||||
iifeArrow = (() => 1)();
|
||||
iifeFunction = function () {
|
||||
return someVariable;
|
||||
}();
|
||||
thisReference = this.foo;
|
||||
optionalMemberExpression = this?.foo;
|
||||
optionalCallExpression = this.foo?.();
|
||||
sequenceExpression = (1, 2, 3);
|
||||
classExpression = class {};
|
||||
|
||||
// These things should be wrapped in IIFEs
|
||||
complexRef = (() => someVariable)();
|
||||
complexInit = (() => someVariable + 1)();
|
||||
complexObject = (() => ({
|
||||
one: someVariable
|
||||
}))();
|
||||
complexArray = (() => [someVariable])();
|
||||
complexTemplateLiteral = (() => `template literal ${someVariable}`)();
|
||||
dynamicThisReference = (() => this[someVariable])();
|
||||
complexSequenceExpression = (() => (someVariable, 2, 3))();
|
||||
}
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"plugins": ["bugfix-safari-class-field-initializer-scope"]
|
||||
}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{ "type": "commonjs" }
|
||||
@@ -0,0 +1,3 @@
|
||||
import runner from "@babel/helper-plugin-test-runner";
|
||||
|
||||
runner(import.meta.url);
|
||||
@@ -0,0 +1,17 @@
|
||||
/* This file is automatically generated by scripts/generators/tsconfig.js */
|
||||
{
|
||||
"extends": [
|
||||
"../../tsconfig.base.json",
|
||||
"../../tsconfig.paths.json"
|
||||
],
|
||||
"include": [
|
||||
"../../packages/babel-plugin-bugfix-safari-class-field-initializer-scope/src/**/*.ts",
|
||||
"../../lib/globals.d.ts",
|
||||
"../../scripts/repo-utils/*.d.ts"
|
||||
],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../packages/babel-helper-plugin-utils"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -21,6 +21,7 @@
|
||||
"@babel/helper-plugin-utils": "workspace:^",
|
||||
"@babel/helper-validator-option": "workspace:^",
|
||||
"@babel/plugin-bugfix-firefox-class-in-computed-class-key": "workspace:^",
|
||||
"@babel/plugin-bugfix-safari-class-field-initializer-scope": "workspace:^",
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "workspace:^",
|
||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "workspace:^",
|
||||
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "workspace:^",
|
||||
|
||||
@@ -61,6 +61,7 @@ import bugfixTaggedTemplateCaching from "@babel/preset-modules/lib/plugins/trans
|
||||
import bugfixSafariBlockShadowing from "@babel/preset-modules/lib/plugins/transform-safari-block-shadowing/index.js";
|
||||
import bugfixSafariForShadowing from "@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js";
|
||||
import bugfixSafariIdDestructuringCollisionInFunctionExpression from "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression";
|
||||
import bugfixSafariClassFieldInitializerScope from "@babel/plugin-bugfix-safari-class-field-initializer-scope";
|
||||
import bugfixV8SpreadParametersInOptionalChaining from "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining";
|
||||
import bugfixV8StaticClassFieldsRedefineReadonly from "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly";
|
||||
|
||||
@@ -72,6 +73,8 @@ const availablePlugins = {
|
||||
"bugfix/transform-firefox-class-in-computed-class-key": () =>
|
||||
bugfixFirefoxClassInComputedKey,
|
||||
"bugfix/transform-safari-block-shadowing": () => bugfixSafariBlockShadowing,
|
||||
"bugfix/transform-safari-class-field-initializer-scope": () =>
|
||||
bugfixSafariClassFieldInitializerScope,
|
||||
"bugfix/transform-safari-for-shadowing": () => bugfixSafariForShadowing,
|
||||
"bugfix/transform-safari-id-destructuring-collision-in-function-expression":
|
||||
() => bugfixSafariIdDestructuringCollisionInFunctionExpression,
|
||||
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
import { arr } from "./dep.js";
|
||||
|
||||
export class A {
|
||||
prop = (arr + 1) * 2;
|
||||
}
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"BABEL_8_BREAKING": false,
|
||||
"validateLogs": true,
|
||||
"targets": "safari 13",
|
||||
"presets": [
|
||||
["env", { "debug": true, "modules": false }]
|
||||
]
|
||||
}
|
||||
Vendored
+6
@@ -0,0 +1,6 @@
|
||||
import { arr } from "./dep.js";
|
||||
export class A {
|
||||
constructor() {
|
||||
babelHelpers.defineProperty(this, "prop", (arr + 1) * 2);
|
||||
}
|
||||
}
|
||||
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
@babel/preset-env: `DEBUG` option
|
||||
|
||||
Using targets:
|
||||
{
|
||||
"safari": "13"
|
||||
}
|
||||
|
||||
Using modules transform: false
|
||||
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { safari < 17.4 }
|
||||
transform-unicode-sets-regex { safari < 17 }
|
||||
transform-class-static-block { safari < 16.4 }
|
||||
transform-private-property-in-object { safari < 15 }
|
||||
transform-class-properties { safari < 14.1 }
|
||||
transform-private-methods { safari < 15 }
|
||||
syntax-numeric-separator
|
||||
transform-logical-assignment-operators { safari < 14 }
|
||||
transform-nullish-coalescing-operator { safari < 13.1 }
|
||||
transform-optional-chaining { safari < 13.1 }
|
||||
syntax-json-strings
|
||||
syntax-optional-catch-binding
|
||||
transform-parameters { safari < 16.3 }
|
||||
syntax-async-generators
|
||||
syntax-object-rest-spread
|
||||
transform-export-namespace-from { safari < 14.1 }
|
||||
syntax-dynamic-import
|
||||
syntax-top-level-await
|
||||
syntax-import-meta
|
||||
|
||||
Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import { arr } from "./dep.js";
|
||||
|
||||
export class A {
|
||||
prop = (arr + 1) * 2;
|
||||
}
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"BABEL_8_BREAKING": true,
|
||||
"validateLogs": true,
|
||||
"targets": "safari 13",
|
||||
"presets": [
|
||||
["env", { "debug": true, "modules": false }]
|
||||
]
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
import { arr } from "./dep.js";
|
||||
export class A {
|
||||
constructor() {
|
||||
babelHelpers.defineProperty(this, "prop", (arr + 1) * 2);
|
||||
}
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
@babel/preset-env: `DEBUG` option
|
||||
|
||||
Using targets:
|
||||
{
|
||||
"safari": "13"
|
||||
}
|
||||
|
||||
Using modules transform: false
|
||||
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { safari < 17.4 }
|
||||
transform-unicode-sets-regex { safari < 17 }
|
||||
transform-class-static-block { safari < 16.4 }
|
||||
transform-private-property-in-object { safari < 15 }
|
||||
transform-class-properties { safari < 14.1 }
|
||||
transform-private-methods { safari < 15 }
|
||||
transform-logical-assignment-operators { safari < 14 }
|
||||
transform-nullish-coalescing-operator { safari < 13.1 }
|
||||
transform-optional-chaining { safari < 13.1 }
|
||||
transform-export-namespace-from { safari < 14.1 }
|
||||
bugfix/transform-safari-id-destructuring-collision-in-function-expression { safari < 16.3 }
|
||||
|
||||
Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
import { arr } from "./dep.js";
|
||||
|
||||
export class A {
|
||||
prop = (arr + 1) * 2;
|
||||
}
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"BABEL_8_BREAKING": false,
|
||||
"validateLogs": true,
|
||||
"targets": "safari 15",
|
||||
"presets": [
|
||||
["env", { "debug": true, "modules": false }]
|
||||
]
|
||||
}
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
import { arr } from "./dep.js";
|
||||
export class A {
|
||||
prop = (() => (arr + 1) * 2)();
|
||||
}
|
||||
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
@babel/preset-env: `DEBUG` option
|
||||
|
||||
Using targets:
|
||||
{
|
||||
"safari": "15"
|
||||
}
|
||||
|
||||
Using modules transform: false
|
||||
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { safari < 17.4 }
|
||||
transform-unicode-sets-regex { safari < 17 }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { safari < 16 }
|
||||
bugfix/transform-safari-class-field-initializer-scope { safari < 16 }
|
||||
transform-class-static-block { safari < 16.4 }
|
||||
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 < 16.3 }
|
||||
syntax-async-generators
|
||||
syntax-object-rest-spread
|
||||
syntax-export-namespace-from
|
||||
syntax-dynamic-import
|
||||
syntax-top-level-await
|
||||
syntax-import-meta
|
||||
|
||||
Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import { arr } from "./dep.js";
|
||||
|
||||
export class A {
|
||||
prop = (arr + 1) * 2;
|
||||
}
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"BABEL_8_BREAKING": true,
|
||||
"validateLogs": true,
|
||||
"targets": "safari 15",
|
||||
"presets": [
|
||||
["env", { "debug": true, "modules": false }]
|
||||
]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
import { arr } from "./dep.js";
|
||||
export class A {
|
||||
prop = (() => (arr + 1) * 2)();
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
@babel/preset-env: `DEBUG` option
|
||||
|
||||
Using targets:
|
||||
{
|
||||
"safari": "15"
|
||||
}
|
||||
|
||||
Using modules transform: false
|
||||
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { safari < 17.4 }
|
||||
transform-unicode-sets-regex { safari < 17 }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { safari < 16 }
|
||||
bugfix/transform-safari-class-field-initializer-scope { safari < 16 }
|
||||
transform-class-static-block { safari < 16.4 }
|
||||
bugfix/transform-safari-id-destructuring-collision-in-function-expression { safari < 16.3 }
|
||||
|
||||
Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import { arr } from "./dep.js";
|
||||
|
||||
export class A {
|
||||
prop = (arr + 1) * 2;
|
||||
}
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"validateLogs": true,
|
||||
"targets": "safari 17",
|
||||
"presets": [
|
||||
["env", { "debug": true, "modules": false }]
|
||||
]
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
import { arr } from "./dep.js";
|
||||
export class A {
|
||||
prop = (arr + 1) * 2;
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
@babel/preset-env: `DEBUG` option
|
||||
|
||||
Using targets:
|
||||
{
|
||||
"safari": "17"
|
||||
}
|
||||
|
||||
Using modules transform: false
|
||||
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { safari < 17.4 }
|
||||
syntax-class-static-block
|
||||
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
|
||||
syntax-export-namespace-from
|
||||
syntax-dynamic-import
|
||||
syntax-top-level-await
|
||||
syntax-import-meta
|
||||
|
||||
Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
|
||||
+2
@@ -10,6 +10,8 @@ Using modules transform: auto
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { safari < 17.4 }
|
||||
transform-unicode-sets-regex { safari < 17 }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { safari < 16 }
|
||||
bugfix/transform-safari-class-field-initializer-scope { safari < 16 }
|
||||
transform-class-static-block { safari < 16.4 }
|
||||
syntax-private-property-in-object
|
||||
syntax-class-properties
|
||||
|
||||
+2
@@ -10,6 +10,8 @@ Using modules transform: auto
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { safari < 17.4 }
|
||||
transform-unicode-sets-regex { safari < 17 }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { safari < 16 }
|
||||
bugfix/transform-safari-class-field-initializer-scope { safari < 16 }
|
||||
transform-class-static-block { safari < 16.4 }
|
||||
syntax-private-property-in-object
|
||||
syntax-class-properties
|
||||
|
||||
Vendored
+2
-1
@@ -18,7 +18,8 @@ Using modules transform: auto
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { android, chrome < 126, edge < 126, firefox < 129, ios, opera, opera_mobile, samsung }
|
||||
transform-unicode-sets-regex { chrome < 112, firefox < 116, ios < 17, samsung }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { firefox }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { firefox, ios < 16 }
|
||||
bugfix/transform-safari-class-field-initializer-scope { ios < 16 }
|
||||
transform-class-static-block { ios < 16.4 }
|
||||
syntax-private-property-in-object
|
||||
syntax-class-properties
|
||||
|
||||
+2
-1
@@ -18,7 +18,8 @@ Using modules transform: auto
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { android, chrome < 126, edge < 126, firefox < 129, ios, opera, opera_mobile, samsung }
|
||||
transform-unicode-sets-regex { chrome < 112, firefox < 116, ios < 17, samsung }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { firefox }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { firefox, ios < 16 }
|
||||
bugfix/transform-safari-class-field-initializer-scope { ios < 16 }
|
||||
transform-class-static-block { ios < 16.4 }
|
||||
syntax-private-property-in-object
|
||||
syntax-class-properties
|
||||
|
||||
+2
-1
@@ -18,7 +18,8 @@ Using modules transform: auto
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { android, chrome < 126, edge < 126, firefox < 129, ios, opera, opera_mobile, samsung }
|
||||
transform-unicode-sets-regex { chrome < 112, firefox < 116, ios < 17, samsung }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { firefox }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { firefox, ios < 16 }
|
||||
bugfix/transform-safari-class-field-initializer-scope { ios < 16 }
|
||||
transform-class-static-block { ios < 16.4 }
|
||||
transform-export-namespace-from { }
|
||||
bugfix/transform-safari-id-destructuring-collision-in-function-expression { ios < 16.3 }
|
||||
|
||||
+2
-1
@@ -18,7 +18,8 @@ Using modules transform: auto
|
||||
Using plugins:
|
||||
transform-duplicate-named-capturing-groups-regex { android, chrome < 126, edge < 126, firefox < 129, ios, opera, opera_mobile, samsung }
|
||||
transform-unicode-sets-regex { chrome < 112, firefox < 116, ios < 17, samsung }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { firefox }
|
||||
bugfix/transform-firefox-class-in-computed-class-key { firefox, ios < 16 }
|
||||
bugfix/transform-safari-class-field-initializer-scope { ios < 16 }
|
||||
transform-class-static-block { ios < 16.4 }
|
||||
transform-export-namespace-from { }
|
||||
bugfix/transform-safari-id-destructuring-collision-in-function-expression { ios < 16.3 }
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
{
|
||||
"path": "../../packages/babel-plugin-bugfix-firefox-class-in-computed-class-key"
|
||||
},
|
||||
{
|
||||
"path": "../../packages/babel-plugin-bugfix-safari-class-field-initializer-scope"
|
||||
},
|
||||
{
|
||||
"path": "../../packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression"
|
||||
},
|
||||
|
||||
@@ -70,6 +70,9 @@
|
||||
{
|
||||
"path": "./packages/babel-plugin-bugfix-firefox-class-in-computed-class-key"
|
||||
},
|
||||
{
|
||||
"path": "./packages/babel-plugin-bugfix-safari-class-field-initializer-scope"
|
||||
},
|
||||
{
|
||||
"path": "./packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression"
|
||||
},
|
||||
|
||||
@@ -125,6 +125,9 @@
|
||||
"@babel/plugin-bugfix-firefox-class-in-computed-class-key": [
|
||||
"./packages/babel-plugin-bugfix-firefox-class-in-computed-class-key/src"
|
||||
],
|
||||
"@babel/plugin-bugfix-safari-class-field-initializer-scope": [
|
||||
"./packages/babel-plugin-bugfix-safari-class-field-initializer-scope/src"
|
||||
],
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": [
|
||||
"./packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression/src"
|
||||
],
|
||||
|
||||
@@ -1368,6 +1368,20 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@babel/plugin-bugfix-safari-class-field-initializer-scope@workspace:^, @babel/plugin-bugfix-safari-class-field-initializer-scope@workspace:packages/babel-plugin-bugfix-safari-class-field-initializer-scope":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@workspace:packages/babel-plugin-bugfix-safari-class-field-initializer-scope"
|
||||
dependencies:
|
||||
"@babel/core": "workspace:^"
|
||||
"@babel/helper-function-name": "workspace:^"
|
||||
"@babel/helper-plugin-test-runner": "workspace:^"
|
||||
"@babel/helper-plugin-utils": "workspace:^"
|
||||
"@babel/traverse": "workspace:^"
|
||||
peerDependencies:
|
||||
"@babel/core": ^7.0.0
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^8.0.0-alpha.8":
|
||||
version: 8.0.0-alpha.8
|
||||
resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:8.0.0-alpha.8"
|
||||
@@ -4035,6 +4049,7 @@ __metadata:
|
||||
"@babel/helper-plugin-utils": "workspace:^"
|
||||
"@babel/helper-validator-option": "workspace:^"
|
||||
"@babel/plugin-bugfix-firefox-class-in-computed-class-key": "workspace:^"
|
||||
"@babel/plugin-bugfix-safari-class-field-initializer-scope": "workspace:^"
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "workspace:^"
|
||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "workspace:^"
|
||||
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "workspace:^"
|
||||
|
||||
Reference in New Issue
Block a user