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/function.cpp

    r2779 r2783  
    319319// ECMA 10.1.8
    320320ArgumentsImp::ArgumentsImp(ExecState *exec, FunctionImp *func, const List &args)
    321   : ObjectImp(exec->interpreter()->builtinObjectPrototype())
     321  : ArrayInstanceImp(exec->interpreter()->builtinObjectPrototype().imp(), args)
    322322{
    323323  Value protect(this);
    324   put(exec,calleePropertyName, Object(func), DontEnum);
    325   put(exec,lengthPropertyName, Number(args.size()), DontEnum);
    326   if (!args.isEmpty()) {
    327     ListIterator arg = args.begin();
    328     for (int i = 0; arg != args.end(); arg++, i++) {
    329       put(exec,i, *arg, DontEnum);
    330     }
    331   }
     324  putDirect(calleePropertyName, func, DontEnum);
    332325}
    333326
     
    338331// ECMA 10.1.6
    339332ActivationImp::ActivationImp(ExecState *exec, FunctionImp *f, const List &args)
    340   : _function(f)
     333  : _function(f), _arguments(args)
    341334{
    342335  Value protect(this);
    343   arguments = new ArgumentsImp(exec,f, args);
    344   arguments->setGcAllowed();
    345   put(exec, argumentsPropertyName, Object(arguments), Internal|DontDelete);
     336  _argumentsObject = new ArgumentsImp(exec, f, args);
     337  putDirect(argumentsPropertyName, _argumentsObject, Internal|DontDelete);
    346338}
    347339
     
    353345{
    354346  Value protect(this);
    355   put(exec,lengthPropertyName,Number(len),DontDelete|ReadOnly|DontEnum);
     347  putDirect(lengthPropertyName, len, DontDelete|ReadOnly|DontEnum);
    356348}
    357349
Note: See TracChangeset for help on using the changeset viewer.