/* * Copyright (c) 2023, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include #include #include namespace Web::HTML { JS_DEFINE_ALLOCATOR(NavigationTransition); JS::NonnullGCPtr NavigationTransition::create(JS::Realm& realm, Bindings::NavigationType navigation_type, JS::NonnullGCPtr from_entry, JS::GCPtr finished_promise) { return realm.heap().allocate(realm, realm, navigation_type, from_entry, finished_promise); } NavigationTransition::NavigationTransition(JS::Realm& realm, Bindings::NavigationType navigation_type, JS::NonnullGCPtr from_entry, JS::GCPtr finished_promise) : Bindings::PlatformObject(realm) , m_navigation_type(navigation_type) , m_from_entry(from_entry) , m_finished_promise(finished_promise) { } NavigationTransition::~NavigationTransition() = default; void NavigationTransition::initialize(JS::Realm& realm) { Base::initialize(realm); set_prototype(&Bindings::ensure_web_prototype(realm, "NavigationTransition")); } void NavigationTransition::visit_edges(JS::Cell::Visitor& visitor) { Base::visit_edges(visitor); visitor.visit(m_from_entry); visitor.visit(m_finished_promise); } }