/src/serenity/Userland/Libraries/LibJS/Bytecode/IdentifierTable.cpp
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2021, Gunnar Beutner <gbeutner@serenityos.org> |
3 | | * |
4 | | * SPDX-License-Identifier: BSD-2-Clause |
5 | | */ |
6 | | |
7 | | #include <LibJS/Bytecode/IdentifierTable.h> |
8 | | |
9 | | namespace JS::Bytecode { |
10 | | |
11 | | IdentifierTableIndex IdentifierTable::insert(DeprecatedFlyString string) |
12 | 0 | { |
13 | 0 | m_identifiers.append(move(string)); |
14 | 0 | VERIFY(m_identifiers.size() <= NumericLimits<u32>::max()); |
15 | 0 | return { static_cast<u32>(m_identifiers.size() - 1) }; |
16 | 0 | } |
17 | | |
18 | | DeprecatedFlyString const& IdentifierTable::get(IdentifierTableIndex index) const |
19 | 0 | { |
20 | 0 | return m_identifiers[index.value]; |
21 | 0 | } |
22 | | |
23 | | void IdentifierTable::dump() const |
24 | 0 | { |
25 | 0 | outln("Identifier Table:"); |
26 | 0 | for (size_t i = 0; i < m_identifiers.size(); i++) |
27 | 0 | outln("{}: {}", i, m_identifiers[i]); |
28 | 0 | } |
29 | | |
30 | | } |