diff options
Diffstat (limited to 'ext/web')
-rw-r--r-- | ext/web/03_abort_signal.js | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/ext/web/03_abort_signal.js b/ext/web/03_abort_signal.js index 4c6230e52..2cc64189b 100644 --- a/ext/web/03_abort_signal.js +++ b/ext/web/03_abort_signal.js @@ -86,15 +86,17 @@ class AbortSignal extends EventTarget { return; } this[abortReason] = reason; - if (this[abortAlgos] !== null) { - for (const algorithm of new SafeSetIterator(this[abortAlgos])) { - algorithm(); - } - this[abortAlgos] = null; - } + const algos = this[abortAlgos]; + this[abortAlgos] = null; + const event = new Event("abort"); setIsTrusted(event, true); this.dispatchEvent(event); + if (algos !== null) { + for (const algorithm of new SafeSetIterator(algos)) { + algorithm(); + } + } } [remove](algorithm) { |