2022-09-24 18:39:23 -03:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2022, Andrew Kaster <akaster@serenityos.org>
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include <LibJS/Forward.h>
|
|
|
|
|
#include <LibJS/Runtime/NativeFunction.h>
|
|
|
|
|
#include <LibJS/Runtime/Object.h>
|
|
|
|
|
#include <LibWeb/Bindings/Intrinsics.h>
|
2024-11-07 12:03:55 -03:00
|
|
|
#include <LibWeb/Bindings/PrincipalHostDefined.h>
|
2024-11-08 00:07:04 -03:00
|
|
|
#include <LibWeb/Bindings/SyntheticHostDefined.h>
|
2022-09-24 18:39:23 -03:00
|
|
|
|
|
|
|
|
namespace Web::Bindings {
|
|
|
|
|
|
2024-11-14 12:01:23 -03:00
|
|
|
GC_DEFINE_ALLOCATOR(Intrinsics);
|
2023-11-19 15:47:52 -03:00
|
|
|
|
2022-09-24 18:39:23 -03:00
|
|
|
void Intrinsics::visit_edges(JS::Cell::Visitor& visitor)
|
|
|
|
|
{
|
|
|
|
|
Base::visit_edges(visitor);
|
2024-04-15 08:58:21 -03:00
|
|
|
visitor.visit(m_namespaces);
|
|
|
|
|
visitor.visit(m_prototypes);
|
|
|
|
|
visitor.visit(m_constructors);
|
2023-03-21 14:08:44 -03:00
|
|
|
visitor.visit(m_realm);
|
2022-09-24 18:39:23 -03:00
|
|
|
}
|
|
|
|
|
|
2024-11-07 12:03:55 -03:00
|
|
|
Intrinsics& host_defined_intrinsics(JS::Realm& realm)
|
|
|
|
|
{
|
2025-04-18 05:24:45 -03:00
|
|
|
ASSERT(realm.host_defined());
|
|
|
|
|
return static_cast<Bindings::HostDefined&>(*realm.host_defined()).intrinsics;
|
2024-11-07 12:03:55 -03:00
|
|
|
}
|
|
|
|
|
|
2022-09-24 18:39:23 -03:00
|
|
|
}
|