mirror of
https://github.com/RGBCube/serenity
synced 2025-07-10 09:07:35 +00:00
LibJS/Bytecode: Add support for direct eval()
This is implemented as a special mode of the Call opcode that invokes the PerformEval AO (instead of the Call or Construct AO).
This commit is contained in:
parent
8a3e350321
commit
2ac8a4bbb7
3 changed files with 25 additions and 4 deletions
|
@ -1379,6 +1379,8 @@ Bytecode::CodeGenerationErrorOr<void> CallExpression::generate_bytecode(Bytecode
|
|||
Bytecode::Op::Call::CallType call_type;
|
||||
if (is<NewExpression>(*this)) {
|
||||
call_type = Bytecode::Op::Call::CallType::Construct;
|
||||
} else if (m_callee->is_identifier() && static_cast<Identifier const&>(*m_callee).string() == "eval"sv) {
|
||||
call_type = Bytecode::Op::Call::CallType::DirectEval;
|
||||
} else {
|
||||
call_type = Bytecode::Op::Call::CallType::Call;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue