Skip to content

Commit

Permalink
bugfix/transform-safari-block-shadowing
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed Mar 1, 2020
1 parent d86aece commit af6fa3b
Show file tree
Hide file tree
Showing 30 changed files with 361 additions and 5 deletions.
1 change: 1 addition & 0 deletions packages/babel-compat-data/data/overlapping-plugins.json
Expand Up @@ -9,6 +9,7 @@
"bugfix/transform-edge-function-name"
],
"transform-block-scoping": [
"bugfix/transform-safari-block-shadowing",
"bugfix/transform-safari-for-shadowing"
],
"transform-template-literals": [
Expand Down
12 changes: 12 additions & 0 deletions packages/babel-compat-data/data/plugin-bugfixes.json
Expand Up @@ -69,8 +69,20 @@
"chrome": "49",
"edge": "14",
"firefox": "51",
"safari": "10",
"node": "6",
"ios": "10",
"samsung": "5",
"opera": "36",
"electron": "1"
},
"bugfix/transform-safari-block-shadowing": {
"chrome": "49",
"edge": "12",
"firefox": "44",
"safari": "11",
"node": "6",
"ie": "11",
"ios": "11",
"samsung": "5",
"opera": "36",
Expand Down
9 changes: 9 additions & 0 deletions packages/babel-compat-data/scripts/data/plugin-bugfixes.js
Expand Up @@ -15,6 +15,15 @@ module.exports = {
features: ['function "name" property / variables (function)'],
replaces: "transform-function-name",
},
"bugfix/transform-safari-block-shadowing": {
features: [
"const / scope shadow resolution",
"const / scope shadow resolution (strict mode)",
"let / scope shadow resolution",
"let / scope shadow resolution (strict mode)",
],
replaces: "transform-block-scoping",
},
"bugfix/transform-safari-for-shadowing": {
features: [
"let / for-in loop binding shadowing parameter",
Expand Down
2 changes: 2 additions & 0 deletions packages/babel-preset-env/src/available-plugins.js
Expand Up @@ -53,12 +53,14 @@ import bugfixAsyncArrowsInClass from "@babel/preset-modules/lib/plugins/transfor
import bugfixEdgeDefaultParameters from "@babel/preset-modules/lib/plugins/transform-edge-default-parameters";
import bugfixEdgeFunctionName from "@babel/preset-modules/lib/plugins/transform-edge-function-name";
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";

export default {
"bugfix/transform-async-arrows-in-class": bugfixAsyncArrowsInClass,
"bugfix/transform-edge-default-parameters": bugfixEdgeDefaultParameters,
"bugfix/transform-edge-function-name": bugfixEdgeFunctionName,
"bugfix/transform-safari-block-shadowing": bugfixSafariBlockShadowing,
"bugfix/transform-safari-for-shadowing": bugfixSafariForShadowing,
"bugfix/transform-tagged-template-caching": bugfixTaggedTemplateCaching,
"proposal-async-generator-functions": proposalAsyncGeneratorFunctions,
Expand Down
@@ -0,0 +1,8 @@
// Edge
({ x = 2 }) => {};

// Safari
{
let x;
{ let x; }
}
@@ -0,0 +1,12 @@
{
"validateLogs": true,
"presets": [
["env", {
"debug": true,
"bugfixes": false,
"targets": {
"esmodules": true
}
}]
]
}
@@ -0,0 +1,14 @@
// Edge
(_ref) => {
var {
x = 2
} = _ref;
}; // Safari


{
var x;
{
var _x;
}
}
@@ -0,0 +1,36 @@
@babel/preset-env: `DEBUG` option

Using targets:
{
"android": "61",
"chrome": "61",
"edge": "16",
"firefox": "60",
"ios": "10.3",
"opera": "48",
"safari": "10.1",
"samsung": "8.2"
}

Using modules transform: auto

Using plugins:
proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
proposal-json-strings { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
proposal-optional-catch-binding { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
proposal-async-generator-functions { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1" }
proposal-object-rest-spread { "edge":"16", "ios":"10.3", "safari":"10.1" }
transform-dotall-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1" }
proposal-unicode-property-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
transform-named-capturing-groups-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
transform-async-to-generator { "ios":"10.3", "safari":"10.1" }
transform-template-literals { "ios":"10.3", "safari":"10.1" }
transform-function-name { "edge":"16" }
transform-unicode-regex { "ios":"10.3", "safari":"10.1" }
transform-parameters { "edge":"16" }
transform-block-scoping { "ios":"10.3", "safari":"10.1" }
transform-modules-commonjs { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
proposal-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }

Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
@@ -0,0 +1,8 @@
// Edge
({ x = 2 }) => {};

// Safari
{
let x;
{ let x; }
}
@@ -0,0 +1,12 @@
// Edge
({
x: _x = 2
}) => {}; // Safari


{
let x;
{
let _x2;
}
}
Expand Up @@ -25,10 +25,11 @@ Using plugins:
proposal-unicode-property-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
transform-named-capturing-groups-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
transform-unicode-regex { "ios":"10.3", "safari":"10.1" }
transform-block-scoping { "ios":"10.3", "safari":"10.1" }
bugfix/transform-async-arrows-in-class { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
bugfix/transform-edge-default-parameters { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
bugfix/transform-edge-function-name { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
bugfix/transform-safari-block-shadowing { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
bugfix/transform-safari-for-shadowing { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
bugfix/transform-tagged-template-caching { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
transform-modules-commonjs { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
proposal-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" }
Expand Down

This file was deleted.

This file was deleted.

@@ -0,0 +1,8 @@
e => {
for (let e of []);
};

{
let a;
{ let a; }
}
@@ -0,0 +1,12 @@
{
"validateLogs": true,
"presets": [
["env", {
"debug": true,
"bugfixes": false,
"targets": {
"safari": "10"
}
}]
]
}
@@ -0,0 +1,12 @@
e => {
for (var _e of []) {
;
}
};

{
var a;
{
var _a;
}
}
@@ -0,0 +1,28 @@
@babel/preset-env: `DEBUG` option

Using targets:
{
"safari": "10"
}

Using modules transform: auto

Using plugins:
proposal-nullish-coalescing-operator { "safari":"10" }
proposal-optional-chaining { "safari":"10" }
proposal-json-strings { "safari":"10" }
proposal-optional-catch-binding { "safari":"10" }
proposal-async-generator-functions { "safari":"10" }
proposal-object-rest-spread { "safari":"10" }
transform-dotall-regex { "safari":"10" }
proposal-unicode-property-regex { "safari":"10" }
transform-named-capturing-groups-regex { "safari":"10" }
transform-async-to-generator { "safari":"10" }
transform-exponentiation-operator { "safari":"10" }
transform-template-literals { "safari":"10" }
transform-unicode-regex { "safari":"10" }
transform-block-scoping { "safari":"10" }
transform-modules-commonjs { "safari":"10" }
proposal-dynamic-import { "safari":"10" }

Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
@@ -0,0 +1,8 @@
e => {
for (let e of []);
};

{
let a;
{ let a; }
}
@@ -0,0 +1,12 @@
{
"validateLogs": true,
"presets": [
["env", {
"debug": true,
"bugfixes": true,
"targets": {
"safari": "10"
}
}]
]
}
@@ -0,0 +1,10 @@
e => {
for (let _e of []);
};

{
let a;
{
let _a;
}
}
@@ -0,0 +1,29 @@
@babel/preset-env: `DEBUG` option

Using targets:
{
"safari": "10"
}

Using modules transform: auto

Using plugins:
proposal-nullish-coalescing-operator { "safari":"10" }
proposal-optional-chaining { "safari":"10" }
proposal-json-strings { "safari":"10" }
proposal-optional-catch-binding { "safari":"10" }
proposal-async-generator-functions { "safari":"10" }
proposal-object-rest-spread { "safari":"10" }
transform-dotall-regex { "safari":"10" }
proposal-unicode-property-regex { "safari":"10" }
transform-named-capturing-groups-regex { "safari":"10" }
transform-async-to-generator { "safari":"10" }
transform-exponentiation-operator { "safari":"10" }
transform-unicode-regex { "safari":"10" }
bugfix/transform-safari-block-shadowing { "safari":"10" }
bugfix/transform-safari-for-shadowing { "safari":"10" }
bugfix/transform-tagged-template-caching { "safari":"10" }
transform-modules-commonjs { "safari":"10" }
proposal-dynamic-import { "safari":"10" }

Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
@@ -0,0 +1,8 @@
e => {
for (let e of []);
};

{
let a;
{ let a; }
}
@@ -0,0 +1,12 @@
{
"validateLogs": true,
"presets": [
["env", {
"debug": true,
"bugfixes": true,
"targets": {
"safari": "11"
}
}]
]
}
@@ -0,0 +1,10 @@
e => {
for (let e of []);
};

{
let a;
{
let a;
}
}
@@ -0,0 +1,25 @@
@babel/preset-env: `DEBUG` option

Using targets:
{
"safari": "11"
}

Using modules transform: auto

Using plugins:
proposal-nullish-coalescing-operator { "safari":"11" }
proposal-optional-chaining { "safari":"11" }
proposal-json-strings { "safari":"11" }
proposal-optional-catch-binding { "safari":"11" }
proposal-async-generator-functions { "safari":"11" }
proposal-object-rest-spread { "safari":"11" }
transform-dotall-regex { "safari":"11" }
proposal-unicode-property-regex { "safari":"11" }
transform-named-capturing-groups-regex { "safari":"11" }
transform-unicode-regex { "safari":"11" }
bugfix/transform-tagged-template-caching { "safari":"11" }
transform-modules-commonjs { "safari":"11" }
proposal-dynamic-import { "safari":"11" }

Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
@@ -0,0 +1,8 @@
e => {
for (let e of []);
};

{
let a;
{ let a; }
}
@@ -0,0 +1,13 @@
{
"validateLogs": true,
"presets": [
["env", {
"debug": true,
"bugfixes": true,
"targets": {
"safari": "9"
},
"exclude": ["transform-for-of", "transform-arrow-functions"]
}]
]
}
@@ -0,0 +1,12 @@
e => {
for (var _e of []) {
;
}
};

{
var a;
{
var _a;
}
}

0 comments on commit af6fa3b

Please sign in to comment.