Serenity Operating System
at master 39 lines 1.0 kB view raw
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/DOM/AbstractRange.h> 9#include <LibWeb/DOM/Document.h> 10 11namespace Web::DOM { 12 13AbstractRange::AbstractRange(Node& start_container, u32 start_offset, Node& end_container, u32 end_offset) 14 : Bindings::PlatformObject(start_container.realm()) 15 , m_start_container(start_container) 16 , m_start_offset(start_offset) 17 , m_end_container(end_container) 18 , m_end_offset(end_offset) 19{ 20} 21 22AbstractRange::~AbstractRange() = default; 23 24JS::ThrowCompletionOr<void> AbstractRange::initialize(JS::Realm& realm) 25{ 26 MUST_OR_THROW_OOM(Base::initialize(realm)); 27 set_prototype(&Bindings::ensure_web_prototype<Bindings::AbstractRangePrototype>(realm, "AbstractRange")); 28 29 return {}; 30} 31 32void AbstractRange::visit_edges(Cell::Visitor& visitor) 33{ 34 Base::visit_edges(visitor); 35 visitor.visit(m_start_container.ptr()); 36 visitor.visit(m_end_container.ptr()); 37} 38 39}