From 2bca1d89bf7b91344ed7f75d3f705086cdb56667 Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Mon, 18 Mar 2024 18:09:53 +0530 Subject: [PATCH] Add `v8::Context::set_embedder_data` --- src/binding.cc | 5 +++++ src/context.rs | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/src/binding.cc b/src/binding.cc index 021d66fff7..1a60cce7f9 100644 --- a/src/binding.cc +++ b/src/binding.cc @@ -1853,6 +1853,11 @@ void v8__Context__SetAlignedPointerInEmbedderData(v8::Context& self, int index, ptr_to_local(&self)->SetAlignedPointerInEmbedderData(index, value); } +void v8__Context__SetEmbedderData(v8::Context& self, int index, + const v8::Value* value) { + ptr_to_local(&self)->SetEmbedderData(index, ptr_to_local(value)); +} + const v8::Data* v8__Context__GetDataFromSnapshotOnce(v8::Context& self, size_t index) { return maybe_local_to_ptr( diff --git a/src/context.rs b/src/context.rs index d202804b9d..33429d0829 100644 --- a/src/context.rs +++ b/src/context.rs @@ -37,6 +37,11 @@ extern "C" { index: int, value: *mut c_void, ); + fn v8__Context__SetEmbedderData( + this: *const Context, + slot: int, + data: *const Value, + ); fn v8__Context__FromSnapshot( isolate: *mut Isolate, context_snapshot_index: usize, @@ -329,6 +334,10 @@ impl Context { ) } + pub fn set_embedder_data(&self, slot: i32, data: Local) { + unsafe { v8__Context__SetEmbedderData(self, slot, &*data) } + } + #[inline(always)] pub fn get_aligned_pointer_from_embedder_data( &self,