Skip to content
  • mjs's avatar
    Reviewed by Oliver. · df5526f8
    mjs authored
            - fold together toPrimitive() and toNumber() conversions for 0.5% gain on SunSpider
    
            * kjs/nodes.cpp:
            (KJS::SubNode::evaluate): Subtract directly, since toPrimitive() is not
            adding any value over toNumber() here.
            (KJS::valueForReadModifyAssignment): Ditto.
            (KJS::lessThan): Use new getPrimitiveNumber() method to avoid some virtual calls
            and branches.
            (KJS::lessThanEq): Ditto.
            * JavaScriptCore.exp: Export new functions as needed.
            * kjs/value.h:
            (KJS::JSValue::toPrimitive): Fixed formatting.
            (KJS::JSValue::getPrimitiveNumber): New method - this simultaneously converts
            to number and tells you whether a toPrimitive() conversion with a Number hint
            would have given a string.
            * kjs/internal.cpp:
            (KJS::StringImp::getPrimitiveNumber): Implemented. 
            (KJS::NumberImp::getPrimitiveNumber): ditto
            (KJS::GetterSetterImp::getPrimitiveNumber): ditto
            (KJS::StringImp::toPrimitive): Fixed formatting.
            (KJS::NumberImp::toPrimitive): ditto
            (KJS::GetterSetterImp::toPrimitive): ditto
            * kjs/internal.h:
            * kjs/object.cpp:
            (KJS::JSObject::getPrimitiveNumber): Implemented.
            * kjs/object.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27086 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    df5526f8