Changeset 37763 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp


Ignore:
Timestamp:
Oct 21, 2008, 2:29:31 PM (17 years ago)
Author:
Darin Adler
Message:

2008-10-21 Darin Adler <Darin Adler>

Reviewed by Maciej Stachowiak.

  • convert post-increment to pre-increment in a couple more places for speed

Speeds up V8 benchmarks a little on most computers. (But, strangely, slows
them down a little on my computer.)

  • kjs/nodes.cpp: (JSC::statementListEmitCode): Removed default argument, since we always want to specify this explicitly. (JSC::ForNode::emitCode): Tolerate ignoredResult() as the dst -- means the same thing as 0. (JSC::ReturnNode::emitCode): Ditto. (JSC::ThrowNode::emitCode): Ditto. (JSC::FunctionBodyNode::emitCode): Pass ignoredResult() so that we know we don't have to compute the result of function statements.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/nodes.cpp

    r37681 r37763  
    10581058// ------------------------------ Helper functions for handling Vectors of StatementNode -------------------------------
    10591059
    1060 static inline RegisterID* statementListEmitCode(StatementVector& statements, CodeGenerator& generator, RegisterID* dst = 0)
     1060static inline RegisterID* statementListEmitCode(StatementVector& statements, CodeGenerator& generator, RegisterID* dst)
    10611061{
    10621062    StatementVector::iterator end = statements.end();
     
    12281228RegisterID* ForNode::emitCode(CodeGenerator& generator, RegisterID* dst)
    12291229{
     1230    if (dst == ignoredResult())
     1231        dst = 0;
     1232
    12301233    generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine());
    12311234
     
    14081411    if (generator.codeType() != FunctionCode)
    14091412        return emitThrowError(generator, SyntaxError, "Invalid return statement.");
    1410        
     1413
     1414    if (dst == ignoredResult())
     1415        dst = 0;
    14111416    RegisterID* r0 = m_value ? generator.emitNode(dst, m_value.get()) : generator.emitLoad(dst, jsUndefined());
    14121417    if (generator.scopeDepth()) {
     
    16131618RegisterID* ThrowNode::emitCode(CodeGenerator& generator, RegisterID* dst)
    16141619{
     1620    if (dst == ignoredResult())
     1621        dst = 0;
    16151622    RefPtr<RegisterID> expr = generator.emitNode(dst, m_expr.get());
    16161623    generator.emitExpressionInfo(m_divot, m_startOffset, m_endOffset);
     
    18091816{
    18101817    generator.emitDebugHook(DidEnterCallFrame, firstLine(), lastLine());
    1811     statementListEmitCode(m_children, generator);
     1818    statementListEmitCode(m_children, generator, ignoredResult());
    18121819    if (!m_children.size() || !m_children.last()->isReturnNode()) {
    18131820        RegisterID* r0 = generator.emitLoad(0, jsUndefined());
Note: See TracChangeset for help on using the changeset viewer.