StringTable.cpp 706 B

123456789101112131415161718192021222324252627282930313233
  1. /*
  2. * Copyright (c) 2021, Gunnar Beutner <gbeutner@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibJS/Bytecode/StringTable.h>
  7. namespace JS::Bytecode {
  8. StringTableIndex StringTable::insert(DeprecatedString string)
  9. {
  10. for (size_t i = 0; i < m_strings.size(); i++) {
  11. if (m_strings[i] == string)
  12. return i;
  13. }
  14. m_strings.append(move(string));
  15. return m_strings.size() - 1;
  16. }
  17. DeprecatedString const& StringTable::get(StringTableIndex index) const
  18. {
  19. return m_strings[index.value()];
  20. }
  21. void StringTable::dump() const
  22. {
  23. outln("String Table:");
  24. for (size_t i = 0; i < m_strings.size(); i++)
  25. outln("{}: {}", i, m_strings[i]);
  26. }
  27. }