/* * Copyright (c) 2026, Callum Law * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::CSS { class CSSFontFeatureValuesMap final : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(CSSFontFeatureValuesMap, Bindings::PlatformObject); GC_DECLARE_ALLOCATOR(CSSFontFeatureValuesMap); public: static GC::Ref create(JS::Realm&, size_t max_value_count); GC::Ref map_entries() { return m_map_entries; } WebIDL::ExceptionOr set(String const& feature_value_name, Variant> const& values); void on_map_modified_from_js(Badge); OrderedHashMap> to_ordered_hash_map() const; private: CSSFontFeatureValuesMap(JS::Realm&, size_t max_value_count); virtual void initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; GC::Ref m_map_entries; size_t m_max_value_count { 0 }; }; }