From 22e7b0f585fb3715ef1894b2c26a0e3cbbd43e9e Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Sat, 26 Jun 2021 11:17:05 +0200 Subject: fix: MessagePort in message for postMessage transfers (#11103) --- cli/tests/unit/message_channel_test.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'cli') diff --git a/cli/tests/unit/message_channel_test.ts b/cli/tests/unit/message_channel_test.ts index 0cb2671d5..2c6062658 100644 --- a/cli/tests/unit/message_channel_test.ts +++ b/cli/tests/unit/message_channel_test.ts @@ -31,3 +31,29 @@ Deno.test("messagechannel", async () => { mc.port2.close(); mc2.port2.close(); }); + +Deno.test("messagechannel clone port", async () => { + const mc = new MessageChannel(); + const mc2 = new MessageChannel(); + assert(mc.port1); + assert(mc.port2); + + const promise = deferred(); + + mc.port2.onmessage = (e) => { + const { port } = e.data; + assertEquals(e.ports.length, 1); + assert(e.ports[0] instanceof MessagePort); + assertEquals(e.ports[0], port); + e.ports[0].close(); + promise.resolve(); + }; + + mc.port1.postMessage({ port: mc2.port1 }, [mc2.port1]); + mc.port1.close(); + + await promise; + + mc.port2.close(); + mc2.port2.close(); +}); -- cgit v1.2.3