/* * Copyright (c) 2021, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace JS::Bytecode { AK_TYPEDEF_DISTINCT_NUMERIC_GENERAL(size_t, IdentifierTableIndex, Comparison); class IdentifierTable { AK_MAKE_NONMOVABLE(IdentifierTable); AK_MAKE_NONCOPYABLE(IdentifierTable); public: IdentifierTable() = default; IdentifierTableIndex insert(DeprecatedFlyString); DeprecatedFlyString const& get(IdentifierTableIndex) const; void dump() const; bool is_empty() const { return m_identifiers.is_empty(); } private: Vector m_identifiers; }; }