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


Ignore:
Timestamp:
Aug 16, 2002, 12:07:48 PM (23 years ago)
Author:
mjs
Message:

Final step of the Reference change. Completely separate Reference
from Value, and eliminate ReferenceImp.

18% speedup on cvs-js-performance test.

  • kjs/internal.cpp, kjs/internal.h: Remove ReferenceImp.
  • kjs/nodes.cpp: (Node::evaluateReference): Use Reference::makeValueReference(), not ConstReference.
  • kjs/reference.cpp: (Reference::Reference): New implementation, handles both regular and value references. (Reference::makeValueReference): Incorporate functionality of ConstReference into this class. (Reference::getBase): New implementation (incorporates error vase for value references). (Reference::getPropertyName): New implementation (incorporates error case for value references). (Reference::putValue): New implementation (incorporates error case for value references). (Reference::deleteValue): New implementation (incorporates error case for value references). (Reference::getValue): New implementation (incorporates special case for value references). (Reference::isMutable): New implementation.
  • kjs/reference.h: New implementation that merges ReferenceImp into the stack object.
  • kjs/value.h, kjs/value.cpp: Removed all reference-related method.
File:
1 edited

Legend:

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

    r1841 r1850  
    6969#define KJS_CHECKEXCEPTIONREFERENCE \
    7070  if (exec->hadException()) \
    71     return ConstReference(UndefinedImp::staticUndefined);; \
     71    return Reference::makeValueReference(Undefined());; \
    7272  if (Collector::outOfMemory()) \
    73     return ConstReference(UndefinedImp::staticUndefined); // will be picked up by KJS_CHECKEXCEPTION
     73    return Reference::makeValueReference(Undefined()); // will be picked up by KJS_CHECKEXCEPTION
    7474
    7575#define KJS_CHECKEXCEPTIONLIST \
     
    106106  Value v = evaluate(exec);
    107107  KJS_CHECKEXCEPTIONREFERENCE
    108   return ConstReference(v.imp());
     108  return Reference::makeValueReference(v);
    109109}
    110110
Note: See TracChangeset for help on using the changeset viewer.