Changeset 278819 in webkit for trunk/Source/JavaScriptCore/bytecompiler
- Timestamp:
- Jun 13, 2021, 11:29:46 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r278591 r278819 3529 3529 RefPtr<RegisterID> scope = generator.emitResolveScope(nullptr, var); 3530 3530 3531 RefPtr<RegisterID> result = generator.tempDestination(dst);3532 3533 generator.emitGetFromScope( result.get(), scope.get(), var, ThrowIfNotFound);3534 generator.emitTDZCheckIfNecessary(var, result.get(), nullptr);3531 RefPtr<RegisterID> uncheckedResult = generator.newTemporary(); 3532 3533 generator.emitGetFromScope(uncheckedResult.get(), scope.get(), var, ThrowIfNotFound); 3534 generator.emitTDZCheckIfNecessary(var, uncheckedResult.get(), nullptr); 3535 3535 3536 3536 Ref<Label> afterAssignment = generator.newLabel(); 3537 emitShortCircuitAssignment(generator, result.get(), m_operator, afterAssignment.get());3538 3539 generator.emitNode( result.get(), m_right); // Execute side effects first.3537 emitShortCircuitAssignment(generator, uncheckedResult.get(), m_operator, afterAssignment.get()); 3538 3539 generator.emitNode(uncheckedResult.get(), m_right); // Execute side effects first. 3540 3540 3541 3541 bool threwException = isReadOnly ? generator.emitReadOnlyExceptionIfNeeded(var) : false; … … 3545 3545 3546 3546 if (!isReadOnly) { 3547 result = generator.emitPutToScope(scope.get(), var, result.get(), ThrowIfNotFound, InitializationMode::NotInitialization);3548 generator.emitProfileType( result.get(), var, divotStart(), divotEnd());3547 generator.emitPutToScope(scope.get(), var, uncheckedResult.get(), ThrowIfNotFound, InitializationMode::NotInitialization); 3548 generator.emitProfileType(uncheckedResult.get(), var, divotStart(), divotEnd()); 3549 3549 } 3550 3550 3551 3551 generator.emitLabel(afterAssignment.get()); 3552 return generator.move( dst, result.get());3552 return generator.move(generator.finalDestination(dst, uncheckedResult.get()), uncheckedResult.get()); 3553 3553 } 3554 3554
Note:
See TracChangeset
for help on using the changeset viewer.