@@ -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 ,
@@ -392,14 +395,26 @@ class ConcatenatedModule extends Module {
392395 const list = [ ] ;
393396 const set = new Set ( ) ;
394397
398+ /**
399+ * @param {Module } module a module
400+ * @returns {(function(): Module)[] } imported modules in order
401+ */
395402 const getConcatenatedImports = module => {
396- return module . dependencies
403+ /** @type {WeakMap<DependencyReference, Dependency> } */
404+ const map = new WeakMap ( ) ;
405+ const references = module . dependencies
397406 . filter ( dep => dep instanceof HarmonyImportDependency )
398- . sort ( ( a , b ) => a . sourceOrder - b . sourceOrder )
399- . map ( dep => ( ) => {
407+ . map ( dep => {
400408 const ref = dep . getReference ( ) ;
401- return ref && ref . module ;
402- } ) ;
409+ if ( ref ) map . set ( ref , dep ) ;
410+ return ref ;
411+ } )
412+ . filter ( ref => ref ) ;
413+ DependencyReference . sort ( references ) ;
414+ return references . map ( ref => {
415+ const dep = map . get ( ref ) ;
416+ return ( ) => dep . getReference ( ) . module ;
417+ } ) ;
403418 } ;
404419
405420 const enterModule = getModule => {
0 commit comments