diff --git a/src/binding.cc b/src/binding.cc index 30bed060..7661af15 100644 --- a/src/binding.cc +++ b/src/binding.cc @@ -1349,6 +1349,10 @@ void v8__Module__GetModuleRequestLocation(const v8::Module& self, int i, *out = self.GetModuleRequestLocation(i); } +v8::Value* v8__Module__GetModuleNamespace(v8::Module* self) { + return local_to_ptr(self->GetModuleNamespace()); +} + int v8__Module__GetIdentityHash(const v8::Module& self) { return self.GetIdentityHash(); } diff --git a/src/module.rs b/src/module.rs index 935651e2..921eb944 100644 --- a/src/module.rs +++ b/src/module.rs @@ -30,6 +30,7 @@ extern "C" { i: usize, out: &mut MaybeUninit, ) -> Location; + fn v8__Module__GetModuleNamespace(this: *mut Module) -> *mut Value; fn v8__Module__GetIdentityHash(this: *const Module) -> int; fn v8__Module__InstantiateModule( this: *mut Module, @@ -113,6 +114,11 @@ impl Module { unsafe { v8__Module__GetIdentityHash(self) } } + /// Returns the identity hash for this object. + pub fn get_module_namespace(&mut self) -> Local { + unsafe { Local::from_raw(v8__Module__GetModuleNamespace(self)).unwrap() } + } + /// Instantiates the module and its dependencies. /// /// Returns an empty Maybe if an exception occurred during