From 77f1e91e9d4c3db76cc0c8cd2af2c0f8bb55e614 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 25 Jun 2023 11:36:29 +0200 Subject: [PATCH] LibJS: Make $262.evalScript() work in bytecode mode 29 new passes on test262. :^) --- Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp b/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp index 148fa807fb..80eaa14ad7 100644 --- a/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp +++ b/Userland/Libraries/LibJS/Contrib/Test262/$262Object.cpp @@ -6,6 +6,7 @@ */ #include +#include #include #include #include @@ -102,7 +103,12 @@ JS_DEFINE_NATIVE_FUNCTION($262Object::eval_script) } // 5. Let status be ScriptEvaluation(s). - auto status = vm.interpreter().run(script_or_error.value()); + auto status = [&] { + if (auto* bytecode_interpreter = vm.bytecode_interpreter_if_exists()) + return bytecode_interpreter->run(script_or_error.value()); + else + return vm.interpreter().run(script_or_error.value()); + }(); // 6. Return Completion(status). return status;