11import { Loader , ModuleNamespace , REGISTRY } from './loader-polyfill.js' ;
22import { resolveIfNotPlain } from './resolve.js' ;
3- import { addToError , global , createSymbol , baseURI } from './common.js' ;
3+ import { addToError , global , createSymbol , baseURI , toStringTag } from './common.js' ;
44
55export default RegisterLoader ;
66
@@ -204,7 +204,7 @@ function instantiate (loader, load, link, registry, state) {
204204 . then ( function ( instantiation ) {
205205 // direct module return from instantiate -> we're done
206206 if ( instantiation !== undefined ) {
207- if ( ! ( instantiation instanceof ModuleNamespace ) )
207+ if ( ! ( instantiation instanceof ModuleNamespace || instantiation [ toStringTag ] === 'module' ) )
208208 throw new TypeError ( 'Instantiate did not return a valid Module object.' ) ;
209209
210210 delete state . records [ load . key ] ;
@@ -379,7 +379,7 @@ function instantiateDeps (loader, load, link, registry, state) {
379379 if ( setter ) {
380380 var instantiation = dependencyInstantiations [ i ] ;
381381
382- if ( instantiation instanceof ModuleNamespace ) {
382+ if ( instantiation instanceof ModuleNamespace || instantiation [ toStringTag ] === 'module' ) {
383383 setter ( instantiation ) ;
384384 }
385385 else {
@@ -428,7 +428,7 @@ function deepInstantiateDeps (loader, load, link, registry, state) {
428428 var depPromises = [ ] ;
429429 for ( let i = 0 ; i < link . dependencies . length ; i ++ ) {
430430 var depLoad = link . dependencyInstantiations [ i ] ;
431- if ( ! ( depLoad instanceof ModuleNamespace ) )
431+ if ( ! ( depLoad instanceof ModuleNamespace || depLoad [ toStringTag ] === 'module' ) )
432432 depPromises . push ( addDeps ( depLoad , depLoad . linkRecord ) ) ;
433433 }
434434 return Promise . all ( depPromises ) ;
@@ -524,7 +524,7 @@ function makeDynamicRequire (loader, key, dependencies, dependencyInstantiations
524524 var depLoad = dependencyInstantiations [ i ] ;
525525 var module ;
526526
527- if ( depLoad instanceof ModuleNamespace )
527+ if ( depLoad instanceof ModuleNamespace || depLoad [ toStringTag ] === 'module' )
528528 module = depLoad ;
529529 else
530530 module = ensureEvaluate ( loader , depLoad , depLoad . linkRecord , registry , state , seen ) ;
@@ -550,7 +550,7 @@ function doEvaluate (loader, load, link, registry, state, seen) {
550550 for ( var i = 0 ; i < link . dependencies . length ; i ++ ) {
551551 depLoad = link . dependencyInstantiations [ i ] ;
552552
553- if ( depLoad instanceof ModuleNamespace )
553+ if ( depLoad instanceof ModuleNamespace || depLoad [ toStringTag ] === 'module' )
554554 continue ;
555555
556556 // custom Module returned from instantiate
0 commit comments