Ignore:
Timestamp:
Nov 20, 2002, 1:12:14 PM (23 years ago)
Author:
darin
Message:
  • decrease ref/deref -- 5% speedup in iBench
  • JavaScriptCore.pbproj/project.pbxproj: Added array_instance.h
  • kjs/array_instance.h: Added so it can be shared by function.h.
  • kjs/array_object.cpp:
  • kjs/array_object.h:
  • kjs/bool_object.cpp:
  • kjs/bool_object.h:
  • kjs/collector.cpp:
  • kjs/date_object.cpp:
  • kjs/date_object.h:
  • kjs/error_object.cpp:
  • kjs/function.cpp:
  • kjs/function.h:
  • kjs/function_object.cpp:
  • kjs/internal.cpp:
  • kjs/internal.h:
  • kjs/math_object.cpp:
  • kjs/nodes.cpp:
  • kjs/number_object.cpp:
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/object_object.cpp:
  • kjs/property_map.cpp:
  • kjs/reference.cpp:
  • kjs/reference.h:
  • kjs/regexp_object.cpp:
  • kjs/string_object.cpp:
  • kjs/string_object.h:
  • kjs/value.cpp:
  • kjs/value.h: Switched lots of interfaces so they don't require ref/deref.
File:
1 edited

Legend:

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

    r2760 r2783  
    222222// ------------------------------ NumberImp ------------------------------------
    223223
     224NumberImp *NumberImp::staticNaN;
     225
     226ValueImp *NumberImp::create(int i)
     227{
     228    if (SimpleNumber::fits(i))
     229        return SimpleNumber::make(i);
     230    NumberImp *imp = new NumberImp(static_cast<double>(i));
     231    imp->setGcAllowedFast();
     232    return imp;
     233}
     234
     235ValueImp *NumberImp::create(double d)
     236{
     237    if (SimpleNumber::fits(d))
     238        return SimpleNumber::make((int)d);
     239    if (isNaN(d))
     240        return staticNaN;
     241    NumberImp *imp = new NumberImp(d);
     242    imp->setGcAllowedFast();
     243    return imp;
     244}
     245
    224246Value NumberImp::toPrimitive(ExecState *, Type) const
    225247{
     
    453475  BooleanImp::staticFalse = new BooleanImp(false);
    454476  BooleanImp::staticFalse->ref();
     477  NumberImp::staticNaN = new NumberImp(NaN);
     478  NumberImp::staticNaN->ref();
    455479}
    456480
     
    470494  BooleanImp::staticFalse->setGcAllowed();
    471495  BooleanImp::staticFalse = 0L;
     496  NumberImp::staticNaN->deref();
     497  NumberImp::staticNaN->setGcAllowed();
     498  NumberImp::staticNaN = 0;
    472499}
    473500
     
    787814
    788815InternalFunctionImp::InternalFunctionImp(FunctionPrototypeImp *funcProto)
    789   : ObjectImp(Object(funcProto))
     816  : ObjectImp(funcProto)
    790817{
    791818}
Note: See TracChangeset for help on using the changeset viewer.