mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 00:27:35 +00:00
LibJS/Bytecode: Use LHS identifier as function name on logical assign
This now creates a function named `x`: x ||= function() { } 9 new passes on test262. :^)
This commit is contained in:
parent
17ba47558c
commit
55531e5cda
1 changed files with 5 additions and 1 deletions
|
@ -493,7 +493,11 @@ Bytecode::CodeGenerationErrorOr<void> AssignmentExpression::generate_bytecode(By
|
||||||
// if the logical assignment condition fails.
|
// if the logical assignment condition fails.
|
||||||
auto lhs_reg = generator.allocate_register();
|
auto lhs_reg = generator.allocate_register();
|
||||||
generator.emit<Bytecode::Op::Store>(lhs_reg);
|
generator.emit<Bytecode::Op::Store>(lhs_reg);
|
||||||
TRY(m_rhs->generate_bytecode(generator));
|
|
||||||
|
if (lhs->is_identifier())
|
||||||
|
TRY(generator.emit_named_evaluation_if_anonymous_function(*m_rhs, static_cast<Identifier const&>(*lhs).string()));
|
||||||
|
else
|
||||||
|
TRY(m_rhs->generate_bytecode(generator));
|
||||||
|
|
||||||
switch (m_op) {
|
switch (m_op) {
|
||||||
case AssignmentOp::AdditionAssignment:
|
case AssignmentOp::AdditionAssignment:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue