@@ -843,7 +843,8 @@ function logloads(loads) {
843843 this . _loader = {
844844 loaderObj : this ,
845845 loads : [ ] ,
846- modules : { }
846+ modules : { } ,
847+ importPromises : { }
847848 } ;
848849
849850 // 26.3.3.6
@@ -859,8 +860,8 @@ function logloads(loads) {
859860 function Module ( ) { }
860861
861862 // 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 ;
864865 importPromises [ name ] = promise ;
865866 promise . then ( function ( ) {
866867 importPromises [ name ] = undefined ;
@@ -877,9 +878,9 @@ function logloads(loads) {
877878 // 26.3.3.2
878879 define : function ( name , source , options ) {
879880 // check if already defined
880- if ( importPromises [ name ] )
881+ if ( this . _loader . importPromises [ name ] )
881882 throw new TypeError ( 'Module is already loading.' ) ;
882- return createImportPromise ( name , new Promise ( asyncStartLoadPartwayThrough ( {
883+ return createImportPromise ( this , name , new Promise ( asyncStartLoadPartwayThrough ( {
883884 step : 'translate' ,
884885 loader : this . _loader ,
885886 moduleName : name ,
@@ -919,10 +920,10 @@ function logloads(loads) {
919920 return loader . modules [ name ] . module ;
920921 }
921922
922- return importPromises [ name ] || createImportPromise ( name ,
923+ return loader . importPromises [ name ] || createImportPromise ( loaderObj , name ,
923924 loadModule ( loader , name , options || { } )
924925 . then ( function ( load ) {
925- delete importPromises [ name ] ;
926+ delete loader . importPromises [ name ] ;
926927 return evaluateLoadedModule ( loader , load ) ;
927928 } ) ) ;
928929 } ) ;
@@ -934,7 +935,7 @@ function logloads(loads) {
934935 doEnsureEvaluated ( this . _loader . modules [ name ] , [ ] , this . _loader ) ;
935936 return Promise . resolve ( this . _loader . modules [ name ] . module ) ;
936937 }
937- return importPromises [ name ] || createImportPromise ( name , loadModule ( this . _loader , name , { } ) ) ;
938+ return this . _loader . importPromises [ name ] || createImportPromise ( this , name , loadModule ( this . _loader , name , { } ) ) ;
938939 } ,
939940 // 26.3.3.11
940941 module : function ( source , options ) {
0 commit comments