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