summaryrefslogtreecommitdiff
path: root/node_modules/@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js')
-rw-r--r--node_modules/@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js42
1 files changed, 0 insertions, 42 deletions
diff --git a/node_modules/@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js b/node_modules/@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js
deleted file mode 100644
index 43c33e5b..00000000
--- a/node_modules/@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-
-exports.__esModule = true;
-exports.default = void 0;
-
-/**
- * Safari ~11 has an issue where variable declarations in a For statement throw if they shadow parameters.
- * This is fixed by renaming any declarations in the left/init part of a For* statement so they don't shadow.
- * @see https://bugs.webkit.org/show_bug.cgi?id=171041
- *
- * @example
- * e => { for (let e of []) e } // throws
- * e => { for (let _e of []) _e } // works
- */
-function handle(declaration) {
- if (!declaration.isVariableDeclaration()) return;
- const fn = declaration.getFunctionParent();
- const {
- name
- } = declaration.node.declarations[0].id; // check if there is a shadowed binding coming from a parameter
-
- if (fn && fn.scope.hasOwnBinding(name) && fn.scope.getOwnBinding(name).kind === "param") {
- declaration.scope.rename(name);
- }
-}
-
-var _default = () => ({
- name: "transform-safari-for-shadowing",
- visitor: {
- ForXStatement(path) {
- handle(path.get("left"));
- },
-
- ForStatement(path) {
- handle(path.get("init"));
- }
-
- }
-});
-
-exports.default = _default;
-module.exports = exports.default; \ No newline at end of file