@@ -9,6 +9,7 @@ const Template = require("../Template");
9
9
const Parser = require ( "../Parser" ) ;
10
10
const eslintScope = require ( "eslint-scope" ) ;
11
11
const { ConcatSource, ReplaceSource } = require ( "webpack-sources" ) ;
12
+ const DependencyReference = require ( "../dependencies/DependencyReference" ) ;
12
13
const HarmonyImportDependency = require ( "../dependencies/HarmonyImportDependency" ) ;
13
14
const HarmonyImportSideEffectDependency = require ( "../dependencies/HarmonyImportSideEffectDependency" ) ;
14
15
const HarmonyImportSpecifierDependency = require ( "../dependencies/HarmonyImportSpecifierDependency" ) ;
@@ -18,6 +19,8 @@ const HarmonyExportImportedSpecifierDependency = require("../dependencies/Harmon
18
19
const HarmonyCompatibilityDependency = require ( "../dependencies/HarmonyCompatibilityDependency" ) ;
19
20
const createHash = require ( "../util/createHash" ) ;
20
21
22
+ /** @typedef {import("../Dependency") } Dependency */
23
+
21
24
const ensureNsObjSource = (
22
25
info ,
23
26
moduleToInfoMap ,
@@ -410,14 +413,26 @@ class ConcatenatedModule extends Module {
410
413
const list = [ ] ;
411
414
const set = new Set ( ) ;
412
415
416
+ /**
417
+ * @param {Module } module a module
418
+ * @returns {(function(): Module)[] } imported modules in order
419
+ */
413
420
const getConcatenatedImports = module => {
414
- return module . dependencies
421
+ /** @type {WeakMap<DependencyReference, Dependency> } */
422
+ const map = new WeakMap ( ) ;
423
+ const references = module . dependencies
415
424
. filter ( dep => dep instanceof HarmonyImportDependency )
416
- . sort ( ( a , b ) => a . sourceOrder - b . sourceOrder )
417
- . map ( dep => ( ) => {
425
+ . map ( dep => {
418
426
const ref = dep . getReference ( ) ;
419
- return ref && ref . module ;
420
- } ) ;
427
+ if ( ref ) map . set ( ref , dep ) ;
428
+ return ref ;
429
+ } )
430
+ . filter ( ref => ref ) ;
431
+ DependencyReference . sort ( references ) ;
432
+ return references . map ( ref => {
433
+ const dep = map . get ( ref ) ;
434
+ return ( ) => dep . getReference ( ) . module ;
435
+ } ) ;
421
436
} ;
422
437
423
438
const enterModule = getModule => {
0 commit comments