Changeset 27126 in webkit for trunk/JavaScriptCore/ChangeLog


Ignore:
Timestamp:
Oct 26, 2007, 3:43:03 PM (18 years ago)
Author:
ggaren
Message:

Reviewed by Maciej Stachowiak.


Switched ActivationImp to using a symbol table. For now, though, all
clients take the slow path.


Net .6% speedup on SunSpider.


Slowdowns:

  • ActivationImp now mallocs in its constructor
  • Local variable hits use an extra level of indirection to retrieve data
  • Local variable misses do two lookups

Speedups:

  • Fast initialization of local variables upon function entry


  • kjs/function.cpp: (KJS::ActivationImp::ActivationImp): Malloc a private structure to hold data that won't fit in a JSCell. (KJS::ActivationImp::argumentsGetter): Use slow symbol table path for lookup. (KJS::ActivationImp::getOwnPropertySlot): ditto (KJS::ActivationImp::deleteProperty): ditto (KJS::ActivationImp::put): ditto (KJS::ActivationImp::createArgumentsObject): ditto

(KJS::ActivationImp::mark): Call JSObject::mark first so that one of
our properties doesn't try to recursively mark us. (This caused a crash
in earlier testing. Not sure why we haven't run into it before.)

  • kjs/nodes.cpp: Functions now build a symbol table the first time they're called. (KJS::VarDeclNode::evaluate): (KJS::FunctionBodyNode::FunctionBodyNode): (KJS::FunctionBodyNode::initializeSymbolTable): (KJS::FunctionBodyNode::processDeclarations): (KJS::FunctionBodyNode::processDeclarationsForFunctionCode): (KJS::FunctionBodyNode::processDeclarationsForProgramCode):
  • kjs/nodes.h: (KJS::FunctionBodyNode::symbolTable):
  • wtf/Forward.h: Added Vector.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r27124 r27126  
     12007-10-26  Geoffrey Garen  <[email protected]>
     2
     3        Reviewed by Maciej Stachowiak.
     4       
     5        Switched ActivationImp to using a symbol table. For now, though, all
     6        clients take the slow path.
     7       
     8        Net .6% speedup on SunSpider.
     9       
     10        Slowdowns:
     11            - ActivationImp now mallocs in its constructor
     12            - Local variable hits use an extra level of indirection to retrieve
     13            data
     14            - Local variable misses do two lookups
     15
     16        Speedups:
     17            - Fast initialization of local variables upon function entry
     18
     19        * JavaScriptCore.xcodeproj/project.pbxproj: Added SymbolTable.h
     20       
     21        * kjs/function.cpp:
     22        (KJS::ActivationImp::ActivationImp): Malloc a private structure to hold
     23        data that won't fit in a JSCell.
     24        (KJS::ActivationImp::argumentsGetter): Use slow symbol table path for
     25        lookup.
     26        (KJS::ActivationImp::getOwnPropertySlot): ditto
     27        (KJS::ActivationImp::deleteProperty): ditto
     28        (KJS::ActivationImp::put): ditto
     29        (KJS::ActivationImp::createArgumentsObject): ditto
     30
     31        (KJS::ActivationImp::mark): Call JSObject::mark first so that one of
     32        our properties doesn't try to recursively mark us. (This caused a crash
     33        in earlier testing. Not sure why we haven't run into it before.)
     34
     35        * kjs/nodes.cpp: Functions now build a symbol table the first time
     36        they're called.
     37        (KJS::VarDeclNode::evaluate):
     38        (KJS::FunctionBodyNode::FunctionBodyNode):
     39        (KJS::FunctionBodyNode::initializeSymbolTable):
     40        (KJS::FunctionBodyNode::processDeclarations):
     41        (KJS::FunctionBodyNode::processDeclarationsForFunctionCode):
     42        (KJS::FunctionBodyNode::processDeclarationsForProgramCode):
     43
     44        * kjs/nodes.h:
     45        (KJS::FunctionBodyNode::symbolTable):
     46
     47        * wtf/Forward.h: Added Vector.
     48
    1492007-10-26  Kevin McCullough  <[email protected]>
    250
Note: See TracChangeset for help on using the changeset viewer.