diff --git a/Userland/Libraries/LibWeb/HTML/MessageChannel.cpp b/Userland/Libraries/LibWeb/HTML/MessageChannel.cpp
index 55eb3f5fa5..85dd042081 100644
--- a/Userland/Libraries/LibWeb/HTML/MessageChannel.cpp
+++ b/Userland/Libraries/LibWeb/HTML/MessageChannel.cpp
@@ -20,10 +20,10 @@ MessageChannel::MessageChannel(JS::Realm& realm)
: PlatformObject(realm)
{
// 1. Set this's port 1 to a new MessagePort in this's relevant Realm.
- m_port1 = MessagePort::create(realm);
+ m_port1 = MessagePort::create(realm).release_value_but_fixme_should_propagate_errors();
// 2. Set this's port 2 to a new MessagePort in this's relevant Realm.
- m_port2 = MessagePort::create(realm);
+ m_port2 = MessagePort::create(realm).release_value_but_fixme_should_propagate_errors();
// 3. Entangle this's port 1 and this's port 2.
m_port1->entangle_with(*m_port2);
diff --git a/Userland/Libraries/LibWeb/HTML/MessagePort.cpp b/Userland/Libraries/LibWeb/HTML/MessagePort.cpp
index 25040cfb29..df8a526599 100644
--- a/Userland/Libraries/LibWeb/HTML/MessagePort.cpp
+++ b/Userland/Libraries/LibWeb/HTML/MessagePort.cpp
@@ -14,9 +14,9 @@
namespace Web::HTML {
-JS::NonnullGCPtr MessagePort::create(JS::Realm& realm)
+WebIDL::ExceptionOr> MessagePort::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));
}
MessagePort::MessagePort(JS::Realm& realm)
diff --git a/Userland/Libraries/LibWeb/HTML/MessagePort.h b/Userland/Libraries/LibWeb/HTML/MessagePort.h
index 855aaf38b8..6bd9c46d88 100644
--- a/Userland/Libraries/LibWeb/HTML/MessagePort.h
+++ b/Userland/Libraries/LibWeb/HTML/MessagePort.h
@@ -22,7 +22,7 @@ class MessagePort final : public DOM::EventTarget {
WEB_PLATFORM_OBJECT(MessagePort, DOM::EventTarget);
public:
- static JS::NonnullGCPtr create(JS::Realm&);
+ static WebIDL::ExceptionOr> create(JS::Realm&);
virtual ~MessagePort() override;
diff --git a/Userland/Libraries/LibWeb/HTML/Worker.cpp b/Userland/Libraries/LibWeb/HTML/Worker.cpp
index def9f1598e..899975c983 100644
--- a/Userland/Libraries/LibWeb/HTML/Worker.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Worker.cpp
@@ -26,7 +26,7 @@ Worker::Worker(DeprecatedFlyString const& script_url, WorkerOptions const option
, m_worker_vm(JS::VM::create(adopt_own(m_custom_data)))
, m_interpreter(JS::Interpreter::create(m_worker_vm))
, m_interpreter_scope(*m_interpreter)
- , m_implicit_port(MessagePort::create(document.realm()))
+ , m_implicit_port(MessagePort::create(document.realm()).release_value_but_fixme_should_propagate_errors())
{
}
@@ -80,7 +80,7 @@ WebIDL::ExceptionOr> Worker::create(DeprecatedFlyString
auto worker = MUST_OR_THROW_OOM(document.heap().allocate(document.realm(), script_url, options, document));
// 7. Let outside port be a new MessagePort in outside settings's Realm.
- auto outside_port = MessagePort::create(outside_settings.realm());
+ auto outside_port = TRY(MessagePort::create(outside_settings.realm()));
// 8. Associate the outside port with worker
worker->m_outside_port = outside_port;
@@ -263,7 +263,7 @@ void Worker::run_a_worker(AK::URL& url, EnvironmentSettingsObject& outside_setti
// FIXME: Global scope association
// 16. Let inside port be a new MessagePort object in inside settings's Realm.
- auto inside_port = MessagePort::create(m_inner_settings->realm());
+ auto inside_port = MessagePort::create(m_inner_settings->realm()).release_value_but_fixme_should_propagate_errors();
// 17. Associate inside port with worker global scope.
// FIXME: Global scope association