mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
LibJS: Use bytecode for generator function default parameters
Otherwise there's a mismatch between which interpreter we use. This fixes a regression in the AST interpreter score on test262.
This commit is contained in:
parent
702054dcbc
commit
467ea86179
Notes:
sideshowbarker
2024-07-16 22:14:49 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/467ea86179 Pull-request: https://github.com/SerenityOS/serenity/pull/19575
|
@ -455,7 +455,10 @@ ThrowCompletionOr<void> ECMAScriptFunctionObject::function_declaration_instantia
|
|||
} else if (i < execution_context_arguments.size() && !execution_context_arguments[i].is_undefined()) {
|
||||
argument_value = execution_context_arguments[i];
|
||||
} else if (parameter.default_value) {
|
||||
if (auto* bytecode_interpreter = vm.bytecode_interpreter_if_exists()) {
|
||||
auto* bytecode_interpreter = vm.bytecode_interpreter_if_exists();
|
||||
if (static_cast<FunctionKind>(m_kind) == FunctionKind::Generator)
|
||||
bytecode_interpreter = &vm.bytecode_interpreter();
|
||||
if (bytecode_interpreter) {
|
||||
auto value_and_frame = bytecode_interpreter->run_and_return_frame(realm, *m_default_parameter_bytecode_executables[default_parameter_index - 1], nullptr);
|
||||
if (value_and_frame.value.is_error())
|
||||
return value_and_frame.value.release_error();
|
||||
|
|
Loading…
Reference in a new issue