2007-10-28 Mark Rowe <mrowe@apple.com>
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Oct 2007 02:52:04 +0000 (02:52 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Oct 2007 02:52:04 +0000 (02:52 +0000)
        Reviewed by Maciej and Tim.

        Replace uses of isNaN and isInf with isnan and isinf, and
        remove isNaN and isInf.

        * kjs/config.h: Remove unused HAVE_'s
        * kjs/date_object.cpp:
        (KJS::DateInstance::getTime):
        (KJS::DateInstance::getUTCTime):
        (KJS::DateProtoFunc::callAsFunction):
        (KJS::DateObjectImp::construct):
        (KJS::DateObjectFuncImp::callAsFunction):
        * kjs/function.cpp:
        (KJS::GlobalFuncImp::callAsFunction):
        * kjs/math_object.cpp:
        (MathFuncImp::callAsFunction):
        * kjs/nodes2string.cpp:
        (KJS::isParserRoundTripNumber):
        * kjs/number_object.cpp:
        (NumberProtoFunc::callAsFunction):
        * kjs/operations.cpp:
        * kjs/operations.h:
        * kjs/string_object.cpp:
        (KJS::StringProtoFunc::callAsFunction):
        * kjs/ustring.cpp:
        (KJS::UString::from):
        * kjs/value.cpp:
        (KJS::JSValue::toInteger):
        (KJS::JSValue::toInt32SlowCase):
        (KJS::JSValue::toUInt32SlowCase):

2007-10-28  Mark Rowe  <mrowe@apple.com>

        Reviewed by Maciej.

        Replace uses of isNaN and isInf with isnan and isinf.

        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::setLength):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27201 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 files changed:
JavaScriptCore/ChangeLog
JavaScriptCore/kjs/config.h
JavaScriptCore/kjs/date_object.cpp
JavaScriptCore/kjs/function.cpp
JavaScriptCore/kjs/math_object.cpp
JavaScriptCore/kjs/nodes2string.cpp
JavaScriptCore/kjs/number_object.cpp
JavaScriptCore/kjs/operations.cpp
JavaScriptCore/kjs/operations.h
JavaScriptCore/kjs/string_object.cpp
JavaScriptCore/kjs/ustring.cpp
JavaScriptCore/kjs/value.cpp
WebCore/ChangeLog
WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp

index 77815699948d74b1f4bbe2b3e8c35dea3ab142e6..0b32631b11f36394a7a86c42b074e8227a7877d5 100644 (file)
@@ -1,3 +1,36 @@
+2007-10-28  Mark Rowe  <mrowe@apple.com>
+
+        Reviewed by Maciej and Tim.
+
+        Replace uses of isNaN and isInf with isnan and isinf, and
+        remove isNaN and isInf.
+
+        * kjs/config.h: Remove unused HAVE_'s.
+        * kjs/date_object.cpp:
+        (KJS::DateInstance::getTime):
+        (KJS::DateInstance::getUTCTime):
+        (KJS::DateProtoFunc::callAsFunction):
+        (KJS::DateObjectImp::construct):
+        (KJS::DateObjectFuncImp::callAsFunction):
+        * kjs/function.cpp:
+        (KJS::GlobalFuncImp::callAsFunction):
+        * kjs/math_object.cpp:
+        (MathFuncImp::callAsFunction):
+        * kjs/nodes2string.cpp:
+        (KJS::isParserRoundTripNumber):
+        * kjs/number_object.cpp:
+        (NumberProtoFunc::callAsFunction):
+        * kjs/operations.cpp:
+        * kjs/operations.h:
+        * kjs/string_object.cpp:
+        (KJS::StringProtoFunc::callAsFunction):
+        * kjs/ustring.cpp:
+        (KJS::UString::from):
+        * kjs/value.cpp:
+        (KJS::JSValue::toInteger):
+        (KJS::JSValue::toInt32SlowCase):
+        (KJS::JSValue::toUInt32SlowCase):
+
 2007-10-28  Geoffrey Garen  <ggaren@apple.com>
 
         Build fix: use the new-fangled missingSymbolMarker().
index 0809c30b594427d53c9c145c2ee2d2f02e1c0e83..18a1cb2a55d292ce7ac55a92483193ee8de856ea 100644 (file)
@@ -28,8 +28,6 @@
 #if PLATFORM(DARWIN)
 
 #define HAVE_ERRNO_H 1
-#define HAVE_FUNC_ISINF 1
-#define HAVE_FUNC_ISNAN 1
 #define HAVE_MMAP 1
 #define HAVE_MERGESORT 1
 #define HAVE_SBRK 1
@@ -49,7 +47,6 @@
 #define _CRT_RAND_S
 
 #define HAVE_FLOAT_H 1
-#define HAVE_FUNC__FINITE 1
 #define HAVE_SYS_TIMEB_H 1
 #define HAVE_VIRTUALALLOC 1
 
@@ -58,8 +55,6 @@
 /* FIXME: is this actually used or do other platforms generate their own config.h? */
 
 #define HAVE_ERRNO_H 1
-#define HAVE_FUNC_ISINF 1
-#define HAVE_FUNC_ISNAN 1
 #define HAVE_MMAP 1
 #define HAVE_SBRK 1
 #define HAVE_STRINGS_H 1
index 39b2c4a48ea915119ae34826dda742ccaa61d4ce..c1b2f6381023a97b977300b50a5e41da4afd9963 100644 (file)
@@ -323,7 +323,7 @@ DateInstance::DateInstance(JSObject *proto)
 bool DateInstance::getTime(GregorianDateTime &t, int &offset) const
 {
     double milli = internalValue()->getNumber();
-    if (isNaN(milli))
+    if (isnan(milli))
         return false;
     
     msToGregorianDateTime(milli, false, t);
@@ -334,7 +334,7 @@ bool DateInstance::getTime(GregorianDateTime &t, int &offset) const
 bool DateInstance::getUTCTime(GregorianDateTime &t) const
 {
     double milli = internalValue()->getNumber();
-    if (isNaN(milli))
+    if (isnan(milli))
         return false;
     
     msToGregorianDateTime(milli, true, t);
@@ -344,7 +344,7 @@ bool DateInstance::getUTCTime(GregorianDateTime &t) const
 bool DateInstance::getTime(double &milli, int &offset) const
 {
     milli = internalValue()->getNumber();
-    if (isNaN(milli))
+    if (isnan(milli))
         return false;
     
     GregorianDateTime t;
@@ -356,7 +356,7 @@ bool DateInstance::getTime(double &milli, int &offset) const
 bool DateInstance::getUTCTime(double &milli) const
 {
     milli = internalValue()->getNumber();
-    if (isNaN(milli))
+    if (isnan(milli))
         return false;
     
     return true;
@@ -457,7 +457,7 @@ JSValue *DateProtoFunc::callAsFunction(ExecState *exec, JSObject *thisObj, const
   UString s;
   JSValue *v = thisDateObj->internalValue();
   double milli = v->toNumber(exec);
-  if (isNaN(milli)) {
+  if (isnan(milli)) {
     switch (id) {
       case ToString:
       case ToDateString:
@@ -634,13 +634,13 @@ JSObject *DateObjectImp::construct(ExecState *exec, const List &args)
         value = primitive->toNumber(exec);
     }
   } else {
-    if (isNaN(args[0]->toNumber(exec))
-        || isNaN(args[1]->toNumber(exec))
-        || (numArgs >= 3 && isNaN(args[2]->toNumber(exec)))
-        || (numArgs >= 4 && isNaN(args[3]->toNumber(exec)))
-        || (numArgs >= 5 && isNaN(args[4]->toNumber(exec)))
-        || (numArgs >= 6 && isNaN(args[5]->toNumber(exec)))
-        || (numArgs >= 7 && isNaN(args[6]->toNumber(exec)))) {
+    if (isnan(args[0]->toNumber(exec))
+        || isnan(args[1]->toNumber(exec))
+        || (numArgs >= 3 && isnan(args[2]->toNumber(exec)))
+        || (numArgs >= 4 && isnan(args[3]->toNumber(exec)))
+        || (numArgs >= 5 && isnan(args[4]->toNumber(exec)))
+        || (numArgs >= 6 && isnan(args[5]->toNumber(exec)))
+        || (numArgs >= 7 && isnan(args[6]->toNumber(exec)))) {
       value = NaN;
     } else {
       GregorianDateTime t;
@@ -686,13 +686,13 @@ JSValue *DateObjectFuncImp::callAsFunction(ExecState* exec, JSObject*, const Lis
   }
   else { // UTC
     int n = args.size();
-    if (isNaN(args[0]->toNumber(exec))
-        || isNaN(args[1]->toNumber(exec))
-        || (n >= 3 && isNaN(args[2]->toNumber(exec)))
-        || (n >= 4 && isNaN(args[3]->toNumber(exec)))
-        || (n >= 5 && isNaN(args[4]->toNumber(exec)))
-        || (n >= 6 && isNaN(args[5]->toNumber(exec)))
-        || (n >= 7 && isNaN(args[6]->toNumber(exec)))) {
+    if (isnan(args[0]->toNumber(exec))
+        || isnan(args[1]->toNumber(exec))
+        || (n >= 3 && isnan(args[2]->toNumber(exec)))
+        || (n >= 4 && isnan(args[3]->toNumber(exec)))
+        || (n >= 5 && isnan(args[4]->toNumber(exec)))
+        || (n >= 6 && isnan(args[5]->toNumber(exec)))
+        || (n >= 7 && isnan(args[6]->toNumber(exec)))) {
       return jsNaN();
     }
 
index d1665e1018a606d6bc54a8cdf07601e89be4f66a..49aee70d20c446bddacfe7704e9f811359697aae 100644 (file)
@@ -40,6 +40,7 @@
 #include <string.h>
 #include <wtf/ASCIICType.h>
 #include <wtf/Assertions.h>
+#include <wtf/MathExtras.h>
 #include <wtf/unicode/Unicode.h>
 
 using namespace WTF;
@@ -811,11 +812,11 @@ JSValue* GlobalFuncImp::callAsFunction(ExecState* exec, JSObject* thisObj, const
     res = jsNumber(parseFloat(args[0]->toString(exec)));
     break;
   case IsNaN:
-    res = jsBoolean(isNaN(args[0]->toNumber(exec)));
+    res = jsBoolean(isnan(args[0]->toNumber(exec)));
     break;
   case IsFinite: {
     double n = args[0]->toNumber(exec);
-    res = jsBoolean(!isNaN(n) && !isInf(n));
+    res = jsBoolean(!isnan(n) && !isinf(n));
     break;
   }
   case DecodeURI:
index a9f73610ea5143d1a118973f1784b524bf524124..f852bec48f1c2aa1c588cd80914f6faec2d53443 100644 (file)
@@ -172,7 +172,7 @@ JSValue *MathFuncImp::callAsFunction(ExecState *exec, JSObject* /*thisObj*/, con
     result = -Inf;
     for ( unsigned int k = 0 ; k < argsCount ; ++k ) {
       double val = args[k]->toNumber(exec);
-      if ( isNaN( val ) )
+      if ( isnan( val ) )
       {
         result = NaN;
         break;
@@ -187,7 +187,7 @@ JSValue *MathFuncImp::callAsFunction(ExecState *exec, JSObject* /*thisObj*/, con
     result = +Inf;
     for ( unsigned int k = 0 ; k < argsCount ; ++k ) {
       double val = args[k]->toNumber(exec);
-      if ( isNaN( val ) )
+      if ( isnan( val ) )
       {
         result = NaN;
         break;
@@ -199,9 +199,9 @@ JSValue *MathFuncImp::callAsFunction(ExecState *exec, JSObject* /*thisObj*/, con
   }
   case MathObjectImp::Pow:
     // ECMA 15.8.2.1.13
-    if (isNaN(arg2))
+    if (isnan(arg2))
       result = NaN;
-    else if (isInf(arg2) && fabs(arg) == 1)
+    else if (isinf(arg2) && fabs(arg) == 1)
       result = NaN;
     else
       result = pow(arg, arg2);
index 7e3e58e7a25db8d2e941f7ef278e5edcc42b8059..8c4f86b77531680af6d05594ec74200250233e91 100644 (file)
@@ -22,7 +22,7 @@
 #include "config.h"
 #include "nodes.h"
 
-#include "operations.h" // isNaN, isInf
+#include <wtf/MathExtras.h>
 #include <wtf/StringExtras.h>
 #include <wtf/unicode/Unicode.h>
 
@@ -139,7 +139,7 @@ static const char* operatorString(Operator oper)
 static bool isParserRoundTripNumber(const UString& string)
 {
     double number = string.toDouble(false, false);
-    if (isNaN(number) || isInf(number))
+    if (isnan(number) || isinf(number))
         return false;
     return string == UString::from(number);
 }
index e21d1ce1dd9695786799c0344aa543b9934031d4..39e137e125ec399dcb63a082eeca19fde9f3fab5 100644 (file)
@@ -162,7 +162,7 @@ JSValue *NumberProtoFunc::callAsFunction(ExecState *exec, JSObject *thisObj, con
       // unless someone finds a precise rule.
       char s[2048 + 3];
       double x = v->toNumber(exec);
-      if (isNaN(x) || isInf(x))
+      if (isnan(x) || isinf(x))
         return jsString(UString::from(x));
 
       // apply algorithm on absolute value. add sign later.
@@ -213,7 +213,7 @@ JSValue *NumberProtoFunc::callAsFunction(ExecState *exec, JSObject *thisObj, con
       int f = (int)df;
       
       double x = v->toNumber(exec);
-      if (isNaN(x))
+      if (isnan(x))
           return jsString("NaN");
       
       UString s = "";
@@ -248,7 +248,7 @@ JSValue *NumberProtoFunc::callAsFunction(ExecState *exec, JSObject *thisObj, con
   case ToExponential: {
       double x = v->toNumber(exec);
       
-      if (isNaN(x) || isInf(x))
+      if (isnan(x) || isinf(x))
           return jsString(UString::from(x));
       
       JSValue *fractionDigits = args[0];
@@ -276,7 +276,7 @@ JSValue *NumberProtoFunc::callAsFunction(ExecState *exec, JSObject *thisObj, con
       int decimalPoint;
       int sign;
       
-      if (isNaN(x))
+      if (isnan(x))
           return jsString("NaN");
       
       char *result = kjs_dtoa(x, 0, 0, &decimalPoint, &sign, NULL);
@@ -342,7 +342,7 @@ JSValue *NumberProtoFunc::callAsFunction(ExecState *exec, JSObject *thisObj, con
       
       double dp = args[0]->toIntegerPreserveNaN(exec);
       double x = v->toNumber(exec);
-      if (isNaN(dp) || isNaN(x) || isInf(x))
+      if (isnan(dp) || isnan(x) || isinf(x))
           return jsString(v->toString(exec));
       
       UString s = "";
index aede0d8bb2161f3596196f2bd41a18a51169abd3..7249dbe343314e3f536d9dce4b6ccc2bbaf43d23 100644 (file)
 #include <stdio.h>
 #include <wtf/MathExtras.h>
 
-#if HAVE(FUNC_ISINF) && HAVE(IEEEFP_H)
-#include <ieeefp.h>
-#endif
-
 #if HAVE(FLOAT_H)
 #include <float.h>
 #endif
 
 namespace KJS {
-    
-#if !PLATFORM(DARWIN)
-
-// FIXME: Should probably be inlined on non-Darwin platforms too, and controlled exclusively
-// by HAVE macros rather than PLATFORM.
-
-// FIXME: Merge with isnan in MathExtras.h and remove this one entirely.
-bool isNaN(double d)
-{
-#if HAVE(FUNC_ISNAN)
-    return isnan(d);
-#elif HAVE(FLOAT_H)
-    return _isnan(d) != 0;
-#else
-    return !(d == d);
-#endif
-}
-
-// FIXME: Merge with isinf in MathExtras.h and remove this one entirely.
-bool isInf(double d)
-{
-    // FIXME: should be HAVE(_FPCLASS)
-#if PLATFORM(WIN_OS)
-    int fpClass = _fpclass(d);
-    return _FPCLASS_PINF == fpClass || _FPCLASS_NINF == fpClass;
-#elif HAVE(FUNC_ISINF)
-    return isinf(d);
-#elif HAVE(FUNC_FINITE)
-    return finite(d) == 0 && d == d;
-#elif HAVE(FUNC__FINITE)
-    return _finite(d) == 0 && d == d;
-#else
-    return false;
-#endif
-}
-
-bool isPosInf(double d)
-{
-    // FIXME: should be HAVE(_FPCLASS)
-#if PLATFORM(WIN_OS)
-    return _FPCLASS_PINF == _fpclass(d);
-#elif HAVE(FUNC_ISINF)
-    return (isinf(d) == 1);
-#elif HAVE(FUNC_FINITE)
-    return !finite(d) && d == d; // ### can we distinguish between + and - ?
-#elif HAVE(FUNC__FINITE)
-    return !_finite(d) && d == d; // ###
-#else
-    return false;
-#endif
-}
-
-bool isNegInf(double d)
-{
-    // FIXME: should be HAVE(_FPCLASS)
-#if PLATFORM(WIN_OS)
-    return _FPCLASS_NINF == _fpclass(d);
-#elif HAVE(FUNC_ISINF)
-    return (isinf(d) == -1);
-#elif HAVE(FUNC_FINITE)
-    return finite(d) == 0 && d == d; // ###
-#elif HAVE(FUNC__FINITE)
-    return _finite(d) == 0 && d == d; // ###
-#else
-    return false;
-#endif
-}
-
-#endif
 
 // ECMA 11.9.3
 bool equal(ExecState *exec, JSValue *v1, JSValue *v2)
index a3fff53b1641d021dab40be4db0558da29c957fa..5791aedaa2ded0414ef5887fe74739c26906ae73 100644 (file)
 #ifndef _KJS_OPERATIONS_H_
 #define _KJS_OPERATIONS_H_
 
-#include <math.h>
-
 namespace KJS {
 
   class ExecState;
   class JSValue;
 
-#if PLATFORM(DARWIN)
-  inline bool isNaN(double d) { return isnan(d); }
-  inline bool isInf(double d) { return isinf(d); }
-  inline bool isPosInf(double d) { return isinf(d) && d > 0; }
-  inline bool isNegInf(double d) { return isinf(d) && d < 0; }
-#else
-  bool isNaN(double d);
-  bool isInf(double d);
-  bool isPosInf(double d);
-  bool isNegInf(double d);
-#endif
-
   bool equal(ExecState *exec, JSValue *v1, JSValue *v2);
   bool strictEqual(ExecState *exec, JSValue *v1, JSValue *v2);
   int maxInt(int d1, int d2);
index cfe0a3b644b04762418d7169ad8395ca6ef460ac..d5905a65f4432095f4a6a4d63d910e10a80067e8 100644 (file)
@@ -663,9 +663,9 @@ JSValue* StringProtoFunc::callAsFunction(ExecState* exec, JSObject* thisObj, con
   case Substring: {
     double start = a0->toNumber(exec);
     double end = a1->toNumber(exec);
-    if (isNaN(start))
+    if (isnan(start))
       start = 0;
-    if (isNaN(end))
+    if (isnan(end))
       end = 0;
     if (start < 0)
       start = 0;
index 25ab64910cfd2d3e76e92801bc2b804bb937830c..abcd571bc658ad41ed659bbe3e465a698a8dfee9 100644 (file)
@@ -38,6 +38,7 @@
 #include <stdlib.h>
 #include <wtf/Assertions.h>
 #include <wtf/ASCIICType.h>
+#include <wtf/MathExtras.h>
 #include <wtf/Vector.h>
 
 #if HAVE(STRING_H)
@@ -598,7 +599,7 @@ UString UString::from(long l)
 UString UString::from(double d)
 {
   // avoid ever printing -NaN, in JS conceptually there is only one NaN value
-  if (isNaN(d))
+  if (isnan(d))
     return "NaN";
 
   char buf[80];
index 535812581175b1001cb06e38d1580cd7f3d7be3a..c0d083045992922c0ad06eaef1fb653e2f1cb34f 100644 (file)
@@ -25,7 +25,6 @@
 
 #include "error_object.h"
 #include "nodes.h"
-#include "operations.h"
 #include <stdio.h>
 #include <string.h>
 #include <wtf/MathExtras.h>
@@ -62,7 +61,7 @@ double JSValue::toInteger(ExecState *exec) const
     if (getTruncatedInt32(i))
         return i;
     double d = toNumber(exec);
-    return isNaN(d) ? 0.0 : trunc(d);
+    return isnan(d) ? 0.0 : trunc(d);
 }
 
 double JSValue::toIntegerPreserveNaN(ExecState *exec) const
@@ -81,7 +80,7 @@ int32_t JSValue::toInt32SlowCase(ExecState* exec, bool& ok) const
     if (d >= -D32 / 2 && d < D32 / 2)
         return static_cast<int32_t>(d);
 
-    if (isNaN(d) || isInf(d)) {
+    if (isnan(d) || isinf(d)) {
         ok = false;
         return 0;
     }
@@ -102,7 +101,7 @@ uint32_t JSValue::toUInt32SlowCase(ExecState* exec, bool& ok) const
     if (d >= 0.0 && d < D32)
         return static_cast<uint32_t>(d);
 
-    if (isNaN(d) || isInf(d)) {
+    if (isnan(d) || isinf(d)) {
         ok = false;
         return 0;
     }
index afc60a328ce54b78cf189057682da5f40e6520cd..1151e68a185fb7e7ed5b1975aa96e9121ec4287e 100644 (file)
@@ -1,3 +1,12 @@
+2007-10-28  Mark Rowe  <mrowe@apple.com>
+
+        Reviewed by Maciej.
+
+        Replace uses of isNaN and isInf with isnan and isinf.
+
+        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
+        (WebCore::JSHTMLOptionsCollection::setLength):
+
 2007-10-28  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Mark.
index 63df444c2068ef22f6e20e2bb2ab160cb6685506..2e84fca4f8665fc65ad0d464c731e557a973bb47 100644 (file)
@@ -28,7 +28,7 @@
 #include "JSHTMLOptionElement.h"
 #include "JSHTMLSelectElementCustom.h"
 
-#include <kjs/operations.h>
+#include <wtf/MathExtras.h>
 
 using namespace KJS;
 
@@ -46,7 +46,7 @@ void JSHTMLOptionsCollection::setLength(ExecState* exec, JSValue* value)
     ExceptionCode ec = 0;
     unsigned newLength = 0;
     double lengthValue = value->toNumber(exec);
-    if (!isNaN(lengthValue) && !isInf(lengthValue)) {
+    if (!isnan(lengthValue) && !isinf(lengthValue)) {
         if (lengthValue < 0.0)
             ec = INDEX_SIZE_ERR;
         else if (lengthValue > static_cast<double>(UINT_MAX))