1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-25 22:35:07 +00:00

LibJS/JIT: Don't keep trying to JIT unsupported bytecode executables

We now only try jitting each Bytecode::Executable once, and then cache
the resulting NativeExecutable.
This commit is contained in:
Andreas Kling 2023-10-20 12:21:30 +02:00
parent 6a6ef6670c
commit 310bcd4717
5 changed files with 21 additions and 3 deletions

View file

@ -351,7 +351,7 @@ Interpreter::ValueAndFrame Interpreter::run_and_return_frame(Executable& executa
else
push_call_frame(make<CallFrame>(), executable.number_of_registers);
if (auto native_executable = JIT::Compiler::compile(executable)) {
if (auto native_executable = executable.get_or_create_native_executable()) {
native_executable->run(vm());
for (size_t i = 0; i < vm().running_execution_context().local_variables.size(); ++i) {