@@ -843,7 +843,8 @@ function logloads(loads) {
843
843
this . _loader = {
844
844
loaderObj : this ,
845
845
loads : [ ] ,
846
- modules : { }
846
+ modules : { } ,
847
+ importPromises : { }
847
848
} ;
848
849
849
850
// 26.3.3.6
@@ -859,8 +860,8 @@ function logloads(loads) {
859
860
function Module ( ) { }
860
861
861
862
// importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601
862
- var importPromises = { } ;
863
- function createImportPromise ( name , promise ) {
863
+ function createImportPromise ( loader , name , promise ) {
864
+ var importPromises = loader . _loader . importPromises ;
864
865
importPromises [ name ] = promise ;
865
866
promise . then ( function ( ) {
866
867
importPromises [ name ] = undefined ;
@@ -877,9 +878,9 @@ function logloads(loads) {
877
878
// 26.3.3.2
878
879
define : function ( name , source , options ) {
879
880
// check if already defined
880
- if ( importPromises [ name ] )
881
+ if ( this . _loader . importPromises [ name ] )
881
882
throw new TypeError ( 'Module is already loading.' ) ;
882
- return createImportPromise ( name , new Promise ( asyncStartLoadPartwayThrough ( {
883
+ return createImportPromise ( this , name , new Promise ( asyncStartLoadPartwayThrough ( {
883
884
step : 'translate' ,
884
885
loader : this . _loader ,
885
886
moduleName : name ,
@@ -919,10 +920,10 @@ function logloads(loads) {
919
920
return loader . modules [ name ] . module ;
920
921
}
921
922
922
- return importPromises [ name ] || createImportPromise ( name ,
923
+ return loader . importPromises [ name ] || createImportPromise ( loaderObj , name ,
923
924
loadModule ( loader , name , options || { } )
924
925
. then ( function ( load ) {
925
- delete importPromises [ name ] ;
926
+ delete loader . importPromises [ name ] ;
926
927
return evaluateLoadedModule ( loader , load ) ;
927
928
} ) ) ;
928
929
} ) ;
@@ -934,7 +935,7 @@ function logloads(loads) {
934
935
doEnsureEvaluated ( this . _loader . modules [ name ] , [ ] , this . _loader ) ;
935
936
return Promise . resolve ( this . _loader . modules [ name ] . module ) ;
936
937
}
937
- return importPromises [ name ] || createImportPromise ( name , loadModule ( this . _loader , name , { } ) ) ;
938
+ return this . _loader . importPromises [ name ] || createImportPromise ( this , name , loadModule ( this . _loader , name , { } ) ) ;
938
939
} ,
939
940
// 26.3.3.11
940
941
module : function ( source , options ) {
0 commit comments