Changeset 35224 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp
- Timestamp:
- Jul 17, 2008, 12:24:57 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/nodes.cpp
r35222 r35224 528 528 // ------------------------------ PostfixDotNode ---------------------------------- 529 529 530 RegisterID* Post IncDotNode::emitCode(CodeGenerator& generator, RegisterID* dst)530 RegisterID* PostfixDotNode::emitCode(CodeGenerator& generator, RegisterID* dst) 531 531 { 532 532 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); … … 535 535 if (dst == ignoredResult()) { 536 536 oldValue = 0; 537 generator.emitPreInc(value.get()); 537 if (m_operator == OpPlusPlus) 538 generator.emitPreInc(value.get()); 539 else 540 generator.emitPreDec(value.get()); 538 541 } else { 539 oldValue = generator.emitPostInc(generator.finalDestination(dst), value.get()); 540 } 541 generator.emitPutById(base.get(), m_ident, value.get()); 542 return oldValue; 543 } 544 545 RegisterID* PostDecDotNode::emitCode(CodeGenerator& generator, RegisterID* dst) 546 { 547 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); 548 RefPtr<RegisterID> value = generator.emitGetById(generator.newTemporary(), base.get(), m_ident); 549 RegisterID* oldValue; 550 if (dst == ignoredResult()) { 551 oldValue = 0; 552 generator.emitPreDec(value.get()); 553 } else { 554 oldValue = generator.emitPostDec(generator.finalDestination(dst), value.get()); 542 oldValue = (m_operator == OpPlusPlus) ? generator.emitPostInc(generator.finalDestination(dst), value.get()) : generator.emitPostDec(generator.finalDestination(dst), value.get()); 555 543 } 556 544 generator.emitPutById(base.get(), m_ident, value.get()); … … 694 682 // ------------------------------ PrefixDotNode ---------------------------------- 695 683 696 RegisterID* Pre IncDotNode::emitCode(CodeGenerator& generator, RegisterID* dst)684 RegisterID* PrefixDotNode::emitCode(CodeGenerator& generator, RegisterID* dst) 697 685 { 698 686 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); 699 687 RefPtr<RegisterID> propDst = generator.tempDestination(dst); 700 688 RegisterID* value = generator.emitGetById(propDst.get(), base.get(), m_ident); 701 generator.emitPreInc(value); 702 generator.emitPutById(base.get(), m_ident, value); 703 return generator.moveToDestinationIfNeeded(dst, propDst.get()); 704 } 705 706 RegisterID* PreDecDotNode::emitCode(CodeGenerator& generator, RegisterID* dst) 707 { 708 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); 709 RefPtr<RegisterID> propDst = generator.tempDestination(dst); 710 RegisterID* value = generator.emitGetById(propDst.get(), base.get(), m_ident); 711 generator.emitPreDec(value); 689 if (m_operator == OpPlusPlus) 690 generator.emitPreInc(value); 691 else 692 generator.emitPreDec(value); 712 693 generator.emitPutById(base.get(), m_ident, value); 713 694 return generator.moveToDestinationIfNeeded(dst, propDst.get());
Note:
See TracChangeset
for help on using the changeset viewer.