2008-06-14 Cameron Zwarich <cwzwarich@uwaterloo.ca>
authorcwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 15 Jun 2008 05:24:21 +0000 (05:24 +0000)
committercwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 15 Jun 2008 05:24:21 +0000 (05:24 +0000)
commitf806843b9c3bfc96cf533d208398905e1aeaa098
tree0761c6770e2113f9c7ffeb15e4dd465835f45146
parentd02a7ffde88e956ecd5141512fae9c90df2c1f2c
2008-06-14  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Maciej.

        Make code generation not use a temporary for the left-hand side of an
        expression if the right-hand side is a local variable.

        * VM/CodeGenerator.cpp:
        (KJS::CodeGenerator::isLocal):
        * VM/CodeGenerator.h:
        (KJS::CodeGenerator::leftHandSideNeedsCopy):
        (KJS::CodeGenerator::emitNodeForLeftHandSide):
        * kjs/nodes.cpp:
        (KJS::ResolveNode::isPure):
        (KJS::BracketAccessorNode::emitCode):
        (KJS::AddNode::emitCode):
        (KJS::SubNode::emitCode):
        (KJS::ReadModifyResolveNode::emitCode):
        (KJS::AssignDotNode::emitCode):
        (KJS::ReadModifyDotNode::emitCode):
        (KJS::AssignBracketNode::emitCode):
        (KJS::ReadModifyBracketNode::emitCode):
        * kjs/nodes.h:
        (KJS::ExpressionNode::):
        (KJS::BooleanNode::):
        (KJS::NumberNode::):
        (KJS::StringNode::):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34555 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/VM/CodeGenerator.cpp
JavaScriptCore/VM/CodeGenerator.h
JavaScriptCore/kjs/nodes.cpp
JavaScriptCore/kjs/nodes.h