summaryrefslogtreecommitdiff
path: root/runtime/js/40_signals.js
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/js/40_signals.js')
-rw-r--r--runtime/js/40_signals.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/runtime/js/40_signals.js b/runtime/js/40_signals.js
index 94171628f..71ead71c7 100644
--- a/runtime/js/40_signals.js
+++ b/runtime/js/40_signals.js
@@ -5,7 +5,9 @@
const core = window.Deno.core;
const ops = core.ops;
const {
+ SafeSetIterator,
Set,
+ SetPrototypeDelete,
SymbolFor,
TypeError,
} = window.__bootstrap.primordials;
@@ -60,7 +62,7 @@
checkSignalListenerType(listener);
const sigData = getSignalData(signo);
- sigData.listeners.delete(listener);
+ SetPrototypeDelete(sigData.listeners, listener);
if (sigData.listeners.size === 0 && sigData.rid) {
unbindSignal(sigData.rid);
@@ -73,7 +75,7 @@
if (await pollSignal(sigData.rid)) {
return;
}
- for (const listener of sigData.listeners) {
+ for (const listener of new SafeSetIterator(sigData.listeners)) {
listener();
}
}