summaryrefslogtreecommitdiff
path: root/core/ops_builtin.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2022-07-04 21:14:58 +0200
committerGitHub <noreply@github.com>2022-07-04 21:14:58 +0200
commitf7af0b01a59aaac91473e2f920137004d39a310a (patch)
treef04bdb8c0acba2730cff47a91b249e15543435a8 /core/ops_builtin.rs
parent691d67b3ed788e30b17600d1dc472ecfa83b6585 (diff)
feat: add "unhandledrejection" event support (#12994)
This commit adds support for "unhandledrejection" event. This event will trigger event listeners registered using: "globalThis.addEventListener("unhandledrejection") "globalThis.onunhandledrejection" This is done by registering a default handler using "Deno.core.setPromiseRejectCallback" that allows to handle rejected promises in JavaScript instead of Rust. This commit will make it possible to polyfill "process.on("unhandledRejection")" in the Node compat layer. Co-authored-by: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'core/ops_builtin.rs')
-rw-r--r--core/ops_builtin.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/ops_builtin.rs b/core/ops_builtin.rs
index a42c0bae8..53f2bd706 100644
--- a/core/ops_builtin.rs
+++ b/core/ops_builtin.rs
@@ -38,6 +38,7 @@ pub(crate) fn init_builtins() -> Extension {
op_metrics::decl(),
op_format_file_name::decl(),
op_is_proxy::decl(),
+ op_next_task::decl(),
])
.ops(crate::ops_builtin_v8::init_builtins_v8())
.build()
@@ -189,3 +190,8 @@ fn op_format_file_name(file_name: String) -> String {
fn op_is_proxy(value: serde_v8::Value) -> bool {
value.v8_value.is_proxy()
}
+
+/// Empty op that when awaited forces a macrotask to run. Useful for
+/// "unhandledrejection" event.
+#[op]
+async fn op_next_task() {}