* @param {ModuleToInfoMap} modulesMap modulesMap * @param {ModuleInfo} info info * @param {DependencyTemplates} dependencyTemplates dependencyTemplates * @param {RuntimeTemplate} runtimeTemplate runtimeTemplate * @param {ModuleGraph} moduleGraph moduleGraph * @param {ChunkGraph} chunkGraph
( modulesMap, info, dependencyTemplates, runtimeTemplate, moduleGraph, chunkGraph, runtime, runtimes, codeGenerationResults, usedNames )
| 2389 | * @param {UsedNames} usedNames used names |
| 2390 | */ |
| 2391 | _analyseModule( |
| 2392 | modulesMap, |
| 2393 | info, |
| 2394 | dependencyTemplates, |
| 2395 | runtimeTemplate, |
| 2396 | moduleGraph, |
| 2397 | chunkGraph, |
| 2398 | runtime, |
| 2399 | runtimes, |
| 2400 | codeGenerationResults, |
| 2401 | usedNames |
| 2402 | ) { |
| 2403 | if (info.type === class="st">"concatenated") { |
| 2404 | const m = info.module; |
| 2405 | try { |
| 2406 | class="cm">// Create a concatenation scope to track and capture information |
| 2407 | const concatenationScope = new ConcatenationScope( |
| 2408 | modulesMap, |
| 2409 | info, |
| 2410 | usedNames |
| 2411 | ); |
| 2412 | |
| 2413 | class="cm">// Not cached: Compilation memoizes the outer codeGeneration per |
| 2414 | class="cm">// (module, runtime), so inner generation never recomputes usefully. |
| 2415 | const codeGenResult = m.codeGeneration({ |
| 2416 | dependencyTemplates, |
| 2417 | runtimeTemplate, |
| 2418 | moduleGraph, |
| 2419 | chunkGraph, |
| 2420 | runtime, |
| 2421 | runtimes, |
| 2422 | concatenationScope, |
| 2423 | codeGenerationResults, |
| 2424 | sourceTypes: JAVASCRIPT_TYPES |
| 2425 | }); |
| 2426 | const source = |
| 2427 | /** @type {Source} */ |
| 2428 | (codeGenResult.sources.get(JAVASCRIPT_TYPE)); |
| 2429 | const data = codeGenResult.data; |
| 2430 | const chunkInitFragments = data && data.get(class="st">"chunkInitFragments"); |
| 2431 | const code = source.source().toString(); |
| 2432 | |
| 2433 | /** @type {Program} */ |
| 2434 | let ast; |
| 2435 | |
| 2436 | try { |
| 2437 | ({ ast } = JavascriptParser._parse( |
| 2438 | code, |
| 2439 | { |
| 2440 | sourceType: class="st">"module", |
| 2441 | ranges: true |
| 2442 | }, |
| 2443 | JavascriptParser._getModuleParseFunction(this.compilation, m) |
| 2444 | )); |
| 2445 | } catch (_err) { |
| 2446 | const err = |
| 2447 | /** @type {Error & { loc?: { line: number, column: number } }} */ |
| 2448 | (_err); |
no test coverage detected