diff --git a/Userland/Libraries/LibWeb/HTML/Storage.cpp b/Userland/Libraries/LibWeb/HTML/Storage.cpp
index e258a44a49..456c8349e4 100644
--- a/Userland/Libraries/LibWeb/HTML/Storage.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Storage.cpp
@@ -10,9 +10,9 @@
namespace Web::HTML {
-JS::NonnullGCPtr Storage::create(JS::Realm& realm)
+WebIDL::ExceptionOr> Storage::create(JS::Realm& realm)
{
- return realm.heap().allocate(realm, realm).release_allocated_value_but_fixme_should_propagate_errors();
+ return MUST_OR_THROW_OOM(realm.heap().allocate(realm, realm));
}
Storage::Storage(JS::Realm& realm)
diff --git a/Userland/Libraries/LibWeb/HTML/Storage.h b/Userland/Libraries/LibWeb/HTML/Storage.h
index 2fc749ee88..4a12ab704d 100644
--- a/Userland/Libraries/LibWeb/HTML/Storage.h
+++ b/Userland/Libraries/LibWeb/HTML/Storage.h
@@ -16,7 +16,7 @@ class Storage : public Bindings::PlatformObject {
WEB_PLATFORM_OBJECT(Storage, Bindings::PlatformObject);
public:
- static JS::NonnullGCPtr create(JS::Realm&);
+ static WebIDL::ExceptionOr> create(JS::Realm&);
~Storage();
size_t length() const;
diff --git a/Userland/Libraries/LibWeb/HTML/Window.cpp b/Userland/Libraries/LibWeb/HTML/Window.cpp
index 76af7c0448..f301442023 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Window.cpp
@@ -864,7 +864,7 @@ JS::NonnullGCPtr Window::local_storage()
static HashMap> local_storage_per_origin;
auto storage = local_storage_per_origin.ensure(associated_document().origin(), [this]() -> JS::Handle {
- return *HTML::Storage::create(realm());
+ return *HTML::Storage::create(realm()).release_value_but_fixme_should_propagate_errors();
});
return *storage;
}
@@ -876,7 +876,7 @@ JS::NonnullGCPtr Window::session_storage()
static HashMap> session_storage_per_origin;
auto storage = session_storage_per_origin.ensure(associated_document().origin(), [this]() -> JS::Handle {
- return *HTML::Storage::create(realm());
+ return *HTML::Storage::create(realm()).release_value_but_fixme_should_propagate_errors();
});
return *storage;
}