@@ -5,6 +5,7 @@ import { addToError, global, createSymbol, baseURI, toStringTag } from './common
5
5
export default RegisterLoader ;
6
6
7
7
var resolvedPromise = Promise . resolve ( ) ;
8
+ var emptyArray = [ ] ;
8
9
9
10
/*
10
11
* Register Loader
@@ -354,7 +355,7 @@ function registerDeclarative (loader, load, link, declare) {
354
355
return value ;
355
356
} , new ContextualLoader ( loader , load . key ) ) ;
356
357
357
- link . setters = declared . setters ;
358
+ link . setters = declared . setters || [ ] ;
358
359
link . execute = declared . execute ;
359
360
if ( declared . exports ) {
360
361
link . moduleObj = moduleObj = declared . exports ;
@@ -428,13 +429,16 @@ function deepInstantiateDeps (loader, load, link, registry, state) {
428
429
429
430
return instantiateDeps ( loader , load , link , registry , state )
430
431
. then ( function ( ) {
431
- var depPromises = [ ] ;
432
+ var depPromises ;
432
433
for ( let i = 0 ; i < link . dependencies . length ; i ++ ) {
433
434
var depLoad = link . dependencyInstantiations [ i ] ;
434
- if ( ! ( depLoad instanceof ModuleNamespace || depLoad [ toStringTag ] === 'module' ) )
435
+ if ( ! ( depLoad instanceof ModuleNamespace || depLoad [ toStringTag ] === 'module' ) ) {
436
+ depPromises = depPromises || [ ] ;
435
437
depPromises . push ( addDeps ( depLoad , depLoad . linkRecord ) ) ;
438
+ }
436
439
}
437
- return Promise . all ( depPromises ) ;
440
+ if ( depPromises )
441
+ return Promise . all ( depPromises ) ;
438
442
} ) ;
439
443
} ;
440
444
@@ -604,7 +608,7 @@ function doEvaluateDeclarative (loader, load, link, registry, state, seen) {
604
608
}
605
609
606
610
if ( depLoadPromises )
607
- return Promise . all ( depLoadPromises )
611
+ return link . evaluatePromise = Promise . all ( depLoadPromises )
608
612
. then ( function ( ) {
609
613
if ( link . execute ) {
610
614
// ES System.register execute
@@ -618,6 +622,10 @@ function doEvaluateDeclarative (loader, load, link, registry, state, seen) {
618
622
if ( execPromise )
619
623
return execPromise . catch ( function ( e ) {
620
624
evalError ( load , e ) ;
625
+ } )
626
+ . then ( function ( ) {
627
+ load . linkRecord = undefined ;
628
+ return registry [ load . key ] = load . module = new ModuleNamespace ( link . moduleObj ) ;
621
629
} ) ;
622
630
}
623
631
@@ -636,8 +644,12 @@ function doEvaluateDeclarative (loader, load, link, registry, state, seen) {
636
644
evalError ( load , e ) ;
637
645
}
638
646
if ( execPromise )
639
- return execPromise . catch ( function ( e ) {
647
+ return link . evaluatePromise = execPromise . catch ( function ( e ) {
640
648
evalError ( load , e ) ;
649
+ } )
650
+ . then ( function ( ) {
651
+ load . linkRecord = undefined ;
652
+ return registry [ load . key ] = load . module = new ModuleNamespace ( link . moduleObj ) ;
641
653
} ) ;
642
654
}
643
655
0 commit comments