LibWeb: Implement the ToggleEvent.source attribute

See: https://github.com/whatwg/html/pull/11186
This commit is contained in:
Gingeh 2025-06-04 15:35:43 +10:00 committed by Tim Ledbetter
parent 82f9b51da6
commit fc35229dab
Notes: github-actions[bot] 2025-06-07 03:07:15 +00:00
13 changed files with 297 additions and 88 deletions

View file

@ -12,9 +12,9 @@ namespace Web::HTML {
GC_DEFINE_ALLOCATOR(ToggleEvent);
GC::Ref<ToggleEvent> ToggleEvent::create(JS::Realm& realm, FlyString const& event_name, ToggleEventInit event_init)
GC::Ref<ToggleEvent> ToggleEvent::create(JS::Realm& realm, FlyString const& event_name, ToggleEventInit event_init, GC::Ptr<DOM::Element> source)
{
return realm.create<ToggleEvent>(realm, event_name, move(event_init));
return realm.create<ToggleEvent>(realm, event_name, move(event_init), source);
}
WebIDL::ExceptionOr<GC::Ref<ToggleEvent>> ToggleEvent::construct_impl(JS::Realm& realm, FlyString const& event_name, ToggleEventInit event_init)
@ -22,10 +22,11 @@ WebIDL::ExceptionOr<GC::Ref<ToggleEvent>> ToggleEvent::construct_impl(JS::Realm&
return create(realm, event_name, move(event_init));
}
ToggleEvent::ToggleEvent(JS::Realm& realm, FlyString const& event_name, ToggleEventInit event_init)
ToggleEvent::ToggleEvent(JS::Realm& realm, FlyString const& event_name, ToggleEventInit event_init, GC::Ptr<DOM::Element> source)
: DOM::Event(realm, event_name, event_init)
, m_old_state(move(event_init.old_state))
, m_new_state(move(event_init.new_state))
, m_source(source)
{
}
@ -35,4 +36,10 @@ void ToggleEvent::initialize(JS::Realm& realm)
Base::initialize(realm);
}
void ToggleEvent::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_source);
}
}