Ignore:
Timestamp:
Sep 27, 2011, 12:53:49 PM (14 years ago)
Author:
[email protected]
Message:

De-virtualize JSCell::getPrimitiveNumber
https://bugs.webkit.org/show_bug.cgi?id=68851

Reviewed by Darin Adler.

Changed JSCell::getPrimitiveNumber to manually handle the dispatch for
JSCells (JSObject and JSString in this case).

  • runtime/JSCell.cpp:

(JSC::JSCell::getPrimitiveNumber):

  • runtime/JSCell.h:

Removed JSNotAnObject::getPrimitiveNumber since its return value doesn't
matter and it already implements defaultValue, so JSObject::getPrimitiveNumber
can cover the case for JSNotAnObject.

  • runtime/JSNotAnObject.cpp:
  • runtime/JSNotAnObject.h:

De-virtualized JSObject::getPrimitiveNumber and JSString::getPrimitiveNumber
and changed them to be const. Also made JSString::getPrimitiveNumber public
because it needs to be called from JSCell::getPrimitiveNumber and also since it's
no longer virtual, we want people who have a more specific pointer (JSString*
instead of JSCell*) to not have to pay the cost of a virtual method call.

  • runtime/JSObject.cpp:

(JSC::JSObject::getPrimitiveNumber):

  • runtime/JSObject.h:
  • runtime/JSString.cpp:

(JSC::JSString::getPrimitiveNumber):

  • runtime/JSString.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r96131 r96143  
     12011-09-27  Mark Hahnenberg  <[email protected]>
     2
     3        De-virtualize JSCell::getPrimitiveNumber
     4        https://bugs.webkit.org/show_bug.cgi?id=68851
     5
     6        Reviewed by Darin Adler.
     7
     8        * JavaScriptCore.exp:
     9        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
     10
     11        Changed JSCell::getPrimitiveNumber to manually handle the dispatch for
     12        JSCells (JSObject and JSString in this case).
     13        * runtime/JSCell.cpp:
     14        (JSC::JSCell::getPrimitiveNumber):
     15        * runtime/JSCell.h:
     16
     17        Removed JSNotAnObject::getPrimitiveNumber since its return value doesn't
     18        matter and it already implements defaultValue, so JSObject::getPrimitiveNumber
     19        can cover the case for JSNotAnObject.
     20        * runtime/JSNotAnObject.cpp:
     21        * runtime/JSNotAnObject.h:
     22
     23        De-virtualized JSObject::getPrimitiveNumber and JSString::getPrimitiveNumber
     24        and changed them to be const.  Also made JSString::getPrimitiveNumber public
     25        because it needs to be called from JSCell::getPrimitiveNumber and also since it's
     26        no longer virtual, we want people who have a more specific pointer (JSString*
     27        instead of JSCell*) to not have to pay the cost of a virtual method call.
     28        * runtime/JSObject.cpp:
     29        (JSC::JSObject::getPrimitiveNumber):
     30        * runtime/JSObject.h:
     31        * runtime/JSString.cpp:
     32        (JSC::JSString::getPrimitiveNumber):
     33        * runtime/JSString.h:
     34
    1352011-09-27  Juan Carlos Montemayor Elosua  <[email protected]>
    236
Note: See TracChangeset for help on using the changeset viewer.