Ignore:
Timestamp:
Jun 14, 2008, 10:24:21 PM (17 years ago)
Author:
[email protected]
Message:

2008-06-14 Cameron Zwarich <[email protected]>

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::):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/CodeGenerator.cpp

    r34541 r34555  
    344344}
    345345
     346bool CodeGenerator::isLocal(const Identifier& ident)
     347{
     348    if (ident == m_propertyNames->thisIdentifier)
     349        return true;
     350   
     351    return shouldOptimizeLocals() && symbolTable().contains(ident.ustring().rep());
     352}
     353
    346354bool CodeGenerator::isLocalConstant(const Identifier& ident)
    347355{
Note: See TracChangeset for help on using the changeset viewer.