Changeset 27086 in webkit for trunk/JavaScriptCore/kjs/object.h


Ignore:
Timestamp:
Oct 25, 2007, 8:58:18 PM (18 years ago)
Author:
mjs
Message:

Reviewed by Oliver.

  • 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:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/object.h

    r27022 r27086  
    8484    GetterSetterImp() : getter(0), setter(0) { }
    8585     
    86     virtual JSValue *toPrimitive(ExecState *exec, JSType preferred = UnspecifiedType) const;
     86    virtual JSValue* toPrimitive(ExecState*, JSType preferred = UnspecifiedType) const;
     87    virtual bool getPrimitiveNumber(ExecState*, double& number) const;
    8788    virtual bool toBoolean(ExecState *exec) const;
    8889    virtual double toNumber(ExecState *exec) const;
     
    417418    virtual void getPropertyNames(ExecState*, PropertyNameArray&);
    418419
    419     virtual JSValue *toPrimitive(ExecState *exec, JSType preferredType = UnspecifiedType) const;
     420    virtual JSValue* toPrimitive(ExecState*, JSType preferredType = UnspecifiedType) const;
     421    virtual bool getPrimitiveNumber(ExecState*, double& number) const;
    420422    virtual bool toBoolean(ExecState *exec) const;
    421423    virtual double toNumber(ExecState *exec) const;
Note: See TracChangeset for help on using the changeset viewer.