summaryrefslogtreecommitdiff
path: root/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:10:59 +0800
committerlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:41:44 +0800
commitfc87c009806dcc98867f6b58efe29b042aa01dee (patch)
tree8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js
parent3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff)
node: updatemain
Diffstat (limited to 'node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js')
-rw-r--r--node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js101
1 files changed, 0 insertions, 101 deletions
diff --git a/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js b/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js
deleted file mode 100644
index 0d53bf6f..00000000
--- a/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js
+++ /dev/null
@@ -1,101 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.annexB33FunctionsVisitor = void 0;
-exports.isVarScope = isVarScope;
-var _core = require("@babel/core");
-const annexB33FunctionsVisitor = exports.annexB33FunctionsVisitor = Object.assign({
- VariableDeclaration(path) {
- if (isStrict(path)) return;
- if (path.node.kind !== "var") return;
- const varScope = path.scope.getFunctionParent() || path.scope.getProgramParent();
- varScope.path.traverse(functionsToVarVisitor, {
- names: Object.keys(path.getBindingIdentifiers())
- });
- }
-}, {
- BlockStatement(path) {
- if (isStrict(path)) return;
- if (_core.types.isFunction(path.parent, {
- body: path.node
- })) return;
- transformStatementList(path.get("body"));
- },
- SwitchCase(path) {
- if (isStrict(path)) return;
- transformStatementList(path.get("consequent"));
- }
-});
-function transformStatementList(paths) {
- outer: for (const path of paths) {
- if (!path.isFunctionDeclaration()) continue;
- if (path.node.async || path.node.generator) return;
- const {
- scope
- } = path.parentPath;
- if (isVarScope(scope)) return;
- const {
- name
- } = path.node.id;
- let currScope = scope;
- do {
- if (currScope.parent.hasOwnBinding(name)) continue outer;
- currScope = currScope.parent;
- } while (!isVarScope(currScope));
- maybeTransformBlockScopedFunction(path);
- }
-}
-function maybeTransformBlockScopedFunction(path) {
- const {
- node,
- parentPath: {
- scope
- }
- } = path;
- const {
- id
- } = node;
- scope.removeOwnBinding(id.name);
- node.id = null;
- const varNode = _core.types.variableDeclaration("var", [_core.types.variableDeclarator(id, _core.types.toExpression(node))]);
- varNode._blockHoist = 2;
- const [varPath] = path.replaceWith(varNode);
- scope.registerDeclaration(varPath);
-}
-const functionsToVarVisitor = {
- Scope(path, {
- names
- }) {
- for (const name of names) {
- const binding = path.scope.getOwnBinding(name);
- if (binding && binding.kind === "hoisted") {
- maybeTransformBlockScopedFunction(binding.path);
- }
- }
- },
- "Expression|Declaration"(path) {
- path.skip();
- }
-};
-function isVarScope(scope) {
- return scope.path.isFunctionParent() || scope.path.isProgram();
-}
-function isStrict(path) {
- return !!path.find(({
- node
- }) => {
- var _node$directives;
- if (_core.types.isProgram(node)) {
- if (node.sourceType === "module") return true;
- } else if (_core.types.isClass(node)) {
- return true;
- } else if (!_core.types.isBlockStatement(node)) {
- return false;
- }
- return (_node$directives = node.directives) == null ? void 0 : _node$directives.some(directive => directive.value.value === "use strict");
- });
-}
-
-//# sourceMappingURL=annex-B_3_3.js.map