Ignore:
Timestamp:
Jun 5, 2020, 12:06:05 PM (5 years ago)
Author:
Devin Rousso
Message:

Logical Assignment: perform NamedEvaluation of anonymous functions
https://bugs.webkit.org/show_bug.cgi?id=212679

Reviewed by Ross Kirsling.

JSTests:

  • stress/logical-assignment-operator-and.js:
  • stress/logical-assignment-operator-coalesce.js:
  • stress/logical-assignment-operator-or.js:

Source/JavaScriptCore:

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeAssignNode):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/parser/ASTBuilder.h

    r262613 r262638  
    15781578        }
    15791579
    1580         if (op == Operator::CoalesceEq || op == Operator::OrEq || op == Operator::AndEq)
     1580        if (op == Operator::CoalesceEq || op == Operator::OrEq || op == Operator::AndEq) {
     1581            if (expr->isBaseFuncExprNode()) {
     1582                auto metadata = static_cast<BaseFuncExprNode*>(expr)->metadata();
     1583                metadata->setEcmaName(resolve->identifier());
     1584            } else if (expr->isClassExprNode())
     1585                static_cast<ClassExprNode*>(expr)->setEcmaName(resolve->identifier());
    15811586            return new (m_parserArena) ShortCircuitReadModifyResolveNode(location, resolve->identifier(), op, expr, exprHasAssignments, divot, start, end);
     1587        }
    15821588
    15831589        return new (m_parserArena) ReadModifyResolveNode(location, resolve->identifier(), op, expr, exprHasAssignments, divot, start, end);
Note: See TracChangeset for help on using the changeset viewer.