@@ -9,6 +9,7 @@ const Template = require("../Template");
99const Parser = require ( "../Parser" ) ;
1010const eslintScope = require ( "eslint-scope" ) ;
1111const { ConcatSource, ReplaceSource } = require ( "webpack-sources" ) ;
12+ const DependencyReference = require ( "../dependencies/DependencyReference" ) ;
1213const HarmonyImportDependency = require ( "../dependencies/HarmonyImportDependency" ) ;
1314const HarmonyImportSideEffectDependency = require ( "../dependencies/HarmonyImportSideEffectDependency" ) ;
1415const HarmonyImportSpecifierDependency = require ( "../dependencies/HarmonyImportSpecifierDependency" ) ;
@@ -18,6 +19,8 @@ const HarmonyExportImportedSpecifierDependency = require("../dependencies/Harmon
1819const HarmonyCompatibilityDependency = require ( "../dependencies/HarmonyCompatibilityDependency" ) ;
1920const createHash = require ( "../util/createHash" ) ;
2021
22+ /** @typedef {import("../Dependency") } Dependency */
23+
2124const ensureNsObjSource = (
2225 info ,
2326 moduleToInfoMap ,
@@ -410,14 +413,26 @@ class ConcatenatedModule extends Module {
410413 const list = [ ] ;
411414 const set = new Set ( ) ;
412415
416+ /**
417+ * @param {Module } module a module
418+ * @returns {(function(): Module)[] } imported modules in order
419+ */
413420 const getConcatenatedImports = module => {
414- return module . dependencies
421+ /** @type {WeakMap<DependencyReference, Dependency> } */
422+ const map = new WeakMap ( ) ;
423+ const references = module . dependencies
415424 . filter ( dep => dep instanceof HarmonyImportDependency )
416- . sort ( ( a , b ) => a . sourceOrder - b . sourceOrder )
417- . map ( dep => ( ) => {
425+ . map ( dep => {
418426 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+ } ) ;
421436 } ;
422437
423438 const enterModule = getModule => {
0 commit comments