diff --git a/src/binding.cc b/src/binding.cc index 021d66ff..1a60cce7 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 d202804b..33429d08 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,