diff options
author | yonatan ben avraham <ybenavraham@outbrain.com> | 2021-01-08 16:44:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-08 15:44:24 +0100 |
commit | 5f015eac9cbc2b7901a9aa76dab638ea3c60d6f8 (patch) | |
tree | 885c397d867ea5473877135b6d849522f42e86df /cli/tests/workers_test.ts | |
parent | a44349dfdfecacdd4ccd343a984b05abb728bf88 (diff) |
fix: Worker hangs when posting "undefined" as message (#8920)
This commit fixes hang in web workers occuring when sending
"undefined" as message value. It is a temporary band-aid
until proper structured close is implemented.
Co-authored-by: Bartek IwaĆczuk <biwanczuk@gmail.com>
Diffstat (limited to 'cli/tests/workers_test.ts')
-rw-r--r-- | cli/tests/workers_test.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cli/tests/workers_test.ts b/cli/tests/workers_test.ts index 9cbc864bd..70ecbb828 100644 --- a/cli/tests/workers_test.ts +++ b/cli/tests/workers_test.ts @@ -385,6 +385,31 @@ Deno.test({ }, }); +Deno.test({ + name: "Worker post undefined", + fn: async function (): Promise<void> { + const promise = deferred(); + const worker = new Worker( + new URL("./worker_post_undefined.ts", import.meta.url).href, + { type: "module" }, + ); + + const handleWorkerMessage = (e: MessageEvent): void => { + console.log("main <- worker:", e.data); + worker.terminate(); + promise.resolve(); + }; + + worker.addEventListener("messageerror", () => console.log("message error")); + worker.addEventListener("error", () => console.log("error")); + worker.addEventListener("message", handleWorkerMessage); + + console.log("\npost from parent"); + worker.postMessage(undefined); + await promise; + }, +}); + Deno.test("Worker inherits permissions", async function () { const promise = deferred(); const worker = new Worker( |