diff options
Diffstat (limited to 'node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js')
| -rw-r--r-- | node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js b/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js new file mode 100644 index 00000000..1766a47c --- /dev/null +++ b/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js @@ -0,0 +1,47 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var helperPluginUtils = require('@babel/helper-plugin-utils'); + +function shouldTransform(path) { + const { + node + } = path; + const functionId = node.id; + if (!functionId) return false; + const name = functionId.name; + const paramNameBinding = path.scope.getOwnBinding(name); + if (paramNameBinding === undefined) { + return false; + } + if (paramNameBinding.kind !== "param") { + return false; + } + if (paramNameBinding.identifier === paramNameBinding.path.node) { + return false; + } + return name; +} + +var index = helperPluginUtils.declare(api => { + api.assertVersion("^7.16.0"); + return { + name: "plugin-bugfix-safari-id-destructuring-collision-in-function-expression", + visitor: { + FunctionExpression(path) { + const name = shouldTransform(path); + if (name) { + const { + scope + } = path; + const newParamName = scope.generateUid(name); + scope.rename(name, newParamName); + } + } + } + }; +}); + +exports.default = index; +//# sourceMappingURL=index.js.map |
