diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp index 05111ab5ef..587fbfd6ea 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp @@ -30,13 +30,18 @@ namespace Web::HTML { HTMLElement::HTMLElement(DOM::Document& document, DOM::QualifiedName qualified_name) : Element(document, move(qualified_name)) - , m_dataset(DOMStringMap::create(*this)) { set_prototype(&window().cached_web_prototype("HTMLElement")); } HTMLElement::~HTMLElement() = default; +void HTMLElement::initialize(JS::Realm& realm) +{ + Base::initialize(realm); + m_dataset = DOMStringMap::create(*this); +} + void HTMLElement::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.h b/Userland/Libraries/LibWeb/HTML/HTMLElement.h index a40cd1cfd1..399fa3c539 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLElement.h +++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.h @@ -52,6 +52,8 @@ public: protected: HTMLElement(DOM::Document&, DOM::QualifiedName); + virtual void initialize(JS::Realm&) override; + virtual void parse_attribute(FlyString const& name, String const& value) override; virtual void visit_edges(Cell::Visitor&) override; @@ -69,7 +71,7 @@ private: }; ContentEditableState content_editable_state() const; - JS::NonnullGCPtr m_dataset; + JS::GCPtr m_dataset; // https://html.spec.whatwg.org/multipage/interaction.html#locked-for-focus bool m_locked_for_focus { false };