@@ -32,6 +32,8 @@ const {
3232const readFileAsync = promisify ( fs . readFile ) ;
3333const JsonParse = JSON . parse ;
3434const { maybeCacheSourceMap } = require ( 'internal/source_map/source_map_cache' ) ;
35+ const moduleWrap = internalBinding ( 'module_wrap' ) ;
36+ const { ModuleWrap } = moduleWrap ;
3537
3638const debug = debuglog ( 'esm' ) ;
3739
@@ -77,22 +79,18 @@ translators.set('module', async function moduleStrategy(url) {
7779 const source = `${ await getSource ( url ) } ` ;
7880 maybeCacheSourceMap ( url , source ) ;
7981 debug ( `Translating StandardModule ${ url } ` ) ;
80- const { ModuleWrap, callbackMap } = internalBinding ( 'module_wrap' ) ;
8182 const module = new ModuleWrap ( source , url ) ;
82- callbackMap . set ( module , {
83+ moduleWrap . callbackMap . set ( module , {
8384 initializeImportMeta,
8485 importModuleDynamically,
8586 } ) ;
86- return {
87- module,
88- reflect : undefined ,
89- } ;
87+ return module ;
9088} ) ;
9189
9290// Strategy for loading a node-style CommonJS module
9391const isWindows = process . platform === 'win32' ;
9492const winSepRegEx = / \/ / g;
95- translators . set ( 'commonjs' , async function commonjsStrategy ( url , isMain ) {
93+ translators . set ( 'commonjs' , function commonjsStrategy ( url , isMain ) {
9694 debug ( `Translating CJSModule ${ url } ` ) ;
9795 const pathname = internalURLModule . fileURLToPath ( new URL ( url ) ) ;
9896 const cached = this . cjsCache . get ( url ) ;
@@ -105,17 +103,17 @@ translators.set('commonjs', async function commonjsStrategy(url, isMain) {
105103 ] ;
106104 if ( module && module . loaded ) {
107105 const exports = module . exports ;
108- return createDynamicModule ( [ ] , [ 'default' ] , url , ( reflect ) => {
109- reflect . exports . default . set ( exports ) ;
110- } ) ;
106+ return new ModuleWrap ( function ( ) {
107+ this . setExport ( 'default' , exports ) ;
108+ } , [ 'default' ] , url ) ;
111109 }
112- return createDynamicModule ( [ ] , [ 'default' ] , url , ( ) => {
110+ return new ModuleWrap ( function ( ) {
113111 debug ( `Loading CJSModule ${ url } ` ) ;
114112 // We don't care about the return val of _load here because Module#load
115113 // will handle it for us by checking the loader registry and filling the
116114 // exports like above
117115 CJSModule . _load ( pathname , undefined , isMain ) ;
118- } ) ;
116+ } , [ 'default' ] , url ) ;
119117} ) ;
120118
121119// Strategy for loading a node builtin CommonJS module that isn't
@@ -145,9 +143,9 @@ translators.set('json', async function jsonStrategy(url) {
145143 module = CJSModule . _cache [ modulePath ] ;
146144 if ( module && module . loaded ) {
147145 const exports = module . exports ;
148- return createDynamicModule ( [ ] , [ 'default' ] , url , ( reflect ) => {
149- reflect . exports . default . set ( exports ) ;
150- } ) ;
146+ return new ModuleWrap ( function ( ) {
147+ this . setExport ( 'default' , exports ) ;
148+ } , [ 'default' ] , url ) ;
151149 }
152150 }
153151 const content = `${ await getSource ( url ) } ` ;
@@ -158,9 +156,9 @@ translators.set('json', async function jsonStrategy(url) {
158156 module = CJSModule . _cache [ modulePath ] ;
159157 if ( module && module . loaded ) {
160158 const exports = module . exports ;
161- return createDynamicModule ( [ 'default' ] , url , ( reflect ) => {
162- reflect . exports . default . set ( exports ) ;
163- } ) ;
159+ return new ModuleWrap ( function ( ) {
160+ this . setExport ( 'default' , exports ) ;
161+ } , [ 'default' ] , url ) ;
164162 }
165163 }
166164 try {
@@ -180,10 +178,10 @@ translators.set('json', async function jsonStrategy(url) {
180178 if ( pathname ) {
181179 CJSModule . _cache [ modulePath ] = module ;
182180 }
183- return createDynamicModule ( [ ] , [ 'default' ] , url , ( reflect ) => {
181+ return new ModuleWrap ( function ( ) {
184182 debug ( `Parsing JSONModule ${ url } ` ) ;
185- reflect . exports . default . set ( module . exports ) ;
186- } ) ;
183+ this . setExport ( 'default' , module . exports ) ;
184+ } , [ 'default' ] , url ) ;
187185} ) ;
188186
189187// Strategy for loading a wasm module
@@ -206,5 +204,5 @@ translators.set('wasm', async function(url) {
206204 const { exports } = new WebAssembly . Instance ( compiled , reflect . imports ) ;
207205 for ( const expt of Object . keys ( exports ) )
208206 reflect . exports [ expt ] . set ( exports [ expt ] ) ;
209- } ) ;
207+ } ) . module ;
210208} ) ;
0 commit comments