Changeset 36417 in webkit for trunk/JavaScriptCore/ChangeLog


Ignore:
Timestamp:
Sep 14, 2008, 7:13:10 PM (17 years ago)
Author:
[email protected]
Message:

2008-09-14 Maciej Stachowiak <[email protected]>

Reviewed by Cameron Zwarich.


  • split the "prototype" lookup for hasInstance into opcode stream so it can be cached


~5% speedup on v8 earley-boyer test

  • API/JSCallbackObject.h: Add a parameter for the pre-looked-up prototype.
  • API/JSCallbackObjectFunctions.h: (JSC::::hasInstance): Ditto.
  • API/JSValueRef.cpp: (JSValueIsInstanceOfConstructor): Look up and pass in prototype.
  • JavaScriptCore.exp:
  • VM/CTI.cpp: (JSC::CTI::privateCompileMainPass): Pass along prototype.
  • VM/CodeBlock.cpp: (JSC::CodeBlock::dump): Print third arg.
  • VM/CodeGenerator.cpp: (JSC::CodeGenerator::emitInstanceOf): Implement this, now that there is a third argument.
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (JSC::Machine::privateExecute): Pass along the prototype. (JSC::Machine::cti_op_instanceof): ditto
  • kjs/JSObject.cpp: (JSC::JSObject::hasInstance): Expect to get a pre-looked-up prototype.
  • kjs/JSObject.h:
  • kjs/nodes.cpp: (JSC::InstanceOfNode::emitCode): Emit a get_by_id of the prototype property and pass that register to instanceof.
  • kjs/nodes.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r36413 r36417  
     12008-09-14  Maciej Stachowiak  <[email protected]>
     2
     3        Reviewed by Cameron Zwarich.
     4       
     5        - split the "prototype" lookup for hasInstance into opcode stream so it can be cached
     6       
     7        ~5% speedup on v8 earley-boyer test
     8
     9        * API/JSCallbackObject.h: Add a parameter for the pre-looked-up prototype.
     10        * API/JSCallbackObjectFunctions.h:
     11        (JSC::::hasInstance): Ditto.
     12        * API/JSValueRef.cpp:
     13        (JSValueIsInstanceOfConstructor): Look up and pass in prototype.
     14        * JavaScriptCore.exp:
     15        * VM/CTI.cpp:
     16        (JSC::CTI::privateCompileMainPass): Pass along prototype.
     17        * VM/CodeBlock.cpp:
     18        (JSC::CodeBlock::dump): Print third arg.
     19        * VM/CodeGenerator.cpp:
     20        (JSC::CodeGenerator::emitInstanceOf): Implement this, now that there
     21        is a third argument.
     22        * VM/CodeGenerator.h:
     23        * VM/Machine.cpp:
     24        (JSC::Machine::privateExecute): Pass along the prototype.
     25        (JSC::Machine::cti_op_instanceof): ditto
     26        * kjs/JSObject.cpp:
     27        (JSC::JSObject::hasInstance): Expect to get a pre-looked-up prototype.
     28        * kjs/JSObject.h:
     29        * kjs/nodes.cpp:
     30        (JSC::InstanceOfNode::emitCode): Emit a get_by_id of the prototype
     31        property and pass that register to instanceof.
     32        * kjs/nodes.h:
     33
    1342008-09-14  Gavin Barraclough  <[email protected]>
    235
Note: See TracChangeset for help on using the changeset viewer.