@@ -55,7 +55,10 @@ ModuleWrap::ModuleWrap(Environment* env,
5555 Local<String> url,
5656 Local<Object> context_object,
5757 Local<Value> synthetic_evaluation_step)
58- : BaseObject(env, object), module_(env->isolate (), module) {
58+ : BaseObject(env, object),
59+ module_ (env->isolate (), module),
60+ module_hash_(module ->GetIdentityHash ()) {
61+ object->SetInternalField (kModuleSlot , module );
5962 object->SetInternalField (kURLSlot , url);
6063 object->SetInternalField (kSyntheticEvaluationStepsSlot ,
6164 synthetic_evaluation_step);
@@ -65,12 +68,12 @@ ModuleWrap::ModuleWrap(Environment* env,
6568 synthetic_ = true ;
6669 }
6770 MakeWeak ();
71+ module_.SetWeak ();
6872}
6973
7074ModuleWrap::~ModuleWrap () {
7175 HandleScope scope (env ()->isolate ());
72- Local<Module> module = module_.Get (env ()->isolate ());
73- auto range = env ()->hash_to_module_map .equal_range (module ->GetIdentityHash ());
76+ auto range = env ()->hash_to_module_map .equal_range (module_hash_);
7477 for (auto it = range.first ; it != range.second ; ++it) {
7578 if (it->second == this ) {
7679 env ()->hash_to_module_map .erase (it);
0 commit comments