mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 08:58:11 +00:00
LibJS: Add LoadArgument bytecode instruction for fast argument access
This is generated for Identifier nodes that represent a function argument variable. It loads a given argument index from the current call frame into the accumulator.
This commit is contained in:
parent
848944113c
commit
91fbeeab72
4 changed files with 31 additions and 1 deletions
|
@ -260,7 +260,10 @@ void StringLiteral::generate_bytecode(Bytecode::Generator& generator) const
|
|||
|
||||
void Identifier::generate_bytecode(Bytecode::Generator& generator) const
|
||||
{
|
||||
generator.emit<Bytecode::Op::GetVariable>(generator.intern_string(m_string));
|
||||
if (m_argument_index.has_value())
|
||||
generator.emit<Bytecode::Op::LoadArgument>(m_argument_index.value());
|
||||
else
|
||||
generator.emit<Bytecode::Op::GetVariable>(generator.intern_string(m_string));
|
||||
}
|
||||
|
||||
void AssignmentExpression::generate_bytecode(Bytecode::Generator& generator) const
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue