mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 08:27:45 +00:00
LibWeb: Make factory methods of IDLEventListener and NodeFilter fallible
This commit is contained in:
parent
3689d58c64
commit
1f48081ee4
5 changed files with 8 additions and 7 deletions
|
@ -561,7 +561,7 @@ void EventTarget::activate_event_handler(DeprecatedFlyString const& name, HTML::
|
||||||
// 5. Let listener be a new event listener whose type is the event handler event type corresponding to eventHandler and callback is callback.
|
// 5. Let listener be a new event listener whose type is the event handler event type corresponding to eventHandler and callback is callback.
|
||||||
auto listener = realm.heap().allocate_without_realm<DOMEventListener>();
|
auto listener = realm.heap().allocate_without_realm<DOMEventListener>();
|
||||||
listener->type = name;
|
listener->type = name;
|
||||||
listener->callback = IDLEventListener::create(realm, *callback).ptr();
|
listener->callback = IDLEventListener::create(realm, *callback).release_value_but_fixme_should_propagate_errors();
|
||||||
|
|
||||||
// 6. Add an event listener with eventTarget and listener.
|
// 6. Add an event listener with eventTarget and listener.
|
||||||
add_an_event_listener(*listener);
|
add_an_event_listener(*listener);
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
|
|
||||||
namespace Web::DOM {
|
namespace Web::DOM {
|
||||||
|
|
||||||
JS::NonnullGCPtr<IDLEventListener> IDLEventListener::create(JS::Realm& realm, JS::NonnullGCPtr<WebIDL::CallbackType> callback)
|
WebIDL::ExceptionOr<JS::NonnullGCPtr<IDLEventListener>> IDLEventListener::create(JS::Realm& realm, JS::NonnullGCPtr<WebIDL::CallbackType> callback)
|
||||||
{
|
{
|
||||||
return realm.heap().allocate<IDLEventListener>(realm, realm, move(callback)).release_allocated_value_but_fixme_should_propagate_errors();
|
return MUST_OR_THROW_OOM(realm.heap().allocate<IDLEventListener>(realm, realm, move(callback)));
|
||||||
}
|
}
|
||||||
|
|
||||||
IDLEventListener::IDLEventListener(JS::Realm& realm, JS::NonnullGCPtr<WebIDL::CallbackType> callback)
|
IDLEventListener::IDLEventListener(JS::Realm& realm, JS::NonnullGCPtr<WebIDL::CallbackType> callback)
|
||||||
|
|
|
@ -28,7 +28,7 @@ class IDLEventListener final : public JS::Object {
|
||||||
JS_OBJECT(IDLEventListener, JS::Object);
|
JS_OBJECT(IDLEventListener, JS::Object);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static JS::NonnullGCPtr<IDLEventListener> create(JS::Realm&, JS::NonnullGCPtr<WebIDL::CallbackType>);
|
static WebIDL::ExceptionOr<JS::NonnullGCPtr<IDLEventListener>> create(JS::Realm&, JS::NonnullGCPtr<WebIDL::CallbackType>);
|
||||||
IDLEventListener(JS::Realm&, JS::NonnullGCPtr<WebIDL::CallbackType>);
|
IDLEventListener(JS::Realm&, JS::NonnullGCPtr<WebIDL::CallbackType>);
|
||||||
|
|
||||||
virtual ~IDLEventListener() = default;
|
virtual ~IDLEventListener() = default;
|
||||||
|
|
|
@ -6,12 +6,13 @@
|
||||||
|
|
||||||
#include <LibJS/Runtime/VM.h>
|
#include <LibJS/Runtime/VM.h>
|
||||||
#include <LibWeb/DOM/NodeFilter.h>
|
#include <LibWeb/DOM/NodeFilter.h>
|
||||||
|
#include <LibWeb/WebIDL/ExceptionOr.h>
|
||||||
|
|
||||||
namespace Web::DOM {
|
namespace Web::DOM {
|
||||||
|
|
||||||
JS::NonnullGCPtr<NodeFilter> NodeFilter::create(JS::Realm& realm, WebIDL::CallbackType& callback)
|
WebIDL::ExceptionOr<JS::NonnullGCPtr<NodeFilter>> NodeFilter::create(JS::Realm& realm, WebIDL::CallbackType& callback)
|
||||||
{
|
{
|
||||||
return realm.heap().allocate<NodeFilter>(realm, realm, callback).release_allocated_value_but_fixme_should_propagate_errors();
|
return MUST_OR_THROW_OOM(realm.heap().allocate<NodeFilter>(realm, realm, callback));
|
||||||
}
|
}
|
||||||
|
|
||||||
NodeFilter::NodeFilter(JS::Realm& realm, WebIDL::CallbackType& callback)
|
NodeFilter::NodeFilter(JS::Realm& realm, WebIDL::CallbackType& callback)
|
||||||
|
|
|
@ -15,7 +15,7 @@ class NodeFilter final : public Bindings::PlatformObject {
|
||||||
WEB_PLATFORM_OBJECT(NodeFilter, Bindings::PlatformObject);
|
WEB_PLATFORM_OBJECT(NodeFilter, Bindings::PlatformObject);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static JS::NonnullGCPtr<NodeFilter> create(JS::Realm&, WebIDL::CallbackType&);
|
static WebIDL::ExceptionOr<JS::NonnullGCPtr<NodeFilter>> create(JS::Realm&, WebIDL::CallbackType&);
|
||||||
|
|
||||||
virtual ~NodeFilter() = default;
|
virtual ~NodeFilter() = default;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue