mirror of
https://github.com/denoland/rusty_v8.git
synced 2024-12-27 01:29:19 -05:00
refactor: Move set_promise_hooks API to HandleScope (#1186)
This commit is contained in:
parent
3b6d79c0e6
commit
36cf16b594
3 changed files with 30 additions and 37 deletions
|
@ -5,7 +5,6 @@ use crate::isolate::Isolate;
|
||||||
use crate::isolate::RawSlot;
|
use crate::isolate::RawSlot;
|
||||||
use crate::support::int;
|
use crate::support::int;
|
||||||
use crate::Context;
|
use crate::Context;
|
||||||
use crate::Function;
|
|
||||||
use crate::HandleScope;
|
use crate::HandleScope;
|
||||||
use crate::Local;
|
use crate::Local;
|
||||||
use crate::Object;
|
use crate::Object;
|
||||||
|
@ -27,13 +26,6 @@ extern "C" {
|
||||||
fn v8__Context__Global(this: *const Context) -> *const Object;
|
fn v8__Context__Global(this: *const Context) -> *const Object;
|
||||||
fn v8__Context__GetExtrasBindingObject(this: *const Context)
|
fn v8__Context__GetExtrasBindingObject(this: *const Context)
|
||||||
-> *const Object;
|
-> *const Object;
|
||||||
fn v8__Context__SetPromiseHooks(
|
|
||||||
this: *const Context,
|
|
||||||
init_hook: *const Function,
|
|
||||||
before_hook: *const Function,
|
|
||||||
after_hook: *const Function,
|
|
||||||
resolve_hook: *const Function,
|
|
||||||
);
|
|
||||||
fn v8__Context__GetNumberOfEmbedderDataFields(this: *const Context) -> u32;
|
fn v8__Context__GetNumberOfEmbedderDataFields(this: *const Context) -> u32;
|
||||||
fn v8__Context__GetAlignedPointerFromEmbedderData(
|
fn v8__Context__GetAlignedPointerFromEmbedderData(
|
||||||
this: *const Context,
|
this: *const Context,
|
||||||
|
@ -107,26 +99,6 @@ impl Context {
|
||||||
unsafe { scope.cast_local(|_| v8__Context__Global(self)) }.unwrap()
|
unsafe { scope.cast_local(|_| v8__Context__Global(self)) }.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
|
||||||
pub fn set_promise_hooks<'s>(
|
|
||||||
&self,
|
|
||||||
_scope: &mut HandleScope<'s, ()>,
|
|
||||||
init_hook: Option<Local<Function>>,
|
|
||||||
before_hook: Option<Local<Function>>,
|
|
||||||
after_hook: Option<Local<Function>>,
|
|
||||||
resolve_hook: Option<Local<Function>>,
|
|
||||||
) {
|
|
||||||
unsafe {
|
|
||||||
v8__Context__SetPromiseHooks(
|
|
||||||
self,
|
|
||||||
init_hook.map_or_else(null, |v| &*v),
|
|
||||||
before_hook.map_or_else(null, |v| &*v),
|
|
||||||
after_hook.map_or_else(null, |v| &*v),
|
|
||||||
resolve_hook.map_or_else(null, |v| &*v),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn get_annex_mut<'a>(
|
fn get_annex_mut<'a>(
|
||||||
&'a self,
|
&'a self,
|
||||||
|
|
28
src/scope.rs
28
src/scope.rs
|
@ -96,6 +96,7 @@ use crate::function::PropertyCallbackInfo;
|
||||||
use crate::Context;
|
use crate::Context;
|
||||||
use crate::Data;
|
use crate::Data;
|
||||||
use crate::DataError;
|
use crate::DataError;
|
||||||
|
use crate::Function;
|
||||||
use crate::Handle;
|
use crate::Handle;
|
||||||
use crate::Isolate;
|
use crate::Isolate;
|
||||||
use crate::Local;
|
use crate::Local;
|
||||||
|
@ -287,6 +288,26 @@ impl<'s> HandleScope<'s> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline(always)]
|
||||||
|
pub fn set_promise_hooks(
|
||||||
|
&mut self,
|
||||||
|
init_hook: Option<Local<Function>>,
|
||||||
|
before_hook: Option<Local<Function>>,
|
||||||
|
after_hook: Option<Local<Function>>,
|
||||||
|
resolve_hook: Option<Local<Function>>,
|
||||||
|
) {
|
||||||
|
unsafe {
|
||||||
|
let sd = data::ScopeData::get_mut(self);
|
||||||
|
raw::v8__Context__SetPromiseHooks(
|
||||||
|
sd.get_current_context(),
|
||||||
|
init_hook.map_or_else(std::ptr::null, |v| &*v),
|
||||||
|
before_hook.map_or_else(std::ptr::null, |v| &*v),
|
||||||
|
after_hook.map_or_else(std::ptr::null, |v| &*v),
|
||||||
|
resolve_hook.map_or_else(std::ptr::null, |v| &*v),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn set_continuation_preserved_embedder_data(
|
pub fn set_continuation_preserved_embedder_data(
|
||||||
&mut self,
|
&mut self,
|
||||||
|
@ -1719,6 +1740,13 @@ mod raw {
|
||||||
this: *const Context,
|
this: *const Context,
|
||||||
index: usize,
|
index: usize,
|
||||||
) -> *const Data;
|
) -> *const Data;
|
||||||
|
pub(super) fn v8__Context__SetPromiseHooks(
|
||||||
|
this: *const Context,
|
||||||
|
init_hook: *const Function,
|
||||||
|
before_hook: *const Function,
|
||||||
|
after_hook: *const Function,
|
||||||
|
resolve_hook: *const Function,
|
||||||
|
);
|
||||||
pub(super) fn v8__Context__SetContinuationPreservedEmbedderData(
|
pub(super) fn v8__Context__SetContinuationPreservedEmbedderData(
|
||||||
this: *const Context,
|
this: *const Context,
|
||||||
value: *const Value,
|
value: *const Value,
|
||||||
|
|
|
@ -3269,8 +3269,7 @@ fn context_promise_hooks() {
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
context.set_promise_hooks(
|
scope.set_promise_hooks(
|
||||||
scope,
|
|
||||||
Some(init_hook),
|
Some(init_hook),
|
||||||
Some(before_hook),
|
Some(before_hook),
|
||||||
Some(after_hook),
|
Some(after_hook),
|
||||||
|
@ -3349,13 +3348,7 @@ fn context_promise_hooks_partial() {
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
context.set_promise_hooks(
|
scope.set_promise_hooks(Some(init_hook), Some(before_hook), None, None);
|
||||||
scope,
|
|
||||||
Some(init_hook),
|
|
||||||
Some(before_hook),
|
|
||||||
None,
|
|
||||||
None,
|
|
||||||
);
|
|
||||||
|
|
||||||
let source = r#"
|
let source = r#"
|
||||||
function expect(expected, actual = promises.size) {
|
function expect(expected, actual = promises.size) {
|
||||||
|
|
Loading…
Reference in a new issue