/* * Copyright (c) 2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace JS { class MarkedValueList : public Vector { public: explicit MarkedValueList(Heap&); MarkedValueList(MarkedValueList const&); MarkedValueList(MarkedValueList&&); ~MarkedValueList(); Vector& values() { return *this; } MarkedValueList& operator=(JS::MarkedValueList const& other); private: Heap* m_heap; IntrusiveListNode m_list_node; public: using List = IntrusiveList<&MarkedValueList::m_list_node>; }; }