| Paste number 60566: | Patch for olliej |
| Pasted by: | cpst |
| 5 days, 22 hours ago | |
| #webkit | Context in IRC logs | |
| Paste contents: |
| Index: kjs/nodes.cpp =================================================================== --- kjs/nodes.cpp (revision 33029) +++ kjs/nodes.cpp (working copy) @@ -4345,8 +4345,10 @@ found: RegisterID* AssignDotNode::emitCode(CodeGenerator& generator, RegisterID* dst) { RefPtr<RegisterID> base = generator.emitNode(m_base.get()); - RegisterID* value = generator.emitNode(dst, m_right.get()); - return generator.emitPutById(base.get(), m_ident, value); + RefPtr<RegisterID> tempDst = generator.tempDestination(dst); + generator.emitNode(tempDst.get(), m_right.get()); + generator.emitPutById(base.get(), m_ident, tempDst.get()); + return generator.moveToDestinationIfNeeded(dst, tempDst.get()); } void AssignDotNode::optimizeVariableAccess(OldInterpreterExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) @@ -4426,8 +4428,10 @@ RegisterID* AssignBracketNode::emitCode( { RefPtr<RegisterID> base = generator.emitNode(m_base.get()); RefPtr<RegisterID> property = generator.emitNode(m_subscript.get()); - RegisterID* value = generator.emitNode(dst, m_right.get()); - return generator.emitPutByVal(base.get(), property.get(), value); + RefPtr<RegisterID> tempDst = generator.tempDestination(dst); + generator.emitNode(tempDst.get(), m_right.get()); + generator.emitPutByVal(base.get(), property.get(), tempDst.get()); + return generator.moveToDestinationIfNeeded(dst, tempDst.get()); } void AssignBracketNode::optimizeVariableAccess(OldInterpreterExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) |
This paste has no annotations.