diff --git a/dom/events/AddEventListenerOptions-signal.any.js b/dom/events/AddEventListenerOptions-signal.any.js index d2952c20cfdb835..42871061f3b9167 100644 --- a/dom/events/AddEventListenerOptions-signal.any.js +++ b/dom/events/AddEventListenerOptions-signal.any.js @@ -116,3 +116,18 @@ test(function() { et.dispatchEvent(new Event('test')); assert_equals(count, 0, "The listener was still removed"); }, "Adding then aborting a listener in another listener does not call it"); + +test(function() { + const et = new EventTarget(); + const ac = new AbortController(); + let count = 0; + et.addEventListener('foo', () => { + et.addEventListener('foo', () => { + count++; + if (count > 5) ac.abort(); + et.dispatchEvent(new Event('foo')); + }, { signal: ac.signal }); + et.dispatchEvent(new Event('foo')); + }, { once: true }); + et.dispatchEvent(new Event('foo')); +}, "Aborting from a nested listener should remove it");