diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2023-02-01 06:41:04 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-01 15:41:04 +0100 |
commit | 524bccdf6aa20ee4ba76dc7291d77b4c98fa7e28 (patch) | |
tree | a312f7fadf6a086f37bcc5326b42efbe114617be /ext/napi | |
parent | 1b46b2f0e47b93635b8f225f43bb82fd79dd31dc (diff) |
fix(napi): return node globalThis from napi_get_global (#17613)
Fixes https://github.com/denoland/deno/issues/17587
Diffstat (limited to 'ext/napi')
-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, |