summaryrefslogtreecommitdiff
path: root/ext/web/13_message_port.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/web/13_message_port.js')
-rw-r--r--ext/web/13_message_port.js15
1 files changed, 11 insertions, 4 deletions
diff --git a/ext/web/13_message_port.js b/ext/web/13_message_port.js
index c02b373d6..1430d8327 100644
--- a/ext/web/13_message_port.js
+++ b/ext/web/13_message_port.js
@@ -10,6 +10,7 @@
((window) => {
const core = window.Deno.core;
+ const { Interrupted } = core;
const webidl = window.__bootstrap.webidl;
const { setEventTargetData } = window.__bootstrap.eventTarget;
const { defineEventHandler } = window.__bootstrap.event;
@@ -134,10 +135,16 @@
this[_enabled] = true;
while (true) {
if (this[_id] === null) break;
- const data = await core.opAsync(
- "op_message_port_recv_message",
- this[_id],
- );
+ let data;
+ try {
+ data = await core.opAsync(
+ "op_message_port_recv_message",
+ this[_id],
+ );
+ } catch (err) {
+ if (err instanceof Interrupted) break;
+ throw err;
+ }
if (data === null) break;
let message, transferables;
try {