Changeset 27086 in webkit for trunk/JavaScriptCore/kjs/internal.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/internal.h

    r26912 r27086  
    5454    JSType type() const { return StringType; }
    5555
    56     JSValue *toPrimitive(ExecState *exec, JSType preferred = UnspecifiedType) const;
     56    JSValue* toPrimitive(ExecState*, JSType preferred = UnspecifiedType) const;
     57    bool getPrimitiveNumber(ExecState*, double& number) const;
    5758    bool toBoolean(ExecState *exec) const;
    5859    double toNumber(ExecState *exec) const;
     
    7273    JSType type() const { return NumberType; }
    7374
    74     JSValue *toPrimitive(ExecState *exec, JSType preferred = UnspecifiedType) const;
     75    JSValue* toPrimitive(ExecState*, JSType preferred = UnspecifiedType) const;
     76    bool getPrimitiveNumber(ExecState*, double& number) const;
    7577    bool toBoolean(ExecState *exec) const;
    7678    double toNumber(ExecState *exec) const;
Note: See TracChangeset for help on using the changeset viewer.