Serenity Operating System
1/*
2 * Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include <LibWeb/Bindings/Intrinsics.h>
8#include <LibWeb/WebIDL/DOMException.h>
9
10namespace Web::WebIDL {
11
12JS::NonnullGCPtr<DOMException> DOMException::create(JS::Realm& realm, DeprecatedFlyString const& name, DeprecatedFlyString const& message)
13{
14 return realm.heap().allocate<DOMException>(realm, realm, name, message).release_allocated_value_but_fixme_should_propagate_errors();
15}
16
17JS::NonnullGCPtr<DOMException> DOMException::construct_impl(JS::Realm& realm, DeprecatedFlyString const& message, DeprecatedFlyString const& name)
18{
19 return realm.heap().allocate<DOMException>(realm, realm, name, message).release_allocated_value_but_fixme_should_propagate_errors();
20}
21
22DOMException::DOMException(JS::Realm& realm, DeprecatedFlyString const& name, DeprecatedFlyString const& message)
23 : PlatformObject(realm)
24 , m_name(name)
25 , m_message(message)
26{
27}
28
29DOMException::~DOMException() = default;
30
31JS::ThrowCompletionOr<void> DOMException::initialize(JS::Realm& realm)
32{
33 MUST_OR_THROW_OOM(Base::initialize(realm));
34 set_prototype(&Bindings::ensure_web_prototype<Bindings::DOMExceptionPrototype>(realm, "DOMException"));
35
36 return {};
37}
38
39}