ladybird/Userland/Libraries/LibJS/Bytecode/Executable.cpp
Andreas Kling da98212001 LibJS: Add a separate "identifier table" to bytecode executables
This is a specialized string table for storing identifiers only.
Identifiers are always FlyStrings, which makes many common operations
faster by allowing O(1) comparison.
2021-10-24 17:18:07 +02:00

27 lines
534 B
C++

/*
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibJS/Bytecode/Executable.h>
namespace JS::Bytecode {
void Executable::dump() const
{
dbgln("\033[33;1mJS::Bytecode::Executable\033[0m ({})", name);
for (auto& block : basic_blocks)
block.dump(*this);
if (!string_table->is_empty()) {
outln();
string_table->dump();
}
if (!identifier_table->is_empty()) {
outln();
identifier_table->dump();
}
}
}