LibWeb: Update handling of "once" event listeners now that spec is fixed

https://github.com/whatwg/dom/issues/1323 was fixed, and the solution
ended up slightly different from what we had, so let's follow the spec.
This commit is contained in:
Andreas Kling 2024-11-18 19:03:18 +01:00 committed by Andreas Kling
commit e28e4f6700
Notes: github-actions[bot] 2024-11-18 19:21:51 +00:00
3 changed files with 2 additions and 14 deletions

View file

@ -56,9 +56,9 @@ bool EventDispatcher::inner_invoke(Event& event, Vector<GC::Root<DOM::DOMEventLi
if (phase == Event::Phase::BubblingPhase && listener->capture)
continue;
// 5. If listeners once is true, then remove listener from events currentTarget attribute values event listener list.
// 5. If listeners once is true, then remove an event listener given events currentTarget attribute value and listener.
if (listener->once)
event.current_target()->remove_from_event_listener_list(*listener);
event.current_target()->remove_an_event_listener(*listener);
// 6. Let global be listener callbacks associated Realms global object.
auto& callback = listener->callback->callback();