diff options
Diffstat (limited to 'ext/web/13_message_port.js')
-rw-r--r-- | ext/web/13_message_port.js | 15 |
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 { |