Skip to content

Commit

Permalink
add bugfix plugin to preset-env
Browse files Browse the repository at this point in the history
  • Loading branch information
JLHwung committed Oct 13, 2021
1 parent 1996ef8 commit 2779bf1
Show file tree
Hide file tree
Showing 96 changed files with 243 additions and 135 deletions.
1 change: 1 addition & 0 deletions packages/babel-preset-env/package.json
Expand Up @@ -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",
Expand Down
3 changes: 3 additions & 0 deletions packages/babel-preset-env/src/available-plugins.ts
Expand Up @@ -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 {
Expand All @@ -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,
Expand Down
Expand Up @@ -16,13 +16,13 @@ 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 }
Expand Down
Expand Up @@ -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 }
Expand Down
Expand Up @@ -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 }
Expand Down
Expand Up @@ -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 }
Expand Down
Expand Up @@ -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 }
Expand Down
Expand Up @@ -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 }
Expand Down
@@ -0,0 +1,5 @@
(function a(a) {});

(function a([a]) {});

(function a({a}) {});
@@ -0,0 +1,15 @@
{
"validateLogs": true,
"presets": [
[
"env",
{
"debug": true,
"bugfixes": true,
"targets": {
"safari": "15"
}
}
]
]
}
@@ -0,0 +1,7 @@
(function a(a) {});

(function a([_a]) {});

(function a({
a: _a2
}) {});
@@ -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.
@@ -0,0 +1,5 @@
(function a(a) {});

(function a([a]) {});

(function a({a}) {});
@@ -0,0 +1,15 @@
{
"validateLogs": true,
"presets": [
[
"env",
{
"debug": true,
"bugfixes": false,
"targets": {
"safari": "15"
}
}
]
]
}
@@ -0,0 +1,7 @@
(function a(a) {});

(function a([a]) {});

(function a({
a
}) {});
@@ -0,0 +1,24 @@
@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 }
transform-modules-commonjs
proposal-dynamic-import

Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
Expand Up @@ -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
Expand Down
Expand Up @@ -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 { }
Expand Down
Expand Up @@ -16,13 +16,13 @@ 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 }
Expand Down
Expand Up @@ -16,13 +16,13 @@ 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 }
Expand Down
Expand Up @@ -15,13 +15,13 @@ 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
syntax-async-generators
Expand Down
Expand Up @@ -16,13 +16,13 @@ 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 }
Expand Down
Expand Up @@ -15,13 +15,13 @@ 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
syntax-async-generators
Expand Down
Expand Up @@ -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 }
Expand Down
Expand Up @@ -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 { }
Expand Down
Expand Up @@ -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
Expand Down
Expand Up @@ -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
Expand Down
Expand Up @@ -13,13 +13,13 @@ 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 }
Expand Down

0 comments on commit 2779bf1

Please sign in to comment.