diff options
Diffstat (limited to 'ext/napi/lib.rs')
-rw-r--r-- | ext/napi/lib.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/napi/lib.rs b/ext/napi/lib.rs index 789aec5eb..59a07136d 100644 --- a/ext/napi/lib.rs +++ b/ext/napi/lib.rs @@ -418,6 +418,7 @@ pub struct Env { Rc<RefCell<Vec<(extern "C" fn(*const c_void), *const c_void)>>>, pub tsfn_ref_counters: Arc<Mutex<ThreadsafeFunctionRefCounters>>, pub last_error: napi_extended_error_info, + pub global: NonNull<v8::Value>, } unsafe impl Send for Env {} @@ -427,6 +428,7 @@ impl Env { pub fn new( isolate_ptr: *mut v8::OwnedIsolate, context: v8::Global<v8::Context>, + global: v8::Global<v8::Value>, sender: mpsc::UnboundedSender<PendingNapiAsyncWork>, threadsafe_function_sender: mpsc::UnboundedSender<ThreadSafeFunctionStatus>, cleanup_hooks: Rc< @@ -446,6 +448,7 @@ impl Env { Self { isolate_ptr, context: context.into_raw(), + global: global.into_raw(), shared: std::ptr::null_mut(), open_handle_scopes: 0, async_work_sender: sender, @@ -602,6 +605,7 @@ fn op_napi_open<NP, 'scope>( scope: &mut v8::HandleScope<'scope>, op_state: &mut OpState, path: String, + global: serde_v8::Value, ) -> std::result::Result<serde_v8::Value<'scope>, AnyError> where NP: NapiPermissions + 'static, @@ -644,6 +648,7 @@ where let mut env = Env::new( isolate_ptr, v8::Global::new(scope, ctx), + v8::Global::new(scope, global.v8_value), async_work_sender, tsfn_sender, cleanup_hooks, |