/* * Copyright (c) 2022, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::Bindings { struct HostDefined : public JS::Realm::HostDefined { HostDefined(JS::NonnullGCPtr eso, JS::NonnullGCPtr intrinsics, JS::NonnullGCPtr page) : environment_settings_object(eso) , intrinsics(intrinsics) , page(page) { } virtual ~HostDefined() override = default; virtual void visit_edges(JS::Cell::Visitor& visitor) override; JS::NonnullGCPtr environment_settings_object; JS::NonnullGCPtr intrinsics; JS::NonnullGCPtr page; }; [[nodiscard]] inline HTML::EnvironmentSettingsObject& host_defined_environment_settings_object(JS::Realm& realm) { return *verify_cast(realm.host_defined())->environment_settings_object; } [[nodiscard]] inline Page& host_defined_page(JS::Realm& realm) { return *verify_cast(realm.host_defined())->page; } }