Changeset 278578 in webkit for trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
- Timestamp:
- Jun 7, 2021, 4:26:53 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r278253 r278578 3485 3485 emitShortCircuitAssignment(generator, result.get(), m_operator, afterAssignment.get()); 3486 3486 3487 result =generator.emitNode(result.get(), m_right); // Execute side effects first.3487 generator.emitNode(result.get(), m_right); // Execute side effects first. 3488 3488 bool threwException = generator.emitReadOnlyExceptionIfNeeded(var); 3489 3489 … … 3502 3502 emitShortCircuitAssignment(generator, result.get(), m_operator, afterAssignment.get()); 3503 3503 3504 result =generator.emitNode(result.get(), m_right);3504 generator.emitNode(result.get(), m_right); 3505 3505 generator.move(local.get(), result.get()); 3506 3506 generator.emitProfileType(result.get(), var, divotStart(), divotEnd()); … … 3515 3515 emitShortCircuitAssignment(generator, result.get(), m_operator, afterAssignment.get()); 3516 3516 3517 result =generator.emitNode(result.get(), m_right);3517 generator.emitNode(result.get(), m_right); 3518 3518 generator.emitProfileType(result.get(), var, divotStart(), divotEnd()); 3519 3519 … … 3525 3525 RefPtr<RegisterID> scope = generator.emitResolveScope(nullptr, var); 3526 3526 3527 RefPtr<RegisterID> result = generator.emitGetFromScope(generator.tempDestination(dst), scope.get(), var, ThrowIfNotFound); 3527 RefPtr<RegisterID> result = generator.tempDestination(dst); 3528 3529 generator.emitGetFromScope(result.get(), scope.get(), var, ThrowIfNotFound); 3528 3530 generator.emitTDZCheckIfNecessary(var, result.get(), nullptr); 3529 3531 … … 3658 3660 RefPtr<RegisterID> thisValue; 3659 3661 3660 RefPtr<RegisterID> result ;3662 RefPtr<RegisterID> result = generator.tempDestination(dst); 3661 3663 3662 3664 generator.emitExpressionInfo(subexpressionDivot(), subexpressionStart(), subexpressionEnd()); 3663 3665 if (m_base->isSuperNode()) { 3664 3666 thisValue = generator.ensureThis(); 3665 result = generator.emitGetById(generator.tempDestination(dst), base.get(), thisValue.get(), m_ident);3667 generator.emitGetById(result.get(), base.get(), thisValue.get(), m_ident); 3666 3668 } else 3667 result = generator.emitGetById(generator.tempDestination(dst), base.get(), m_ident);3669 generator.emitGetById(result.get(), base.get(), m_ident); 3668 3670 3669 3671 Ref<Label> afterAssignment = generator.newLabel(); 3670 3672 emitShortCircuitAssignment(generator, result.get(), m_operator, afterAssignment.get()); 3671 3673 3672 result =generator.emitNode(result.get(), m_right);3674 generator.emitNode(result.get(), m_right); 3673 3675 generator.emitExpressionInfo(divot(), divotStart(), divotEnd()); 3674 3676 if (m_base->isSuperNode()) 3675 result =generator.emitPutById(base.get(), thisValue.get(), m_ident, result.get());3677 generator.emitPutById(base.get(), thisValue.get(), m_ident, result.get()); 3676 3678 else 3677 result =generator.emitPutById(base.get(), m_ident, result.get());3679 generator.emitPutById(base.get(), m_ident, result.get()); 3678 3680 generator.emitProfileType(result.get(), divotStart(), divotEnd()); 3679 3681 … … 3754 3756 RefPtr<RegisterID> thisValue; 3755 3757 3756 RefPtr<RegisterID> result ;3758 RefPtr<RegisterID> result = generator.tempDestination(dst); 3757 3759 3758 3760 generator.emitExpressionInfo(subexpressionDivot(), subexpressionStart(), subexpressionEnd()); 3759 3761 if (m_base->isSuperNode()) { 3760 3762 thisValue = generator.ensureThis(); 3761 result = generator.emitGetByVal(generator.tempDestination(dst), base.get(), thisValue.get(), property.get());3763 generator.emitGetByVal(result.get(), base.get(), thisValue.get(), property.get()); 3762 3764 } else 3763 result = generator.emitGetByVal(generator.tempDestination(dst), base.get(), property.get());3765 generator.emitGetByVal(result.get(), base.get(), property.get()); 3764 3766 3765 3767 Ref<Label> afterAssignment = generator.newLabel(); 3766 3768 emitShortCircuitAssignment(generator, result.get(), m_operator, afterAssignment.get()); 3767 3769 3768 result =generator.emitNode(result.get(), m_right);3770 generator.emitNode(result.get(), m_right); 3769 3771 generator.emitExpressionInfo(divot(), divotStart(), divotEnd()); 3770 3772 if (m_base->isSuperNode()) 3771 result =generator.emitPutByVal(base.get(), thisValue.get(), property.get(), result.get());3773 generator.emitPutByVal(base.get(), thisValue.get(), property.get(), result.get()); 3772 3774 else 3773 result =generator.emitPutByVal(base.get(), property.get(), result.get());3775 generator.emitPutByVal(base.get(), property.get(), result.get()); 3774 3776 generator.emitProfileType(result.get(), divotStart(), divotEnd()); 3775 3777
Note:
See TracChangeset
for help on using the changeset viewer.