Serenity Operating System
at master 41 lines 1.3 kB view raw
1/* 2 * Copyright (c) 2022, Andreas Kling <kling@serenityos.org> 3 * Copyright (c) 2022, Sam Atkins <atkinssj@serenityos.org> 4 * 5 * SPDX-License-Identifier: BSD-2-Clause 6 */ 7 8#include <LibWeb/Bindings/Intrinsics.h> 9#include <LibWeb/Geometry/DOMPoint.h> 10#include <LibWeb/WebIDL/ExceptionOr.h> 11 12namespace Web::Geometry { 13 14WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMPoint>> DOMPoint::construct_impl(JS::Realm& realm, double x, double y, double z, double w) 15{ 16 return MUST_OR_THROW_OOM(realm.heap().allocate<DOMPoint>(realm, realm, x, y, z, w)); 17} 18 19DOMPoint::DOMPoint(JS::Realm& realm, double x, double y, double z, double w) 20 : DOMPointReadOnly(realm, x, y, z, w) 21{ 22} 23 24// https://drafts.fxtf.org/geometry/#dom-dompoint-frompoint 25JS::NonnullGCPtr<DOMPoint> DOMPoint::from_point(JS::VM& vm, DOMPointInit const& other) 26{ 27 // The fromPoint(other) static method on DOMPoint must create a DOMPoint from the dictionary other. 28 return construct_impl(*vm.current_realm(), other.x, other.y, other.z, other.w).release_value_but_fixme_should_propagate_errors(); 29} 30 31DOMPoint::~DOMPoint() = default; 32 33JS::ThrowCompletionOr<void> DOMPoint::initialize(JS::Realm& realm) 34{ 35 MUST_OR_THROW_OOM(Base::initialize(realm)); 36 set_prototype(&Bindings::ensure_web_prototype<Bindings::DOMPointPrototype>(realm, "DOMPoint")); 37 38 return {}; 39} 40 41}