LibWeb: Make factory method of DOM::DOMImplementation fallible

This commit is contained in:
Kenneth Myhra 2023-02-14 21:07:43 +01:00 committed by Linus Groh
parent a5ad8b2959
commit b9c5828fe6
Notes: sideshowbarker 2024-07-19 01:59:31 +09:00
3 changed files with 4 additions and 4 deletions

View file

@ -17,10 +17,10 @@
namespace Web::DOM { namespace Web::DOM {
JS::NonnullGCPtr<DOMImplementation> DOMImplementation::create(Document& document) WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMImplementation>> DOMImplementation::create(Document& document)
{ {
auto& realm = document.realm(); auto& realm = document.realm();
return realm.heap().allocate<DOMImplementation>(realm, document).release_allocated_value_but_fixme_should_propagate_errors(); return MUST_OR_THROW_OOM(realm.heap().allocate<DOMImplementation>(realm, document));
} }
DOMImplementation::DOMImplementation(Document& document) DOMImplementation::DOMImplementation(Document& document)

View file

@ -17,7 +17,7 @@ class DOMImplementation final : public Bindings::PlatformObject {
WEB_PLATFORM_OBJECT(DOMImplementation, Bindings::PlatformObject); WEB_PLATFORM_OBJECT(DOMImplementation, Bindings::PlatformObject);
public: public:
static JS::NonnullGCPtr<DOMImplementation> create(Document&); static WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMImplementation>> create(Document&);
virtual ~DOMImplementation(); virtual ~DOMImplementation();
WebIDL::ExceptionOr<JS::NonnullGCPtr<Document>> create_document(DeprecatedString const&, DeprecatedString const&, JS::GCPtr<DocumentType>) const; WebIDL::ExceptionOr<JS::NonnullGCPtr<Document>> create_document(DeprecatedString const&, DeprecatedString const&, JS::GCPtr<DocumentType>) const;

View file

@ -1824,7 +1824,7 @@ void Document::evaluate_media_rules()
DOMImplementation* Document::implementation() DOMImplementation* Document::implementation()
{ {
if (!m_implementation) if (!m_implementation)
m_implementation = DOMImplementation::create(*this); m_implementation = DOMImplementation::create(*this).release_value_but_fixme_should_propagate_errors();
return m_implementation; return m_implementation;
} }