mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:57:35 +00:00
LibJS/JIT: Add fastpath for set variable
This commit is contained in:
parent
b3cbe0fdb9
commit
84eecbb10e
8 changed files with 148 additions and 12 deletions
|
@ -472,11 +472,12 @@ public:
|
|||
Initialize,
|
||||
Set,
|
||||
};
|
||||
explicit SetVariable(IdentifierTableIndex identifier, InitializationMode initialization_mode = InitializationMode::Set, EnvironmentMode mode = EnvironmentMode::Lexical)
|
||||
explicit SetVariable(IdentifierTableIndex identifier, u32 cache_index, InitializationMode initialization_mode = InitializationMode::Set, EnvironmentMode mode = EnvironmentMode::Lexical)
|
||||
: Instruction(Type::SetVariable, sizeof(*this))
|
||||
, m_identifier(identifier)
|
||||
, m_mode(mode)
|
||||
, m_initialization_mode(initialization_mode)
|
||||
, m_cache_index(cache_index)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -486,11 +487,13 @@ public:
|
|||
IdentifierTableIndex identifier() const { return m_identifier; }
|
||||
EnvironmentMode mode() const { return m_mode; }
|
||||
InitializationMode initialization_mode() const { return m_initialization_mode; }
|
||||
u32 cache_index() const { return m_cache_index; }
|
||||
|
||||
private:
|
||||
IdentifierTableIndex m_identifier;
|
||||
EnvironmentMode m_mode;
|
||||
InitializationMode m_initialization_mode { InitializationMode::Set };
|
||||
u32 m_cache_index { 0 };
|
||||
};
|
||||
|
||||
class SetLocal final : public Instruction {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue