summaryrefslogtreecommitdiff
path: root/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-10-14 15:31:11 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-10-14 15:31:11 +0800
commitaa773172311dcada759dfbaac485f4bc6e00bc21 (patch)
treeca6d9a5eff3ab8f689f9acb4f0df791d9486813d /node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js
parentc5a5384e846f242e901e859fe600d695d8990a9a (diff)
added babel
Diffstat (limited to 'node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js')
-rw-r--r--node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js b/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js
new file mode 100644
index 00000000..0b85a50f
--- /dev/null
+++ b/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js
@@ -0,0 +1,65 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.buildScopeIIFE = buildScopeIIFE;
+exports.collectShadowedParamsNames = collectShadowedParamsNames;
+exports.iifeVisitor = void 0;
+var _core = require("@babel/core");
+const iifeVisitor = {
+ "ReferencedIdentifier|BindingIdentifier"(path, state) {
+ const {
+ scope,
+ node
+ } = path;
+ const {
+ name
+ } = node;
+ if (name === "eval" || scope.getBinding(name) === state.scope.parent.getBinding(name) && state.scope.hasOwnBinding(name)) {
+ state.needsOuterBinding = true;
+ path.stop();
+ }
+ },
+ "TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration": path => path.skip()
+};
+exports.iifeVisitor = iifeVisitor;
+function collectShadowedParamsNames(param, functionScope, shadowedParams) {
+ for (const name of Object.keys(param.getBindingIdentifiers())) {
+ var _functionScope$bindin;
+ const constantViolations = (_functionScope$bindin = functionScope.bindings[name]) == null ? void 0 : _functionScope$bindin.constantViolations;
+ if (constantViolations) {
+ for (const redeclarator of constantViolations) {
+ const node = redeclarator.node;
+ switch (node.type) {
+ case "VariableDeclarator":
+ {
+ if (node.init === null) {
+ const declaration = redeclarator.parentPath;
+ if (!declaration.parentPath.isFor() || declaration.parentPath.get("body") === declaration) {
+ redeclarator.remove();
+ break;
+ }
+ }
+ shadowedParams.add(name);
+ break;
+ }
+ case "FunctionDeclaration":
+ shadowedParams.add(name);
+ break;
+ }
+ }
+ }
+ }
+}
+function buildScopeIIFE(shadowedParams, body) {
+ const args = [];
+ const params = [];
+ for (const name of shadowedParams) {
+ args.push(_core.types.identifier(name));
+ params.push(_core.types.identifier(name));
+ }
+ return _core.types.returnStatement(_core.types.callExpression(_core.types.arrowFunctionExpression(params, body), args));
+}
+
+//# sourceMappingURL=shadow-utils.js.map