Changeset 33983 in webkit for trunk/JavaScriptCore/VM


Ignore:
Timestamp:
May 21, 2008, 7:03:39 PM (17 years ago)
Author:
[email protected]
Message:

2008-05-21 Maciej Stachowiak <[email protected]>

Reviewed by Darin.


  • save a hash lookup wne writing to global properties 0.3% speedup on SunSpider, 7% on bitops-bitwise-and
  • VM/Machine.cpp: (KJS::resolveBase): Check for being a the end of the scope chain before hash lookup.
File:
1 edited

Legend:

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

    r33979 r33983  
    260260
    261261    ScopeChainIterator iter = scopeChain->begin();
     262    ScopeChainIterator next = iter;
     263    ++next;
    262264    ScopeChainIterator end = scopeChain->end();
    263265    ASSERT(iter != end);
     
    266268    Identifier& ident = codeBlock->identifiers[property];
    267269    JSObject* base;
    268     do {
     270    while (true) {
    269271        base = *iter;
    270         if (base->getPropertySlot(exec, ident, slot)) {
     272        if (next == end || base->getPropertySlot(exec, ident, slot)) {
    271273            r[dst].u.jsValue = base;
    272274            return;
    273275        }
    274     } while (++iter != end);
    275 
    276     r[dst].u.jsValue = base;
     276        iter = next;
     277        ++next;
     278    }
    277279}
    278280
Note: See TracChangeset for help on using the changeset viewer.