mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-03-06 13:35:03 +00:00
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.
This commit is contained in:
@@ -15,6 +15,7 @@ namespace JS::Bytecode {
|
||||
|
||||
Generator::Generator()
|
||||
: m_string_table(make<StringTable>())
|
||||
, m_identifier_table(make<IdentifierTable>())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -44,7 +45,7 @@ Executable Generator::generate(ASTNode const& node, bool is_in_generator_functio
|
||||
generator.emit<Bytecode::Op::Yield>(nullptr);
|
||||
}
|
||||
}
|
||||
return { {}, move(generator.m_root_basic_blocks), move(generator.m_string_table), generator.m_next_register };
|
||||
return { {}, move(generator.m_root_basic_blocks), move(generator.m_string_table), move(generator.m_identifier_table), generator.m_next_register };
|
||||
}
|
||||
|
||||
void Generator::grow(size_t additional_size)
|
||||
|
||||
Reference in New Issue
Block a user