From 1a7259b04b7229f6350a7a7c21b50497b5c80c17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 14 Jul 2022 22:39:20 +0200 Subject: feat: add "unhandledrejection" event support (#12994) (#15080) Relanding #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 --- cli/tests/testdata/unhandled_rejection.js | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 cli/tests/testdata/unhandled_rejection.js (limited to 'cli/tests/testdata/unhandled_rejection.js') diff --git a/cli/tests/testdata/unhandled_rejection.js b/cli/tests/testdata/unhandled_rejection.js new file mode 100644 index 000000000..352e861b4 --- /dev/null +++ b/cli/tests/testdata/unhandled_rejection.js @@ -0,0 +1,11 @@ +globalThis.addEventListener("unhandledrejection", (e) => { + console.log("unhandled rejection at:", e.promise, "reason:", e.reason); + e.preventDefault(); +}); + +function Foo() { + this.bar = Promise.reject(new Error("bar not available")); +} + +new Foo(); +Promise.reject(); -- cgit v1.2.3