From aec3d9d84e646c192b56363e9f3b5c4f1cdbdd2c Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 27 Jun 2023 14:41:09 +0200 Subject: [PATCH] LibJS/Bytecode: Prefer alias over name in object pattern bindings 10 new passes on test262. :^) --- Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp b/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp index c8967a7f5f..40fb040126 100644 --- a/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp +++ b/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp @@ -1084,7 +1084,9 @@ static Bytecode::CodeGenerationErrorOr generate_object_binding_pattern_byt Bytecode::Label { if_not_undefined_block }); generator.switch_to_basic_block(if_undefined_block); - if (auto const* lhs = name.get_pointer>()) { + if (auto const* alias_identifier = alias.get_pointer>()) { + TRY(generator.emit_named_evaluation_if_anonymous_function(*initializer, (*alias_identifier)->string())); + } else if (auto const* lhs = name.get_pointer>()) { TRY(generator.emit_named_evaluation_if_anonymous_function(*initializer, (*lhs)->string())); } else { TRY(initializer->generate_bytecode(generator));