diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2022-07-15 01:06:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-15 01:06:20 +0200 |
commit | f9b692e68e97ab6d39ad03988e973279a32cceca (patch) | |
tree | 9ae831322bee0a7226cb725e15e7332f6ab89ebe /runtime/js | |
parent | 91a33c65f3bdc82bef4cbe95f614e1f533e5b368 (diff) |
Revert "feat: add "unhandledrejection" event support (#12994) (#15080)" (#15210)
This reverts commit 1a7259b04b7229f6350a7a7c21b50497b5c80c17.
Diffstat (limited to 'runtime/js')
-rw-r--r-- | runtime/js/99_main.js | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index 47c2ab9b1..c13faa936 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -11,10 +11,6 @@ delete Intl.v8BreakIterator; ((window) => { const core = Deno.core; const { - ArrayPrototypeIndexOf, - ArrayPrototypePush, - ArrayPrototypeShift, - ArrayPrototypeSplice, ArrayPrototypeMap, DateNow, Error, @@ -31,11 +27,7 @@ delete Intl.v8BreakIterator; SymbolFor, SymbolIterator, PromisePrototypeThen, - SafeWeakMap, TypeError, - WeakMapPrototypeDelete, - WeakMapPrototypeGet, - WeakMapPrototypeSet, } = window.__bootstrap.primordials; const util = window.__bootstrap.util; const eventTarget = window.__bootstrap.eventTarget; @@ -241,7 +233,6 @@ delete Intl.v8BreakIterator; function runtimeStart(runtimeOptions, source) { core.setMacrotaskCallback(timers.handleTimerMacrotask); - core.setMacrotaskCallback(promiseRejectMacrotaskCallback); core.setWasmStreamingCallback(fetch.handleWasmStreaming); core.opSync("op_set_format_exception_callback", formatException); version.setVersions( @@ -420,7 +411,6 @@ delete Intl.v8BreakIterator; PerformanceEntry: util.nonEnumerable(performance.PerformanceEntry), PerformanceMark: util.nonEnumerable(performance.PerformanceMark), PerformanceMeasure: util.nonEnumerable(performance.PerformanceMeasure), - PromiseRejectionEvent: util.nonEnumerable(PromiseRejectionEvent), ProgressEvent: util.nonEnumerable(ProgressEvent), ReadableStream: util.nonEnumerable(streams.ReadableStream), ReadableStreamDefaultReader: util.nonEnumerable( @@ -563,60 +553,6 @@ delete Intl.v8BreakIterator; postMessage: util.writable(postMessage), }; - const pendingRejections = []; - const pendingRejectionsReasons = new SafeWeakMap(); - - function promiseRejectCallback(type, promise, reason) { - switch (type) { - case 0: { - core.opSync("op_store_pending_promise_exception", promise, reason); - ArrayPrototypePush(pendingRejections, promise); - WeakMapPrototypeSet(pendingRejectionsReasons, promise, reason); - break; - } - case 1: { - core.opSync("op_remove_pending_promise_exception", promise); - const index = ArrayPrototypeIndexOf(pendingRejections, promise); - if (index > -1) { - ArrayPrototypeSplice(pendingRejections, index, 1); - WeakMapPrototypeDelete(pendingRejectionsReasons, promise); - } - break; - } - default: - return; - } - } - - function promiseRejectMacrotaskCallback() { - while (pendingRejections.length > 0) { - const promise = ArrayPrototypeShift(pendingRejections); - const hasPendingException = core.opSync( - "op_has_pending_promise_exception", - promise, - ); - const reason = WeakMapPrototypeGet(pendingRejectionsReasons, promise); - WeakMapPrototypeDelete(pendingRejectionsReasons, promise); - - if (!hasPendingException) { - return; - } - - const event = new PromiseRejectionEvent("unhandledrejection", { - cancelable: true, - promise, - reason, - }); - globalThis.dispatchEvent(event); - - // If event was not prevented we will let Rust side handle it. - if (event.defaultPrevented) { - core.opSync("op_remove_pending_promise_exception", promise); - } - } - return true; - } - let hasBootstrapped = false; function bootstrapMainRuntime(runtimeOptions) { @@ -649,10 +585,6 @@ delete Intl.v8BreakIterator; defineEventHandler(window, "load"); defineEventHandler(window, "beforeunload"); defineEventHandler(window, "unload"); - defineEventHandler(window, "unhandledrejection"); - - core.setPromiseRejectCallback(promiseRejectCallback); - const isUnloadDispatched = SymbolFor("isUnloadDispatched"); // Stores the flag for checking whether unload is dispatched or not. // This prevents the recursive dispatches of unload events. @@ -753,10 +685,6 @@ delete Intl.v8BreakIterator; defineEventHandler(self, "message"); defineEventHandler(self, "error", undefined, true); - defineEventHandler(self, "unhandledrejection"); - - core.setPromiseRejectCallback(promiseRejectCallback); - // `Deno.exit()` is an alias to `self.close()`. Setting and exit // code using an op in worker context is a no-op. os.setExitHandler((_exitCode) => { |