1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 08:28:11 +00:00

LibJS: Implement 'this' in the bytecode VM

ThisExpression now emits a "ResolveThisBinding" bytecode op, which
simply loads the VM's current 'this' binding into the accumulator.
This commit is contained in:
Andreas Kling 2021-10-24 14:43:00 +02:00
parent 7c7bc4f44a
commit 3117182c2e
5 changed files with 29 additions and 0 deletions

View file

@ -715,6 +715,18 @@ public:
void replace_references_impl(BasicBlock const&, BasicBlock const&) { }
};
class ResolveThisBinding final : public Instruction {
public:
explicit ResolveThisBinding()
: Instruction(Type::ResolveThisBinding)
{
}
void execute_impl(Bytecode::Interpreter&) const;
String to_string_impl(Bytecode::Executable const&) const;
void replace_references_impl(BasicBlock const&, BasicBlock const&) { }
};
}
namespace JS::Bytecode {