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/javascript/JavascriptModulesPlugin.js | 257 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 206 insertions(+), 51 deletions(-)
diff --git a/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js b/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js
index ac860f4..d734fbf 100644
--- a/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js
+++ b/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js
@@ -20,6 +20,7 @@
const { tryRunOrWebpackError } = require("../HookWebpackError");
const HotUpdateChunk = require("../HotUpdateChunk");
const InitFragment = require("../InitFragment");
+const { JAVASCRIPT_TYPE } = require("../ModuleSourceTypeConstants");
const {
JAVASCRIPT_MODULE_TYPE_AUTO,
JAVASCRIPT_MODULE_TYPE_DYNAMIC,
@@ -31,7 +32,7 @@
const Template = require("../Template");
const { last, someInIterable } = require("../util/IterableHelpers");
const StringXor = require("../util/StringXor");
-const { compareModulesByIdOrIdentifier } = require("../util/comparators");
+const { compareModulesByFullName } = require("../util/comparators");
const {
RESERVED_NAMES,
addScopeSymbols,
@@ -55,55 +56,102 @@
/** @typedef {import("../config/defaults").OutputNormalizedWithDefaults} OutputOptions */
/** @typedef {import("../Chunk")} Chunk */
/** @typedef {import("../ChunkGraph")} ChunkGraph */
+/** @typedef {import("../ChunkGraph").EntryModuleWithChunkGroup} EntryModuleWithChunkGroup */
/** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */
/** @typedef {import("../Compilation").ChunkHashContext} ChunkHashContext */
/** @typedef {import("../Compilation").ExecuteModuleObject} ExecuteModuleObject */
+/** @typedef {import("../Compilation").WebpackRequire} WebpackRequire */
/** @typedef {import("../Compiler")} Compiler */
/** @typedef {import("../DependencyTemplates")} DependencyTemplates */
/** @typedef {import("../Entrypoint")} Entrypoint */
/** @typedef {import("../Module")} Module */
/** @typedef {import("../Module").BuildInfo} BuildInfo */
+/** @typedef {import("../Module").CodeGenerationResultData} CodeGenerationResultData */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */
/** @typedef {import("../WebpackError")} WebpackError */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../util/Hash")} Hash */
+/** @typedef {import("../util/concatenate").ScopeSet} ScopeSet */
+/** @typedef {import("../util/concatenate").UsedNamesInScopeInfo} UsedNamesInScopeInfo */
+
+/** @type {WeakMap<ChunkGraph, WeakMap<Chunk, boolean>>} */
+const chunkHasJsCache = new WeakMap();
/**
+ * Returns true, when a JS file is needed for this chunk.
+ * @param {Chunk} chunk a chunk
+ * @param {ChunkGraph} chunkGraph the chunk graph
+ * @returns {boolean} true, when a JS file is needed for this chunk
+ */
+const _chunkHasJs = (chunk, chunkGraph) => {
+ if (chunkGraph.getNumberOfEntryModules(chunk) > 0) {
+ for (const module of chunkGraph.getChunkEntryModulesIterable(chunk)) {
+ if (chunkGraph.getModuleSourceTypes(module).has(JAVASCRIPT_TYPE)) {
+ return true;
+ }
+ }
+ }
+
+ return Boolean(
+ chunkGraph.getChunkModulesIterableBySourceType(chunk, JAVASCRIPT_TYPE)
+ );
+};
+
+/**
+ * Returns true, when a JS file is needed for this chunk.
* @param {Chunk} chunk a chunk
* @param {ChunkGraph} chunkGraph the chunk graph
* @returns {boolean} true, when a JS file is needed for this chunk
*/
const chunkHasJs = (chunk, chunkGraph) => {
- if (chunkGraph.getNumberOfEntryModules(chunk) > 0) return true;
+ let innerCache = chunkHasJsCache.get(chunkGraph);
+ if (innerCache === undefined) {
+ innerCache = new WeakMap();
+ chunkHasJsCache.set(chunkGraph, innerCache);
+ }
- return Boolean(
- chunkGraph.getChunkModulesIterableBySourceType(chunk, "javascript")
- );
+ const cachedResult = innerCache.get(chunk);
+ if (cachedResult !== undefined) {
+ return cachedResult;
+ }
+
+ const result = _chunkHasJs(chunk, chunkGraph);
+ innerCache.set(chunk, result);
+ return result;
};
/**
+ * Chunk has runtime or js.
* @param {Chunk} chunk a chunk
* @param {ChunkGraph} chunkGraph the chunk graph
* @returns {boolean} true, when a JS file is needed for this chunk
*/
const chunkHasRuntimeOrJs = (chunk, chunkGraph) => {
+ if (chunkHasJs(chunk, chunkGraph)) {
+ return true;
+ }
+
if (
chunkGraph.getChunkModulesIterableBySourceType(
chunk,
WEBPACK_MODULE_TYPE_RUNTIME
)
) {
- return true;
+ for (const chunkGroup of chunk.groupsIterable) {
+ for (const c of chunkGroup.chunks) {
+ if (chunkHasJs(c, chunkGraph)) return true;
+ }
+ }
+ return false;
}
- return Boolean(
- chunkGraph.getChunkModulesIterableBySourceType(chunk, "javascript")
- );
+ return false;
};
/**
+ * Print generated code for stack.
* @param {Module} module a module
* @param {string} code the code
* @returns {string} generated code for the stack
@@ -114,6 +162,7 @@
return `\n\nGenerated code for ${module.identifier()}\n${lines
.map(
/**
+ * Handles the callback logic for this hook.
* @param {string} line the line
* @param {number} i the index
* @param {string[]} _lines the lines
@@ -128,6 +177,7 @@
};
/**
+ * Defines the render context type used by this module.
* @typedef {object} RenderContext
* @property {Chunk} chunk the chunk
* @property {DependencyTemplates} dependencyTemplates the dependency templates
@@ -139,6 +189,7 @@
*/
/**
+ * Defines the main render context type used by this module.
* @typedef {object} MainRenderContext
* @property {Chunk} chunk the chunk
* @property {DependencyTemplates} dependencyTemplates the dependency templates
@@ -151,6 +202,7 @@
*/
/**
+ * Defines the chunk render context type used by this module.
* @typedef {object} ChunkRenderContext
* @property {Chunk} chunk the chunk
* @property {DependencyTemplates} dependencyTemplates the dependency templates
@@ -163,6 +215,7 @@
*/
/**
+ * Defines the render bootstrap context type used by this module.
* @typedef {object} RenderBootstrapContext
* @property {Chunk} chunk the chunk
* @property {CodeGenerationResults} codeGenerationResults results of code generation
@@ -173,6 +226,7 @@
*/
/**
+ * Defines the startup render context type used by this module.
* @typedef {object} StartupRenderContext
* @property {Chunk} chunk the chunk
* @property {DependencyTemplates} dependencyTemplates the dependency templates
@@ -181,11 +235,13 @@
* @property {ChunkGraph} chunkGraph the chunk graph
* @property {CodeGenerationResults} codeGenerationResults results of code generation
* @property {boolean | undefined} strictMode rendering in strict context
- * @property {boolean } inlined inlined
+ * @property {boolean=} inlined inlined
* @property {boolean=} inlinedInIIFE the inlined entry module is wrapped in an IIFE
+ * @property {boolean=} needExportsDeclaration whether the top-level exports declaration needs to be generated
*/
/**
+ * Defines the module render context type used by this module.
* @typedef {object} ModuleRenderContext
* @property {Chunk} chunk the chunk
* @property {DependencyTemplates} dependencyTemplates the dependency templates
@@ -197,9 +253,11 @@
* @property {boolean | undefined} strictMode rendering in strict context
* @property {boolean} factory true: renders as factory method, false: pure module content
* @property {boolean=} inlinedInIIFE the inlined entry module is wrapped in an IIFE, existing only when `factory` is set to false
+ * @property {boolean=} renderInObject render module in object container
*/
/**
+ * Defines the compilation hooks type used by this module.
* @typedef {object} CompilationHooks
* @property {SyncWaterfallHook<[Source, Module, ModuleRenderContext]>} renderModuleContent
* @property {SyncWaterfallHook<[Source, Module, ModuleRenderContext]>} renderModuleContainer
@@ -226,6 +284,7 @@
class JavascriptModulesPlugin {
/**
+ * Returns the attached hooks.
* @param {Compilation} compilation the compilation
* @returns {CompilationHooks} the attached hooks
*/
@@ -276,12 +335,12 @@
constructor(options = {}) {
this.options = options;
- /** @type {WeakMap<Source, { source: Source, needModule:boolean, needExports: boolean, needRequire: boolean, needThisAsExports: boolean, needStrict: boolean | undefined }>} */
+ /** @type {WeakMap<Source, { source: Source, needModule: boolean, needExports: boolean, needRequire: boolean, needThisAsExports: boolean, needStrict: boolean | undefined, renderShorthand: boolean }>} */
this._moduleFactoryCache = new WeakMap();
}
/**
- * Apply the plugin
+ * Applies the plugin by registering its hooks on the compiler.
* @param {Compiler} compiler the compiler instance
* @returns {void}
*/
@@ -352,6 +411,7 @@
outputOptions
);
+ /** @type {() => Source} */
let render;
if (hotUpdateChunk) {
@@ -487,7 +547,7 @@
});
const modules = chunkGraph.getChunkModulesIterableBySourceType(
chunk,
- "javascript"
+ JAVASCRIPT_TYPE
);
if (modules) {
const xor = new StringXor();
@@ -527,11 +587,13 @@
}
);
compilation.hooks.executeModule.tap(PLUGIN_NAME, (options, context) => {
- const source = options.codeGenerationResult.sources.get("javascript");
+ const source =
+ options.codeGenerationResult.sources.get(JAVASCRIPT_TYPE);
if (source === undefined) return;
const { module } = options;
const code = source.source();
+ /** @type {(this: ExecuteModuleObject["exports"], exports: ExecuteModuleObject["exports"], moduleObject: ExecuteModuleObject, webpackRequire: WebpackRequire) => void} */
const fn = vm.runInThisContext(
`(function(${module.moduleArgument}, ${module.exportsArgument}, ${RuntimeGlobals.require}) {\n${code}\n/**/})`,
{
@@ -549,7 +611,8 @@
moduleObject.exports,
moduleObject,
moduleObject.exports,
- context.__webpack_require__
+ /** @type {WebpackRequire} */
+ (context.__webpack_require__)
);
} catch (err) {
/** @type {Error} */
@@ -566,6 +629,7 @@
let code = source.source();
if (typeof code !== "string") code = code.toString();
+ /** @type {(this: null, webpackRequire: WebpackRequire) => void} */
const fn = vm.runInThisContext(
`(function(${RuntimeGlobals.require}) {\n${code}\n/**/})`,
{
@@ -575,7 +639,11 @@
);
try {
// eslint-disable-next-line no-useless-call
- fn.call(null, context.__webpack_require__);
+ fn.call(
+ null,
+ /** @type {WebpackRequire} */
+ (context.__webpack_require__)
+ );
} catch (err) {
/** @type {Error} */
(err).stack += printGeneratedCodeForStack(options.module, code);
@@ -587,6 +655,7 @@
}
/**
+ * Gets chunk filename template.
* @param {Chunk} chunk chunk
* @param {OutputOptions} outputOptions output options
* @returns {TemplatePath} used filename template
@@ -603,6 +672,7 @@
}
/**
+ * Renders the newly generated source from rendering.
* @param {Module} module the rendered module
* @param {ModuleRenderContext} renderContext options object
* @param {CompilationHooks} hooks hooks
@@ -615,11 +685,12 @@
runtimeTemplate,
codeGenerationResults,
strictMode,
- factory
+ factory,
+ renderInObject
} = renderContext;
try {
const codeGenResult = codeGenerationResults.get(module, chunk.runtime);
- const moduleSource = codeGenResult.sources.get("javascript");
+ const moduleSource = codeGenResult.sources.get(JAVASCRIPT_TYPE);
if (!moduleSource) return null;
if (codeGenResult.data !== undefined) {
const chunkInitFragments = codeGenResult.data.get("chunkInitFragments");
@@ -634,6 +705,7 @@
hooks.renderModuleContent.call(moduleSource, module, renderContext),
"JavascriptModulesPlugin.getCompilationHooks().renderModuleContent"
);
+ /** @type {Source} */
let moduleSourcePostContainer;
if (factory) {
const runtimeRequirements = chunkGraph.getModuleRuntimeRequirements(
@@ -654,6 +726,9 @@
const cacheEntry = this._moduleFactoryCache.get(
moduleSourcePostContent
);
+ const renderShorthand =
+ renderInObject === true && runtimeTemplate.supportsMethodShorthand();
+ /** @type {Source} */
let source;
if (
cacheEntry &&
@@ -661,11 +736,13 @@
cacheEntry.needExports === needExports &&
cacheEntry.needRequire === needRequire &&
cacheEntry.needThisAsExports === needThisAsExports &&
- cacheEntry.needStrict === needStrict
+ cacheEntry.needStrict === needStrict &&
+ cacheEntry.renderShorthand === renderShorthand
) {
source = cacheEntry.source;
} else {
const factorySource = new ConcatSource();
+ /** @type {string[]} */
const args = [];
if (needExports || needRequire || needModule) {
args.push(
@@ -682,16 +759,24 @@
);
}
if (needRequire) args.push(RuntimeGlobals.require);
- if (!needThisAsExports && runtimeTemplate.supportsArrowFunction()) {
+
+ if (renderShorthand) {
+ // we can optimize function to methodShorthand if render module factory in object
+ factorySource.add(`(${args.join(", ")}) {\n\n`);
+ } else if (
+ !needThisAsExports &&
+ runtimeTemplate.supportsArrowFunction()
+ ) {
factorySource.add(`/***/ ((${args.join(", ")}) => {\n\n`);
} else {
factorySource.add(`/***/ (function(${args.join(", ")}) {\n\n`);
}
+
if (needStrict) {
factorySource.add('"use strict";\n');
}
factorySource.add(moduleSourcePostContent);
- factorySource.add("\n\n/***/ })");
+ factorySource.add(`\n\n/***/ }${renderShorthand ? "" : ")"}`);
source = new CachedSource(factorySource);
this._moduleFactoryCache.set(moduleSourcePostContent, {
source,
@@ -699,7 +784,8 @@
needExports,
needRequire,
needThisAsExports,
- needStrict
+ needStrict,
+ renderShorthand
});
}
moduleSourcePostContainer = tryRunOrWebpackError(
@@ -726,18 +812,20 @@
}
/**
+ * Renders the rendered source.
* @param {RenderContext} renderContext the render context
* @param {CompilationHooks} hooks hooks
* @returns {Source} the rendered source
*/
renderChunk(renderContext, hooks) {
- const { chunk, chunkGraph } = renderContext;
+ const { chunk, chunkGraph, runtimeTemplate } = renderContext;
const modules = chunkGraph.getOrderedChunkModulesIterableBySourceType(
chunk,
- "javascript",
- compareModulesByIdOrIdentifier(chunkGraph)
+ JAVASCRIPT_TYPE,
+ compareModulesByFullName(runtimeTemplate.compilation.compiler)
);
const allModules = modules ? [...modules] : [];
+ /** @type {undefined | string} */
let strictHeader;
let allStrict = renderContext.strictMode;
if (
@@ -757,12 +845,15 @@
strictMode: allStrict
};
const moduleSources =
- Template.renderChunkModules(chunkRenderContext, allModules, (module) =>
- this.renderModule(
- module,
- { ...chunkRenderContext, factory: true },
- hooks
- )
+ Template.renderChunkModules(
+ chunkRenderContext,
+ allModules,
+ (module, renderInObject) =>
+ this.renderModule(
+ module,
+ { ...chunkRenderContext, factory: true, renderInObject },
+ hooks
+ )
) || new RawSource("{}");
let source = tryRunOrWebpackError(
() => hooks.renderChunk.call(moduleSources, chunkRenderContext),
@@ -800,6 +891,7 @@
}
/**
+ * Renders the newly generated source from rendering.
* @param {MainRenderContext} renderContext options object
* @param {CompilationHooks} hooks hooks
* @param {Compilation} compilation the compilation
@@ -818,8 +910,8 @@
const allModules = [
...(chunkGraph.getOrderedChunkModulesIterableBySourceType(
chunk,
- "javascript",
- compareModulesByIdOrIdentifier(chunkGraph)
+ JAVASCRIPT_TYPE,
+ compareModulesByFullName(runtimeTemplate.compilation.compiler)
) || [])
];
@@ -831,6 +923,7 @@
}
const source = new ConcatSource();
+ /** @type {string} */
let prefix;
if (iife) {
if (runtimeTemplate.supportsArrowFunction()) {
@@ -874,10 +967,10 @@
(m) => !(/** @type {Set<Module>} */ (inlinedModules).has(m))
)
: allModules,
- (module) =>
+ (module, renderInObject) =>
this.renderModule(
module,
- { ...chunkRenderContext, factory: true },
+ { ...chunkRenderContext, factory: true, renderInObject },
hooks
),
prefix
@@ -944,10 +1037,6 @@
const lastInlinedModule = /** @type {Module} */ (last(inlinedModules));
const startupSource = new ConcatSource();
- if (runtimeRequirements.has(RuntimeGlobals.exports)) {
- startupSource.add(`var ${RuntimeGlobals.exports} = {};\n`);
- }
-
const avoidEntryIife = compilation.options.optimization.avoidEntryIife;
/** @type {Map<Module, Source> | false} */
let renamedInlinedModule = false;
@@ -1007,6 +1096,7 @@
);
if (renderedModule) {
+ /** @type {string} */
let footer;
if (iife !== undefined) {
startupSource.add(
@@ -1042,13 +1132,41 @@
`${RuntimeGlobals.exports} = ${RuntimeGlobals.onChunksLoaded}(${RuntimeGlobals.exports});\n`
);
}
- source.add(
- hooks.renderStartup.call(startupSource, lastInlinedModule, {
- ...renderContext,
- inlined: true,
- inlinedInIIFE
- })
+ /** @type {StartupRenderContext} */
+ const startupRenderContext = {
+ ...renderContext,
+ inlined: true,
+ inlinedInIIFE,
+ needExportsDeclaration: runtimeRequirements.has(RuntimeGlobals.exports)
+ };
+ let renderedStartup = hooks.renderStartup.call(
+ startupSource,
+ lastInlinedModule,
+ startupRenderContext
);
+ const lastInlinedModuleRequirements =
+ chunkGraph.getModuleRuntimeRequirements(
+ lastInlinedModule,
+ chunk.runtime
+ );
+ if (
+ // `onChunksLoaded` reads and reassigns `__webpack_exports__`
+ runtimeRequirements.has(RuntimeGlobals.onChunksLoaded) ||
+ // Top-level `__webpack_exports__` will be returned
+ runtimeRequirements.has(RuntimeGlobals.returnExportsFromRuntime) ||
+ // Custom exports argument aliases from `__webpack_exports__`
+ (lastInlinedModuleRequirements.has(RuntimeGlobals.exports) &&
+ lastInlinedModule.exportsArgument !== RuntimeGlobals.exports)
+ ) {
+ startupRenderContext.needExportsDeclaration = true;
+ }
+ if (startupRenderContext.needExportsDeclaration) {
+ renderedStartup = new ConcatSource(
+ `var ${RuntimeGlobals.exports} = {};\n`,
+ renderedStartup
+ );
+ }
+ source.add(renderedStartup);
if (bootstrap.afterStartup.length > 0) {
const afterStartup = `${Template.asString(bootstrap.afterStartup)}\n`;
source.add(
@@ -1080,7 +1198,8 @@
lastEntryModule,
{
...renderContext,
- inlined: false
+ inlined: false,
+ needExportsDeclaration: true
}
),
toSource(bootstrap.afterStartup, "webpack/after-startup"),
@@ -1138,6 +1257,7 @@
}
/**
+ * Updates hash with bootstrap.
* @param {Hash} hash the hash to be updated
* @param {RenderBootstrapContext} renderContext options object
* @param {CompilationHooks} hooks hooks
@@ -1158,6 +1278,7 @@
}
/**
+ * Renders the generated source of the bootstrap code.
* @param {RenderBootstrapContext} renderContext options object
* @param {CompilationHooks} hooks hooks
* @returns {Bootstrap} the generated source of the bootstrap code
@@ -1190,7 +1311,7 @@
requireFunction || interceptModuleExecution || moduleUsed;
/**
- * @type {{startup: string[], beforeStartup: string[], header: string[], afterStartup: string[], allowInlineStartup: boolean}}
+ * @type {{ startup: string[], beforeStartup: string[], header: string[], afterStartup: string[], allowInlineStartup: boolean }}
*/
const result = {
header: [],
@@ -1275,15 +1396,22 @@
const runtimeRequirements =
chunkGraph.getTreeRuntimeRequirements(chunk);
buf2.push("// Load entry module and return exports");
- let i = chunkGraph.getNumberOfEntryModules(chunk);
+
+ /** @type {EntryModuleWithChunkGroup[]} */
+ const jsEntries = [];
for (const [
entryModule,
entrypoint
] of chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)) {
- if (!chunkGraph.getModuleSourceTypes(entryModule).has("javascript")) {
- i--;
+ if (
+ chunkGraph.getModuleSourceTypes(entryModule).has(JAVASCRIPT_TYPE)
+ ) {
+ jsEntries.push([entryModule, entrypoint]);
continue;
}
+ }
+ let i = jsEntries.length;
+ for (const [entryModule, entrypoint] of jsEntries) {
const chunks =
/** @type {Entrypoint} */
(entrypoint).chunks.filter((c) => c !== chunk);
@@ -1313,6 +1441,7 @@
result.allowInlineStartup = false;
}
+ /** @type {undefined | CodeGenerationResultData} */
let data;
if (codeGenerationResults.has(entryModule, chunk.runtime)) {
const result = codeGenerationResults.get(
@@ -1495,6 +1624,7 @@
}
/**
+ * Renders the generated source of the require function.
* @param {RenderBootstrapContext} renderContext options object
* @param {CompilationHooks} hooks hooks
* @returns {string} the generated source of the require function
@@ -1506,20 +1636,43 @@
runtimeTemplate: { outputOptions }
} = renderContext;
const runtimeRequirements = chunkGraph.getTreeRuntimeRequirements(chunk);
+
+ /**
+ * Renders missing module error.
+ * @param {string} condition guard expression
+ * @returns {string[]} source
+ */
+ const renderMissingModuleError = (condition) =>
+ outputOptions.pathinfo
+ ? [
+ `if (${condition}) {`,
+ Template.indent([
+ "delete __webpack_module_cache__[moduleId];",
+ 'var e = new Error("Cannot find module \'" + moduleId + "\'");',
+ "e.code = 'MODULE_NOT_FOUND';",
+ "throw e;"
+ ]),
+ "}"
+ ]
+ : [];
+
const moduleExecution = runtimeRequirements.has(
RuntimeGlobals.interceptModuleExecution
)
? Template.asString([
`var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: ${RuntimeGlobals.require} };`,
`${RuntimeGlobals.interceptModuleExecution}.forEach(function(handler) { handler(execOptions); });`,
+ ...renderMissingModuleError("!execOptions.factory"),
"module = execOptions.module;",
"execOptions.factory.call(module.exports, module, module.exports, execOptions.require);"
])
: runtimeRequirements.has(RuntimeGlobals.thisAsExports)
? Template.asString([
+ ...renderMissingModuleError("!(moduleId in __webpack_modules__)"),
`__webpack_modules__[moduleId].call(module.exports, module, module.exports, ${RuntimeGlobals.require});`
])
: Template.asString([
+ ...renderMissingModuleError("!(moduleId in __webpack_modules__)"),
`__webpack_modules__[moduleId](module, module.exports, ${RuntimeGlobals.require});`
]);
const needModuleId = runtimeRequirements.has(RuntimeGlobals.moduleId);
@@ -1610,6 +1763,7 @@
}
/**
+ * Get renamed inline module.
* @param {Compilation} compilation compilation
* @param {Module[]} allModules allModules
* @param {MainRenderContext} renderContext renderContext
@@ -1652,7 +1806,6 @@
const inlinedModulesToInfo = new Map();
/** @type {Set<string>} */
const nonInlinedModuleThroughIdentifiers = new Set();
- /** @type {Map<Module, Source>} */
for (const m of allModules) {
const isInlinedModule = inlinedModules && inlinedModules.has(m);
@@ -1733,7 +1886,9 @@
}
for (const variable of info.variables) {
+ /** @type {UsedNamesInScopeInfo} */
const usedNamesInScopeInfo = new Map();
+ /** @type {ScopeSet} */
const ignoredScopes = new Set();
const name = variable.name;
--
Gitblit v1.9.3