Ignore:
Timestamp:
Nov 5, 2007, 1:27:15 PM (18 years ago)
Author:
ggaren
Message:

JavaScriptCore:

Reviewed by Darin Adler.


http://bugs.webkit.org/show_bug.cgi?id=15835

Switched List implementation from a custom heap allocator to an inline
Vector, for a disappointing .5% SunSpider speedup.


Also renamed List::slice to List::getSlice because "get" is the
conventional prefix for functions returning a value through an out
parameter.

  • kjs/array_object.cpp: (KJS::ArrayProtoFunc::callAsFunction): Removed some redundant function calls and memory accesses.
  • kjs/bool_object.cpp: (BooleanObjectImp::construct): Removed questionable use of iterator.
  • kjs/list.cpp:
  • kjs/list.h: New List class, implemented in terms of Vector. Two interesting differences:
    1. The inline capacity is 8, not 5. Many of the Lists constructed during a SunSpider run are larger than 5; almost none are larger than 8.
  1. The growth factor is 4, not 2. Since we can guarantee that Lists aren't long-lived, we can grow them more aggressively, to avoid excessive copying.
  • kjs/regexp_object.cpp: (RegExpObjectImp::construct): Removed redundant function calls.
  • kjs/string_object.cpp: (KJS::StringObjectImp::construct): Removed questionable use of iterator.
  • wtf/Vector.h: (WTF::::uncheckedAppend): Added a fast, unchecked version of append.

WebCore:

Reviewed by Darin Adler.


http://bugs.webkit.org/show_bug.cgi?id=15835

Small adaptations to new KJS::List class.

  • bindings/js/kjs_window.cpp: (KJS::WindowFunc::callAsFunction): (KJS::ScheduledAction::ScheduledAction):

WebKit:

Reviewed by Darin Adler.


http://bugs.webkit.org/show_bug.cgi?id=15835

Small adaptations to new KJS::List class.

  • ForwardingHeaders/kjs/value.h: Added.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/JavaScriptCore.exp

    r27419 r27448  
    124124__ZN3KJS11Interpreter8evaluateERKNS_7UStringEiS3_PNS_7JSValueE
    125125__ZN3KJS11InterpreterC1EPNS_14JSGlobalObjectE
     126__ZN3KJS11InterpreterC1EPNS_14JSGlobalObjectE
    126127__ZN3KJS11InterpreterC1Ev
    127128__ZN3KJS11InterpreterC2EPNS_14JSGlobalObjectE
     
    158159__ZN3KJS19InternalFunctionImp4infoE
    159160__ZN3KJS19InternalFunctionImpC2EPNS_17FunctionPrototypeERKNS_10IdentifierE
    160 __ZN3KJS4List6appendEPNS_7JSValueE
    161 __ZN3KJS4List7releaseEv
    162 __ZN3KJS4ListC1Ev
     161__ZN3KJS4List15expandAndAppendEPNS_7JSValueE
     162__ZN3KJS4List7markSetEv
    163163__ZN3KJS6JSCell9getObjectEv
    164164__ZN3KJS6JSCellnwEm
     
    242242__ZNK3KJS19InternalFunctionImp14implementsCallEv
    243243__ZNK3KJS19InternalFunctionImp21implementsHasInstanceEv
    244 __ZNK3KJS4List2atEi
    245 __ZNK3KJS4List5sliceEiRS0_
     244__ZNK3KJS4List8getSliceEiRS0_
    246245__ZNK3KJS6JSCell17getTruncatedInt32ERi
     246__ZNK3KJS6JSCell17getTruncatedInt32ERi
     247__ZNK3KJS6JSCell18getTruncatedUInt32ERj
    247248__ZNK3KJS6JSCell18getTruncatedUInt32ERj
    248249__ZNK3KJS6JSCell9getNumberERd
     
    266267__ZNK3KJS8JSObject12defaultValueEPNS_9ExecStateENS_6JSTypeE
    267268__ZNK3KJS8JSObject14implementsCallEv
     269__ZNK3KJS8JSObject18getPrimitiveNumberEPNS_9ExecStateERd
    268270__ZNK3KJS8JSObject18getPrimitiveNumberEPNS_9ExecStateERd
    269271__ZNK3KJS8JSObject19implementsConstructEv
Note: See TracChangeset for help on using the changeset viewer.