diff --git a/Userland/Libraries/LibWeb/HTML/DOMStringMap.cpp b/Userland/Libraries/LibWeb/HTML/DOMStringMap.cpp index 19d1a7b7da..21781b4929 100644 --- a/Userland/Libraries/LibWeb/HTML/DOMStringMap.cpp +++ b/Userland/Libraries/LibWeb/HTML/DOMStringMap.cpp @@ -12,10 +12,10 @@ namespace Web::HTML { -JS::NonnullGCPtr DOMStringMap::create(DOM::Element& element) +WebIDL::ExceptionOr> DOMStringMap::create(DOM::Element& element) { auto& realm = element.realm(); - return realm.heap().allocate(realm, element).release_allocated_value_but_fixme_should_propagate_errors(); + return MUST_OR_THROW_OOM(realm.heap().allocate(realm, element)); } DOMStringMap::DOMStringMap(DOM::Element& element) diff --git a/Userland/Libraries/LibWeb/HTML/DOMStringMap.h b/Userland/Libraries/LibWeb/HTML/DOMStringMap.h index 9752706283..a287b083ae 100644 --- a/Userland/Libraries/LibWeb/HTML/DOMStringMap.h +++ b/Userland/Libraries/LibWeb/HTML/DOMStringMap.h @@ -17,7 +17,7 @@ class DOMStringMap final : public Bindings::LegacyPlatformObject { WEB_PLATFORM_OBJECT(DOMStringMap, Bindings::LegacyPlatformObject); public: - static JS::NonnullGCPtr create(DOM::Element&); + static WebIDL::ExceptionOr> create(DOM::Element&); virtual ~DOMStringMap() override; diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp index 1509178f25..f663cfbb57 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -45,7 +46,9 @@ JS::ThrowCompletionOr HTMLElement::initialize(JS::Realm& realm) MUST_OR_THROW_OOM(Base::initialize(realm)); set_prototype(&Bindings::ensure_web_prototype(realm, "HTMLElement")); - m_dataset = DOMStringMap::create(*this); + m_dataset = TRY(Bindings::throw_dom_exception_if_needed(realm.vm(), [&]() { + return DOMStringMap::create(*this); + })); return {}; } diff --git a/Userland/Libraries/LibWeb/SVG/SVGElement.cpp b/Userland/Libraries/LibWeb/SVG/SVGElement.cpp index 4777cd33af..189a6c7a54 100644 --- a/Userland/Libraries/LibWeb/SVG/SVGElement.cpp +++ b/Userland/Libraries/LibWeb/SVG/SVGElement.cpp @@ -12,7 +12,7 @@ namespace Web::SVG { SVGElement::SVGElement(DOM::Document& document, DOM::QualifiedName qualified_name) : Element(document, move(qualified_name)) - , m_dataset(HTML::DOMStringMap::create(*this)) + , m_dataset(HTML::DOMStringMap::create(*this).release_value_but_fixme_should_propagate_errors()) { }