mirror of
https://github.com/denoland/rusty_v8.git
synced 2024-11-25 15:29:43 -05:00
feat: WasmAsyncResolvePromiseCallback (#1029)
This commit is contained in:
parent
d8480fc7ef
commit
2193d827b9
2 changed files with 32 additions and 0 deletions
|
@ -246,6 +246,11 @@ void v8__Isolate__SetPromiseRejectCallback(v8::Isolate* isolate,
|
||||||
isolate->SetPromiseRejectCallback(callback);
|
isolate->SetPromiseRejectCallback(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void v8__Isolate__SetWasmAsyncResolvePromiseCallback(
|
||||||
|
v8::Isolate* isolate, v8::WasmAsyncResolvePromiseCallback callback) {
|
||||||
|
isolate->SetWasmAsyncResolvePromiseCallback(callback);
|
||||||
|
}
|
||||||
|
|
||||||
void v8__Isolate__SetCaptureStackTraceForUncaughtExceptions(
|
void v8__Isolate__SetCaptureStackTraceForUncaughtExceptions(
|
||||||
v8::Isolate* isolate, bool capture, int frame_limit) {
|
v8::Isolate* isolate, bool capture, int frame_limit) {
|
||||||
isolate->SetCaptureStackTraceForUncaughtExceptions(capture, frame_limit);
|
isolate->SetCaptureStackTraceForUncaughtExceptions(capture, frame_limit);
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
use crate::PromiseResolver;
|
||||||
// Copyright 2019-2021 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2019-2021 the Deno authors. All rights reserved. MIT license.
|
||||||
use crate::function::FunctionCallbackInfo;
|
use crate::function::FunctionCallbackInfo;
|
||||||
use crate::handle::FinalizerMap;
|
use crate::handle::FinalizerMap;
|
||||||
|
@ -92,6 +93,20 @@ pub type PromiseHook =
|
||||||
|
|
||||||
pub type PromiseRejectCallback = extern "C" fn(PromiseRejectMessage);
|
pub type PromiseRejectCallback = extern "C" fn(PromiseRejectMessage);
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||||
|
#[repr(C)]
|
||||||
|
pub enum WasmAsyncSuccess {
|
||||||
|
Success,
|
||||||
|
Fail,
|
||||||
|
}
|
||||||
|
pub type WasmAsyncResolvePromiseCallback = extern "C" fn(
|
||||||
|
*const Isolate,
|
||||||
|
Local<Context>,
|
||||||
|
Local<PromiseResolver>,
|
||||||
|
Local<Value>,
|
||||||
|
WasmAsyncSuccess,
|
||||||
|
);
|
||||||
|
|
||||||
/// HostInitializeImportMetaObjectCallback is called the first time import.meta
|
/// HostInitializeImportMetaObjectCallback is called the first time import.meta
|
||||||
/// is accessed for a module. Subsequent access will reuse the same value.
|
/// is accessed for a module. Subsequent access will reuse the same value.
|
||||||
///
|
///
|
||||||
|
@ -233,6 +248,10 @@ extern "C" {
|
||||||
isolate: *mut Isolate,
|
isolate: *mut Isolate,
|
||||||
callback: PromiseRejectCallback,
|
callback: PromiseRejectCallback,
|
||||||
);
|
);
|
||||||
|
fn v8__Isolate__SetWasmAsyncResolvePromiseCallback(
|
||||||
|
isolate: *mut Isolate,
|
||||||
|
callback: WasmAsyncResolvePromiseCallback,
|
||||||
|
);
|
||||||
fn v8__Isolate__SetHostInitializeImportMetaObjectCallback(
|
fn v8__Isolate__SetHostInitializeImportMetaObjectCallback(
|
||||||
isolate: *mut Isolate,
|
isolate: *mut Isolate,
|
||||||
callback: HostInitializeImportMetaObjectCallback,
|
callback: HostInitializeImportMetaObjectCallback,
|
||||||
|
@ -619,6 +638,14 @@ impl Isolate {
|
||||||
) {
|
) {
|
||||||
unsafe { v8__Isolate__SetPromiseRejectCallback(self, callback) }
|
unsafe { v8__Isolate__SetPromiseRejectCallback(self, callback) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn set_wasm_async_resolve_promise_callback(
|
||||||
|
&mut self,
|
||||||
|
callback: WasmAsyncResolvePromiseCallback,
|
||||||
|
) {
|
||||||
|
unsafe { v8__Isolate__SetWasmAsyncResolvePromiseCallback(self, callback) }
|
||||||
|
}
|
||||||
|
|
||||||
/// This specifies the callback called by the upcoming importa.meta
|
/// This specifies the callback called by the upcoming importa.meta
|
||||||
/// language feature to retrieve host-defined meta data for a module.
|
/// language feature to retrieve host-defined meta data for a module.
|
||||||
pub fn set_host_initialize_import_meta_object_callback(
|
pub fn set_host_initialize_import_meta_object_callback(
|
||||||
|
|
Loading…
Reference in a new issue