@@ -65,11 +65,12 @@ function module_derive(injects, injectModule) {
65
65
if ( inject . alias == null ) inject . alias = inject . name ;
66
66
injectByAlias . set ( inject . alias , inject ) ;
67
67
} ) ;
68
- return this . _copy ( injectByAlias , injectModule , new Map ) ;
68
+ var copy = new Module ( this . _runtime ) ;
69
+ Promise . resolve ( ) . then ( ( ) => this . _copy ( copy , injectByAlias , injectModule , new Map ) ) ;
70
+ return copy ;
69
71
}
70
72
71
- function module_copy ( injectByAlias , injectModule , map ) {
72
- var copy = new Module ( this . _runtime ) ;
73
+ function module_copy ( copy , injectByAlias , injectModule , map ) {
73
74
map . set ( this , copy ) ;
74
75
this . _scope . forEach ( function ( source , name ) {
75
76
var target = new Variable ( source . _type , copy ) , inject ;
@@ -78,7 +79,7 @@ function module_copy(injectByAlias, injectModule, map) {
78
79
} else if ( source . _definition === identity ) { // import!
79
80
var sourceInput = source . _inputs [ 0 ] ,
80
81
sourceModule = sourceInput . _module ,
81
- targetModule = map . get ( sourceModule ) || sourceModule . _copy ( none , null , map ) ;
82
+ targetModule = map . get ( sourceModule ) || sourceModule . _copy ( new Module ( copy . _runtime ) , none , null , map ) ;
82
83
target . import ( sourceInput . _name , name , targetModule ) ;
83
84
} else {
84
85
target . define ( name , source . _inputs . map ( variable_name ) , source . _definition ) ;
0 commit comments