Index: kjs/nodes.cpp =================================================================== --- kjs/nodes.cpp (revision 33029) +++ kjs/nodes.cpp (working copy) @@ -4344,7 +4344,8 @@ found: RegisterID* AssignDotNode::emitCode(CodeGenerator& generator, RegisterID* dst) { - RefPtr base = generator.emitNode(m_base.get()); + RefPtr base = generator.newTemporary(); + generator.emitNode(base.get(), m_base.get()); RegisterID* value = generator.emitNode(dst, m_right.get()); return generator.emitPutById(base.get(), m_ident, value); } @@ -4424,7 +4425,8 @@ JSValue* AssignErrorNode::evaluate(OldIn RegisterID* AssignBracketNode::emitCode(CodeGenerator& generator, RegisterID* dst) { - RefPtr base = generator.emitNode(m_base.get()); + RefPtr base = generator.newTemporary(); + generator.emitNode(base.get(), m_base.get()); RefPtr property = generator.emitNode(m_subscript.get()); RegisterID* value = generator.emitNode(dst, m_right.get()); return generator.emitPutByVal(base.get(), property.get(), value);