Skip to content
  • mhahnenberg@apple.com's avatar
    De-virtualize JSCell::toString · 7b72b790
    mhahnenberg@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=69677
    
    Reviewed by Sam Weinig.
    
    Source/JavaScriptCore:
    
    Removed toString from JSCallbackObject, since it is no
    longer necessary since we now implicitly add toString and valueOf
    functions to object prototypes when a convertToType callback
    is provided, which is now the standard way to override toString
    and valueOf in the JSC C API.
    * API/JSCallbackObject.h:
    * API/JSCallbackObjectFunctions.h:
    * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
    
    Removed toString from InterruptedExecutionError and
    TerminatedExecutionError and replaced it with defaultValue,
    which JSObject::toString calls.  We'll probably have to de-virtualize
    defaultValue eventually, but we'll cross that bridge when we
    come to it.
    * runtime/ExceptionHelpers.cpp:
    (JSC::InterruptedExecutionError::defaultValue):
    (JSC::TerminatedExecutionError::defaultValue):
    * runtime/ExceptionHelpers.h:
    
    Removed toString from JSNotAnObject, since its return value doesn't
    actually matter and JSObject::toString can cover it.
    * runtime/JSNotAnObject.cpp:
    * runtime/JSNotAnObject.h:
    
    De-virtualized JSCell::toString, JSObject::toString and JSString::toString.
    Added handling of all cases for JSCell to JSCell::toString.
    * runtime/JSObject.h:
    * runtime/JSString.h:
    * runtime/JSCell.cpp:
    (JSC::JSCell::toString):
    * runtime/JSCell.h:
    
    Source/JavaScriptGlue:
    
    Removed UserObjectImp::toString because it's no longer necessary since
    clients can provide their own toString callback which will in turn be
    called by JSObject::toString.
    * UserObjectImp.cpp:
    * UserObjectImp.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@97292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    7b72b790