diff --git a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.cpp b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.cpp
index 213d618a38..882d4f9eec 100644
--- a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.cpp
+++ b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.cpp
@@ -377,7 +377,7 @@ JS::NonnullGCPtr CanvasRenderingContext2D::measure_text(DeprecatedS
// TextMetrics object with members behaving as described in the following
// list:
auto prepared_text = prepare_text(text);
- auto metrics = TextMetrics::create(realm());
+ auto metrics = TextMetrics::create(realm()).release_value_but_fixme_should_propagate_errors();
// FIXME: Use the font that was used to create the glyphs in prepared_text.
auto& font = Platform::FontPlugin::the().default_font();
diff --git a/Userland/Libraries/LibWeb/HTML/TextMetrics.cpp b/Userland/Libraries/LibWeb/HTML/TextMetrics.cpp
index 0f21286fe6..235da24367 100644
--- a/Userland/Libraries/LibWeb/HTML/TextMetrics.cpp
+++ b/Userland/Libraries/LibWeb/HTML/TextMetrics.cpp
@@ -6,12 +6,13 @@
#include
#include
+#include
namespace Web::HTML {
-JS::NonnullGCPtr TextMetrics::create(JS::Realm& realm)
+WebIDL::ExceptionOr> TextMetrics::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));
}
TextMetrics::TextMetrics(JS::Realm& realm)
diff --git a/Userland/Libraries/LibWeb/HTML/TextMetrics.h b/Userland/Libraries/LibWeb/HTML/TextMetrics.h
index 47df236a57..1d07e8f8c2 100644
--- a/Userland/Libraries/LibWeb/HTML/TextMetrics.h
+++ b/Userland/Libraries/LibWeb/HTML/TextMetrics.h
@@ -14,7 +14,7 @@ class TextMetrics : public Bindings::PlatformObject {
WEB_PLATFORM_OBJECT(TextMetrics, Bindings::PlatformObject);
public:
- static JS::NonnullGCPtr create(JS::Realm&);
+ static WebIDL::ExceptionOr> create(JS::Realm&);
virtual ~TextMetrics() override;