Ignore:
Timestamp:
Jun 10, 2011, 7:03:00 PM (14 years ago)
Author:
[email protected]
Message:

https://bugs.webkit.org/show_bug.cgi?id=16777
Eliminate JSC::NaN and JSC::Inf

Reviewed by Sam Weinig.

There's no good reason for -K-J-S- JSC to have its own NAN and infinity constants.
The ones in std::numeric_limits are perfectly good.

Remove JSC::Inf, JSC::NaN, switch some cases of (isnan
isinf) to !isfinite.

Source/JavaScriptCore:

  • API/JSCallbackObjectFunctions.h:

(JSC::::toNumber):

  • API/JSValueRef.cpp:

(JSValueMakeNumber):
(JSValueToNumber):

(JSC::CachedTranscendentalFunction::initialize):

  • runtime/DateConstructor.cpp:

(JSC::constructDate):

  • runtime/DateInstanceCache.h:

(JSC::DateInstanceData::DateInstanceData):
(JSC::DateInstanceCache::reset):

  • runtime/JSCell.cpp:
  • runtime/JSCell.h:

(JSC::JSCell::JSValue::getPrimitiveNumber):
(JSC::JSCell::JSValue::toNumber):

  • runtime/JSGlobalData.cpp:

(JSC::JSGlobalData::JSGlobalData):
(JSC::JSGlobalData::resetDateCache):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reset):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncParseInt):
(JSC::globalFuncIsFinite):

  • runtime/JSNotAnObject.cpp:

(JSC::JSNotAnObject::toNumber):

  • runtime/JSValue.cpp:
  • runtime/JSValue.h:
  • runtime/JSValueInlineMethods.h:

(JSC::jsNaN):

  • runtime/MathObject.cpp:

(JSC::mathProtoFuncMax):
(JSC::mathProtoFuncMin):

  • runtime/NumberConstructor.cpp:

(JSC::numberConstructorNegInfinity):
(JSC::numberConstructorPosInfinity):

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):
(JSC::numberProtoFuncToString):

  • runtime/UString.cpp:
  • wtf/DecimalNumber.h:

(WTF::DecimalNumber::DecimalNumber):

  • wtf/dtoa.cpp:

(WTF::dtoa):

Source/WebCore:

  • bindings/js/JSDataViewCustom.cpp:

(WebCore::getDataViewMember):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp

    r86727 r88587  
    4949
    5050namespace JSC {
     51
     52#define NaN std::numeric_limits<double>::quiet_NaN()
     53#define Inf std::numeric_limits<double>::infinity()
    5154
    5255static JSValue encode(ExecState* exec, const char* doNotEscape)
     
    473476        if (isfinite(d))
    474477            return JSValue::encode(jsNumber((d > 0) ? floor(d) : ceil(d)));
    475         if (isnan(d) || isinf(d))
    476             return JSValue::encode(jsNaN());
    477         return JSValue::encode(jsNumber(0));
     478        return JSValue::encode(jsNaN());
    478479    }
    479480
     
    494495{
    495496    double n = exec->argument(0).toNumber(exec);
    496     return JSValue::encode(jsBoolean(!isnan(n) && !isinf(n)));
     497    return JSValue::encode(jsBoolean(isfinite(n)));
    497498}
    498499
Note: See TracChangeset for help on using the changeset viewer.