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


Ignore:
Timestamp:
Apr 25, 2003, 3:47:05 PM (22 years ago)
Author:
darin
Message:

Reviewed by Maciej.

  • a couple improvements that give a 6.6% speedup on iBench JavaScript
  • kjs/nodes.cpp: (ResolveNode::evaluate): Don't use evaluateReference.
  • kjs/object.cpp: (ObjectImp::get): Do the prototype work with the ValueImp, not a wrapper. Contributes a tiny bit to the speedup, but cleaner anyway. (ObjectImp::hasProperty): Same thing here.
File:
1 edited

Legend:

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

    r3745 r4191  
    222222Value ResolveNode::evaluate(ExecState *exec)
    223223{
    224   return evaluateReference(exec).getValue(exec);
     224  // This is the same as calling evaluateReference(exec).getValue(exec),
     225  // only considerably faster.
     226 
     227  ScopeChain chain = exec->context().imp()->scopeChain();
     228
     229  while (!chain.isEmpty()) {
     230    ObjectImp *o = chain.top();
     231    Value result = o->get(exec, ident);
     232    if (result.type() != UndefinedType)
     233      return result;
     234    chain.pop();
     235  }
     236
     237  return Reference(Null(), ident).getValue(exec);
    225238}
    226239
Note: See TracChangeset for help on using the changeset viewer.