diff options
author | Idan Horowitz <idan.horowitz@gmail.com> | 2021-09-29 20:32:29 +0300 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-09-29 19:38:41 +0200 |
commit | 3b9e8ec597fa0260a60f1436e9158e5f18ef3483 (patch) | |
tree | 5c49227ead234986f06a6ca567baee399170a4ed /Userland/Libraries/LibWeb/DOM/CustomEvent.h | |
parent | e04f3c713c4601c17c18972cac5154d9e4939d99 (diff) | |
download | serenity-3b9e8ec597fa0260a60f1436e9158e5f18ef3483.zip |
LibWeb: Add the missing CustomEvent IDL constructor
Diffstat (limited to 'Userland/Libraries/LibWeb/DOM/CustomEvent.h')
-rw-r--r-- | Userland/Libraries/LibWeb/DOM/CustomEvent.h | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/Userland/Libraries/LibWeb/DOM/CustomEvent.h b/Userland/Libraries/LibWeb/DOM/CustomEvent.h index ad4efe0499..ed549d87d7 100644 --- a/Userland/Libraries/LibWeb/DOM/CustomEvent.h +++ b/Userland/Libraries/LibWeb/DOM/CustomEvent.h @@ -10,17 +10,25 @@ namespace Web::DOM { +struct CustomEventInit : public EventInit { + JS::Value detail { JS::js_null() }; +}; + // https://dom.spec.whatwg.org/#customevent class CustomEvent : public Event { public: using WrapperType = Bindings::CustomEventWrapper; - static NonnullRefPtr<CustomEvent> create(FlyString const& event_name) + static NonnullRefPtr<CustomEvent> create(FlyString const& event_name, CustomEventInit const& event_init = {}) { - return adopt_ref(*new CustomEvent(event_name)); + return adopt_ref(*new CustomEvent(event_name, event_init)); + } + static NonnullRefPtr<CustomEvent> create_with_global_object(Bindings::WindowObject&, const FlyString& event_name, CustomEventInit const& event_init) + { + return CustomEvent::create(event_name, event_init); } - virtual ~CustomEvent() override; + virtual ~CustomEvent() override = default; // https://dom.spec.whatwg.org/#dom-customevent-detail JS::Value detail() const { return m_detail; } @@ -30,7 +38,16 @@ public: void init_custom_event(String const& type, bool bubbles, bool cancelable, JS::Value detail); private: - CustomEvent(FlyString const&); + explicit CustomEvent(FlyString const& event_name) + : Event(event_name) + { + } + + CustomEvent(FlyString const& event_name, CustomEventInit const& event_init) + : Event(event_name, event_init) + , m_detail(event_init.detail) + { + } // https://dom.spec.whatwg.org/#dom-customevent-initcustomevent-type-bubbles-cancelable-detail-detail JS::Value m_detail { JS::js_null() }; |