diff options
Diffstat (limited to 'cli/rt/11_workers.js')
-rw-r--r-- | cli/rt/11_workers.js | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/cli/rt/11_workers.js b/cli/rt/11_workers.js index 0a726a714..dcf98aee6 100644 --- a/cli/rt/11_workers.js +++ b/cli/rt/11_workers.js @@ -3,6 +3,7 @@ ((window) => { const core = window.Deno.core; + const { Window } = window.__bootstrap.globalInterfaces; const { log } = window.__bootstrap.util; function createWorker( @@ -142,7 +143,14 @@ if (type === "terminalError") { this.#terminated = true; if (!this.#handleError(event.error)) { - throw Error(event.error.message); + if (globalThis instanceof Window) { + throw new Error("Unhandled error event reached main worker."); + } else { + core.jsonOpSync( + "op_host_unhandled_error", + { message: event.error.message }, + ); + } } continue; } @@ -154,7 +162,14 @@ if (type === "error") { if (!this.#handleError(event.error)) { - throw Error(event.error.message); + if (globalThis instanceof Window) { + throw new Error("Unhandled error event reached main worker."); + } else { + core.jsonOpSync( + "op_host_unhandled_error", + { message: event.error.message }, + ); + } } continue; } |