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 {
JS::NonnullGCPtr<DOMImplementation> DOMImplementation::create(Document& document)
WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMImplementation>> DOMImplementation::create(Document& document)
{
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)

View file

@ -17,7 +17,7 @@ class DOMImplementation final : public Bindings::PlatformObject {
WEB_PLATFORM_OBJECT(DOMImplementation, Bindings::PlatformObject);
public:
static JS::NonnullGCPtr<DOMImplementation> create(Document&);
static WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMImplementation>> create(Document&);
virtual ~DOMImplementation();
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()
{
if (!m_implementation)
m_implementation = DOMImplementation::create(*this);
m_implementation = DOMImplementation::create(*this).release_value_but_fixme_should_propagate_errors();
return m_implementation;
}