@@ -36,6 +36,7 @@ pub struct JsFactoryMeta {
3636pub struct JsModule {
3737 pub ( crate ) identifier : ModuleIdentifier ,
3838 module : NonNull < dyn Module > ,
39+ compiler_id : CompilerId ,
3940 compilation_id : CompilationId ,
4041 compilation : Option < NonNull < Compilation > > ,
4142}
@@ -274,7 +275,12 @@ impl JsModule {
274275 compilation
275276 . module_by_identifier ( & inner_module_info. id )
276277 . map ( |module| {
277- JsModuleWrapper :: new ( module. as_ref ( ) , compilation. id ( ) , Some ( compilation) )
278+ JsModuleWrapper :: new (
279+ module. as_ref ( ) ,
280+ compilation. compiler_id ( ) ,
281+ compilation. id ( ) ,
282+ Some ( compilation) ,
283+ )
278284 } )
279285 } )
280286 . collect :: < Vec < _ > > ( ) ;
@@ -349,10 +355,10 @@ impl JsModule {
349355
350356type ModuleInstanceRefs = IdentifierMap < OneShotInstanceRef < JsModule > > ;
351357
352- type ModuleInstanceRefsByCompilationId = RefCell < HashMap < CompilationId , ModuleInstanceRefs > > ;
358+ type ModuleInstanceRefsByCompilerId = RefCell < HashMap < CompilerId , ModuleInstanceRefs > > ;
353359
354360thread_local ! {
355- static MODULE_INSTANCE_REFS : ModuleInstanceRefsByCompilationId = Default :: default ( ) ;
361+ static MODULE_INSTANCE_REFS : ModuleInstanceRefsByCompilerId = Default :: default ( ) ;
356362}
357363
358364// The difference between JsModuleWrapper and JsModule is:
@@ -362,6 +368,7 @@ thread_local! {
362368pub struct JsModuleWrapper {
363369 identifier : ModuleIdentifier ,
364370 module : NonNull < dyn Module > ,
371+ compiler_id : CompilerId ,
365372 compilation_id : CompilationId ,
366373 compilation : Option < NonNull < Compilation > > ,
367374}
@@ -371,6 +378,7 @@ unsafe impl Send for JsModuleWrapper {}
371378impl JsModuleWrapper {
372379 pub fn new (
373380 module : & dyn Module ,
381+ compiler_id : CompilerId ,
374382 compilation_id : CompilationId ,
375383 compilation : Option < & Compilation > ,
376384 ) -> Self {
@@ -381,17 +389,18 @@ impl JsModuleWrapper {
381389 Self {
382390 identifier,
383391 module : NonNull :: new ( module as * const dyn Module as * mut dyn Module ) . unwrap ( ) ,
392+ compiler_id,
384393 compilation_id,
385394 compilation : compilation
386395 . map ( |c| NonNull :: new ( c as * const Compilation as * mut Compilation ) . unwrap ( ) ) ,
387396 }
388397 }
389398
390399 pub fn cleanup_last_compilation ( compilation_id : CompilationId ) {
391- MODULE_INSTANCE_REFS . with ( |refs| {
392- let mut refs_by_compilation_id = refs. borrow_mut ( ) ;
393- refs_by_compilation_id. remove ( & compilation_id)
394- } ) ;
400+ // MODULE_INSTANCE_REFS.with(|refs| {
401+ // let mut refs_by_compilation_id = refs.borrow_mut();
402+ // refs_by_compilation_id.remove(&compilation_id)
403+ // });
395404 }
396405
397406 pub fn attach ( & mut self , compilation : * const Compilation ) {
@@ -409,8 +418,8 @@ impl ToNapiValue for JsModuleWrapper {
409418 let module = unsafe { val. module . as_ref ( ) } ;
410419
411420 MODULE_INSTANCE_REFS . with ( |refs| {
412- let mut refs_by_compilation_id = refs. borrow_mut ( ) ;
413- let entry = refs_by_compilation_id . entry ( val. compilation_id ) ;
421+ let mut refs_by_compiler_id = refs. borrow_mut ( ) ;
422+ let entry = refs_by_compiler_id . entry ( val. compiler_id ) ;
414423 let refs = match entry {
415424 std:: collections:: hash_map:: Entry :: Occupied ( entry) => entry. into_mut ( ) ,
416425 std:: collections:: hash_map:: Entry :: Vacant ( entry) => {
@@ -431,6 +440,7 @@ impl ToNapiValue for JsModuleWrapper {
431440 let js_module = JsModule {
432441 identifier : val. identifier ,
433442 module : val. module ,
443+ compiler_id : val. compiler_id ,
434444 compilation_id : val. compilation_id ,
435445 compilation : val. compilation ,
436446 } ;
@@ -450,6 +460,7 @@ impl FromNapiValue for JsModuleWrapper {
450460 identifier : instance. identifier ,
451461 #[ allow( clippy:: unwrap_used) ]
452462 module : instance. module ,
463+ compiler_id : instance. compiler_id ,
453464 compilation_id : instance. compilation_id ,
454465 compilation : instance. compilation ,
455466 } )
0 commit comments