@@ -174,7 +174,7 @@ function logloads(loads) {
174
174
load = createLoad ( name ) ;
175
175
load . status = 'linked' ;
176
176
// https://bugs.ecmascript.org/show_bug.cgi?id=2795
177
- // load.module = loader.modules[name];
177
+ load . module = loader . modules [ name ] ;
178
178
return load ;
179
179
}
180
180
@@ -250,7 +250,7 @@ function logloads(loads) {
250
250
if ( instantiateResult === undefined ) {
251
251
load . address = load . address || '<Anonymous Module ' + ++ anonCnt + '>' ;
252
252
253
- // NB instead of load.kind, use load.isDeclarative
253
+ // instead of load.kind, use load.isDeclarative
254
254
load . isDeclarative = true ;
255
255
// parse sets load.declare, load.depsList
256
256
loader . loaderObj . parse ( load ) ;
@@ -342,12 +342,10 @@ function logloads(loads) {
342
342
if ( loader . modules [ name ] )
343
343
throw new TypeError ( '"' + name + '" already exists in the module table' ) ;
344
344
345
- // NB this still seems wrong for LoadModule as we may load a dependency
346
- // of another module directly before it has finished loading.
347
- // see https://bugs.ecmascript.org/show_bug.cgi?id=2994
345
+ // adjusted to pick up existing loads
348
346
for ( var i = 0 , l = loader . loads . length ; i < l ; i ++ )
349
347
if ( loader . loads [ i ] . name == name )
350
- throw new TypeError ( '"' + name + '" already loading' ) ;
348
+ return resolve ( loader . loads [ i ] . linkSets [ 0 ] . done ) ;
351
349
352
350
var load = createLoad ( name ) ;
353
351
0 commit comments