mirror of
https://github.com/denoland/rusty_v8.git
synced 2025-02-02 04:37:35 -05:00
Create CallbackScope from Promise and PromiseRejectMessage (#168)
This commit is contained in:
parent
45b766c01f
commit
e409030541
2 changed files with 24 additions and 2 deletions
|
@ -1062,6 +1062,10 @@ v8::Promise* v8__Promise__Then2(v8::Promise* self,
|
|||
return maybe_local_to_ptr(self->Then(context, on_fulfilled, on_rejected));
|
||||
}
|
||||
|
||||
v8::Isolate* v8__Promise__GetIsolate(v8::Promise* self) {
|
||||
return self->GetIsolate();
|
||||
}
|
||||
|
||||
v8::PromiseRejectEvent v8__PromiseRejectMessage__GetEvent(
|
||||
const v8::PromiseRejectMessage& self) {
|
||||
return self.GetEvent();
|
||||
|
|
|
@ -4,8 +4,14 @@ use crate::InIsolate;
|
|||
use crate::Isolate;
|
||||
use crate::Local;
|
||||
use crate::Message;
|
||||
use crate::Promise;
|
||||
use crate::PromiseRejectMessage;
|
||||
use std::mem::MaybeUninit;
|
||||
|
||||
extern "C" {
|
||||
fn v8__Promise__GetIsolate(promise: *mut Promise) -> *mut Isolate;
|
||||
}
|
||||
|
||||
pub trait GetIsolate
|
||||
where
|
||||
Self: Sized,
|
||||
|
@ -13,15 +19,27 @@ where
|
|||
fn get_isolate(&mut self) -> &mut Isolate;
|
||||
}
|
||||
|
||||
impl GetIsolate for Context {
|
||||
fn get_isolate(&mut self) -> &mut Isolate {
|
||||
self.get_isolate()
|
||||
}
|
||||
}
|
||||
|
||||
impl GetIsolate for Message {
|
||||
fn get_isolate(&mut self) -> &mut Isolate {
|
||||
self.get_isolate()
|
||||
}
|
||||
}
|
||||
|
||||
impl GetIsolate for Context {
|
||||
impl GetIsolate for Promise {
|
||||
fn get_isolate(&mut self) -> &mut Isolate {
|
||||
self.get_isolate()
|
||||
unsafe { &mut *v8__Promise__GetIsolate(self) }
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> GetIsolate for PromiseRejectMessage<'a> {
|
||||
fn get_isolate(&mut self) -> &mut Isolate {
|
||||
unsafe { &mut *v8__Promise__GetIsolate(&mut *self.get_promise()) }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue