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())
{
}