From 9bce51f651aad297ef9eb6df832bfdaf1de05d84 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 14:27:54 +0800
Subject: [PATCH] 青岛推送

---
 node_modules/webpack/lib/optimize/InnerGraphPlugin.js |   70 +++++++++++++++++++---------------
 1 files changed, 39 insertions(+), 31 deletions(-)

diff --git a/node_modules/webpack/lib/optimize/InnerGraphPlugin.js b/node_modules/webpack/lib/optimize/InnerGraphPlugin.js
index 34f3232..1d7fe68 100644
--- a/node_modules/webpack/lib/optimize/InnerGraphPlugin.js
+++ b/node_modules/webpack/lib/optimize/InnerGraphPlugin.js
@@ -32,7 +32,7 @@
 
 class InnerGraphPlugin {
 	/**
-	 * Apply the plugin
+	 * Applies the plugin by registering its hooks on the compiler.
 	 * @param {Compiler} compiler the compiler instance
 	 * @returns {void}
 	 */
@@ -48,12 +48,14 @@
 				);
 
 				/**
+				 * Handles the hook callback for this code path.
 				 * @param {JavascriptParser} parser the parser
 				 * @param {JavascriptParserOptions} parserOptions options
 				 * @returns {void}
 				 */
 				const handler = (parser, parserOptions) => {
 					/**
+					 * Processes the provided sup.
 					 * @param {Expression} sup sup
 					 */
 					const onUsageSuper = (sup) => {
@@ -78,6 +80,12 @@
 
 					parser.hooks.program.tap(PLUGIN_NAME, () => {
 						InnerGraph.enable(parser.state);
+
+						statementWithTopLevelSymbol = new WeakMap();
+						statementPurePart = new WeakMap();
+						classWithTopLevelSymbol = new WeakMap();
+						declWithTopLevelSymbol = new WeakMap();
+						pureDeclarators = new WeakSet();
 					});
 
 					parser.hooks.finish.tap(PLUGIN_NAME, () => {
@@ -98,17 +106,17 @@
 					// 3. variable declarators (const x = ...)
 
 					/** @type {WeakMap<Node | MaybeNamedFunctionDeclaration | MaybeNamedClassDeclaration, TopLevelSymbol>} */
-					const statementWithTopLevelSymbol = new WeakMap();
+					let statementWithTopLevelSymbol = new WeakMap();
 					/** @type {WeakMap<Node | MaybeNamedFunctionDeclaration | MaybeNamedClassDeclaration, Node>} */
-					const statementPurePart = new WeakMap();
+					let statementPurePart = new WeakMap();
 
 					/** @type {WeakMap<ClassExpression | ClassDeclaration | MaybeNamedClassDeclaration, TopLevelSymbol>} */
-					const classWithTopLevelSymbol = new WeakMap();
+					let classWithTopLevelSymbol = new WeakMap();
 
 					/** @type {WeakMap<VariableDeclarator, TopLevelSymbol>} */
-					const declWithTopLevelSymbol = new WeakMap();
+					let declWithTopLevelSymbol = new WeakMap();
 					/** @type {WeakSet<VariableDeclarator>} */
-					const pureDeclarators = new WeakSet();
+					let pureDeclarators = new WeakSet();
 
 					// The following hooks are used during prewalking:
 
@@ -120,10 +128,10 @@
 							statement.type === "FunctionDeclaration"
 						) {
 							const name = statement.id ? statement.id.name : "*default*";
-							const fn =
+							const symbol =
 								/** @type {TopLevelSymbol} */
 								(InnerGraph.tagTopLevelSymbol(parser, name));
-							statementWithTopLevelSymbol.set(statement, fn);
+							statementWithTopLevelSymbol.set(statement, symbol);
 							return true;
 						}
 					});
@@ -140,15 +148,15 @@
 								)
 							) {
 								const name = statement.id ? statement.id.name : "*default*";
-								const fn = /** @type {TopLevelSymbol} */ (
+								const symbol = /** @type {TopLevelSymbol} */ (
 									InnerGraph.tagTopLevelSymbol(parser, name)
 								);
-								classWithTopLevelSymbol.set(statement, fn);
+								classWithTopLevelSymbol.set(statement, symbol);
 								return true;
 							}
 							if (statement.type === "ExportDefaultDeclaration") {
 								const name = "*default*";
-								const fn =
+								const symbol =
 									/** @type {TopLevelSymbol} */
 									(InnerGraph.tagTopLevelSymbol(parser, name));
 								const decl = statement.declaration;
@@ -165,7 +173,7 @@
 									classWithTopLevelSymbol.set(
 										/** @type {ClassExpression | ClassDeclaration} */
 										(decl),
-										fn
+										symbol
 									);
 								} else if (
 									parser.isPure(
@@ -175,7 +183,7 @@
 										(statement.range)[0]
 									)
 								) {
-									statementWithTopLevelSymbol.set(statement, fn);
+									statementWithTopLevelSymbol.set(statement, symbol);
 									if (
 										!decl.type.endsWith("FunctionExpression") &&
 										!decl.type.endsWith("Declaration") &&
@@ -207,20 +215,20 @@
 									/** @type {Range} */ (decl.id.range)[1]
 								)
 							) {
-								const fn =
+								const symbol =
 									/** @type {TopLevelSymbol} */
 									(InnerGraph.tagTopLevelSymbol(parser, name));
-								classWithTopLevelSymbol.set(decl.init, fn);
+								classWithTopLevelSymbol.set(decl.init, symbol);
 							} else if (
 								parser.isPure(
 									decl.init,
 									/** @type {Range} */ (decl.id.range)[1]
 								)
 							) {
-								const fn =
+								const symbol =
 									/** @type {TopLevelSymbol} */
 									(InnerGraph.tagTopLevelSymbol(parser, name));
-								declWithTopLevelSymbol.set(decl, fn);
+								declWithTopLevelSymbol.set(decl, symbol);
 								if (
 									!decl.init.type.endsWith("FunctionExpression") &&
 									decl.init.type !== "Literal"
@@ -252,9 +260,9 @@
 						if (parser.scope.topLevelScope === true) {
 							InnerGraph.setTopLevelSymbol(parser.state, undefined);
 
-							const fn = statementWithTopLevelSymbol.get(statement);
-							if (fn) {
-								InnerGraph.setTopLevelSymbol(parser.state, fn);
+							const symbol = statementWithTopLevelSymbol.get(statement);
+							if (symbol) {
+								InnerGraph.setTopLevelSymbol(parser.state, symbol);
 								const purePart = statementPurePart.get(statement);
 								if (purePart) {
 									InnerGraph.onUsage(parser.state, (usedByExports) => {
@@ -285,9 +293,9 @@
 						(expr, statement) => {
 							if (!InnerGraph.isEnabled(parser.state)) return;
 							if (parser.scope.topLevelScope === true) {
-								const fn = classWithTopLevelSymbol.get(statement);
+								const symbol = classWithTopLevelSymbol.get(statement);
 								if (
-									fn &&
+									symbol &&
 									parser.isPure(
 										expr,
 										statement.id
@@ -295,7 +303,7 @@
 											: /** @type {Range} */ (statement.range)[0]
 									)
 								) {
-									InnerGraph.setTopLevelSymbol(parser.state, fn);
+									InnerGraph.setTopLevelSymbol(parser.state, symbol);
 									onUsageSuper(expr);
 								}
 							}
@@ -307,8 +315,8 @@
 						(element, classDefinition) => {
 							if (!InnerGraph.isEnabled(parser.state)) return;
 							if (parser.scope.topLevelScope === true) {
-								const fn = classWithTopLevelSymbol.get(classDefinition);
-								if (fn) {
+								const symbol = classWithTopLevelSymbol.get(classDefinition);
+								if (symbol) {
 									InnerGraph.setTopLevelSymbol(parser.state, undefined);
 								}
 							}
@@ -320,8 +328,8 @@
 						(expression, element, classDefinition) => {
 							if (!InnerGraph.isEnabled(parser.state)) return;
 							if (parser.scope.topLevelScope === true) {
-								const fn = classWithTopLevelSymbol.get(classDefinition);
-								if (fn) {
+								const symbol = classWithTopLevelSymbol.get(classDefinition);
+								if (symbol) {
 									if (
 										!element.static ||
 										parser.isPure(
@@ -331,7 +339,7 @@
 												: /** @type {Range} */ (element.range)[0]
 										)
 									) {
-										InnerGraph.setTopLevelSymbol(parser.state, fn);
+										InnerGraph.setTopLevelSymbol(parser.state, symbol);
 										if (element.type !== "MethodDefinition" && element.static) {
 											InnerGraph.onUsage(parser.state, (usedByExports) => {
 												switch (usedByExports) {
@@ -362,10 +370,10 @@
 
 					parser.hooks.declarator.tap(PLUGIN_NAME, (decl, _statement) => {
 						if (!InnerGraph.isEnabled(parser.state)) return;
-						const fn = declWithTopLevelSymbol.get(decl);
+						const symbol = declWithTopLevelSymbol.get(decl);
 
-						if (fn) {
-							InnerGraph.setTopLevelSymbol(parser.state, fn);
+						if (symbol) {
+							InnerGraph.setTopLevelSymbol(parser.state, symbol);
 							if (pureDeclarators.has(decl)) {
 								if (
 									/** @type {ClassExpression} */

--
Gitblit v1.9.3