diff --git a/src/glue.rs b/src/glue.rs index 4d7c1ba70..26dabc26c 100644 --- a/src/glue.rs +++ b/src/glue.rs @@ -367,6 +367,8 @@ extern "C" { pub fn JS_ComputeThis (cx: *mut JSContext , vp: *mut JS::Value, dest: *mut JS::Value); pub fn JS_GetModuleHostDefinedField (module: *mut JSObject, dest: *mut JS::Value); pub fn JS_GetPromiseResult (promise: JS::HandleObject, dest: JS::MutableHandleValue); + pub fn JS_GetScriptPrivate(script: *mut JSScript, dest: JS::MutableHandleValue); + pub fn JS_GetModulePrivate(module: *mut JSObject, dest: JS::MutableHandleValue); pub fn JS_THIS (cx: *mut JSContext , vp: *mut JS::Value, dest: *mut JS::Value); pub fn JS_GetNaNValue (cx: *mut JSContext, dest: *mut JS::Value); pub fn JS_GetPositiveInfinityValue (cx: *mut JSContext, dest: *mut JS::Value); diff --git a/src/glue_wrappers.in b/src/glue_wrappers.in index 32fd82d54..e4401e8c1 100644 --- a/src/glue_wrappers.in +++ b/src/glue_wrappers.in @@ -17,4 +17,6 @@ wrap!(glue: pub fn RUST_INTERNED_STRING_TO_JSID(cx: *mut JSContext, str: *mut JS wrap!(glue: pub fn GetIdVectorAddress(v: *mut PersistentRootedIdVector) -> *mut ::libc::c_void); wrap!(glue: pub fn AppendToIdVector(v: MutableHandleIdVector, id: HandleId) -> bool); wrap!(glue: pub fn JS_GetPromiseResult (promise: HandleObject, dest: MutableHandleValue)); +wrap!(glue: pub fn JS_GetScriptPrivate(script: *mut JSScript, dest: MutableHandleValue)); +wrap!(glue: pub fn JS_GetModulePrivate(module: *mut JSObject, dest: MutableHandleValue)); wrap!(glue: pub fn EncodeStringToUTF8(cx: *mut JSContext, str: HandleString, cb: fn(*const c_char))); diff --git a/src/jsglue.cpp b/src/jsglue.cpp index 1e110711f..0add4d8d8 100644 --- a/src/jsglue.cpp +++ b/src/jsglue.cpp @@ -19,6 +19,7 @@ #include "js/Class.h" #include "js/Id.h" #include "js/MemoryMetrics.h" +#include "js/Modules.h" // include for JS::GetModulePrivate #include "js/Principals.h" #include "js/Promise.h" #include "js/Proxy.h" @@ -1077,6 +1078,16 @@ JS_GetPromiseResult(JS::HandleObject promise, JS::MutableHandleValue dest) { dest.set(JS::GetPromiseResult(promise)); } +void +JS_GetScriptPrivate(JSScript* script, JS::MutableHandleValue dest) { + dest.set(JS::GetScriptPrivate(script)); +} + +void +JS_GetModulePrivate(JSObject* module, JS::MutableHandleValue dest) { + dest.set(JS::GetModulePrivate(module)); +} + void JS_GetNaNValue(JSContext* cx, JS::Value* dest) { *dest = JS::NaNValue();