/* * Copyright (c) 2025, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include namespace Web::DOM { GC_DEFINE_ALLOCATOR(PseudoElement); GC_DEFINE_ALLOCATOR(PseudoElementTreeNode); void PseudoElement::visit_edges(JS::Cell::Visitor& visitor) { Base::visit_edges(visitor); visitor.visit(m_cascaded_properties); visitor.visit(m_computed_properties); visitor.visit(m_layout_node); if (m_counters_set) m_counters_set->visit_edges(visitor); } Optional PseudoElement::counters_set() const { if (!m_counters_set) return {}; return *m_counters_set; } CSS::CountersSet& PseudoElement::ensure_counters_set() { if (!m_counters_set) m_counters_set = make(); return *m_counters_set; } void PseudoElement::set_counters_set(OwnPtr&& counters_set) { m_counters_set = move(counters_set); } }