/* * Copyright (c) 2021, Idan Horowitz * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace JS { class FinalizationRegistryPrototype final : public PrototypeObject { JS_PROTOTYPE_OBJECT(FinalizationRegistryPrototype, FinalizationRegistry, FinalizationRegistry); GC_DECLARE_ALLOCATOR(FinalizationRegistryPrototype); public: virtual void initialize(Realm&) override; virtual ~FinalizationRegistryPrototype() override = default; private: explicit FinalizationRegistryPrototype(Realm&); JS_DECLARE_NATIVE_FUNCTION(cleanup_some); JS_DECLARE_NATIVE_FUNCTION(register_); JS_DECLARE_NATIVE_FUNCTION(unregister); }; }