mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Add InRealm argument to Callback trait
This commit is contained in:
parent
ae49473c25
commit
8a3bf880e9
4 changed files with 34 additions and 24 deletions
|
@ -6,13 +6,14 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
|
|||
use crate::dom::bindings::root::DomRoot;
|
||||
use crate::dom::bindings::trace::JSTraceable;
|
||||
use crate::dom::globalscope::GlobalScope;
|
||||
use crate::realms::InRealm;
|
||||
use dom_struct::dom_struct;
|
||||
use js::jsapi::JSContext;
|
||||
use js::rust::HandleValue;
|
||||
use malloc_size_of::MallocSizeOf;
|
||||
|
||||
pub trait Callback: JSTraceable + MallocSizeOf {
|
||||
fn callback(&self, cx: *mut JSContext, v: HandleValue);
|
||||
fn callback(&self, cx: *mut JSContext, v: HandleValue, realm: InRealm);
|
||||
}
|
||||
|
||||
#[dom_struct]
|
||||
|
@ -38,17 +39,22 @@ impl PromiseNativeHandler {
|
|||
)
|
||||
}
|
||||
|
||||
fn callback(callback: &Option<Box<dyn Callback>>, cx: *mut JSContext, v: HandleValue) {
|
||||
fn callback(
|
||||
callback: &Option<Box<dyn Callback>>,
|
||||
cx: *mut JSContext,
|
||||
v: HandleValue,
|
||||
realm: InRealm,
|
||||
) {
|
||||
if let Some(ref callback) = *callback {
|
||||
callback.callback(cx, v)
|
||||
callback.callback(cx, v, realm)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn resolved_callback(&self, cx: *mut JSContext, v: HandleValue) {
|
||||
PromiseNativeHandler::callback(&self.resolve, cx, v)
|
||||
pub fn resolved_callback(&self, cx: *mut JSContext, v: HandleValue, realm: InRealm) {
|
||||
PromiseNativeHandler::callback(&self.resolve, cx, v, realm)
|
||||
}
|
||||
|
||||
pub fn rejected_callback(&self, cx: *mut JSContext, v: HandleValue) {
|
||||
PromiseNativeHandler::callback(&self.reject, cx, v)
|
||||
pub fn rejected_callback(&self, cx: *mut JSContext, v: HandleValue, realm: InRealm) {
|
||||
PromiseNativeHandler::callback(&self.reject, cx, v, realm)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue