Stop placing std::isfinite and std::signbit inside the global scope
authorzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 18 Feb 2013 17:13:23 +0000 (17:13 +0000)
committerzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 18 Feb 2013 17:13:23 +0000 (17:13 +0000)
https://bugs.webkit.org/show_bug.cgi?id=109817

Reviewed by Darin Adler.

Prefix calls to the isfinite and signbit methods with std:: as the two
methods are no longer being imported into the global scope.

Source/JavaScriptCore:

* assembler/MacroAssembler.h:
(JSC::MacroAssembler::shouldBlindDouble):
* offlineasm/cloop.rb:
* runtime/BigInteger.h:
(JSC::BigInteger::BigInteger):
* runtime/DateConstructor.cpp:
(JSC::constructDate):
* runtime/DatePrototype.cpp:
(JSC::fillStructuresUsingTimeArgs):
(JSC::fillStructuresUsingDateArgs):
(JSC::dateProtoFuncToISOString):
(JSC::dateProtoFuncSetYear):
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::JSValue):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncIsFinite):
* runtime/JSONObject.cpp:
(JSC::Stringifier::appendStringifiedValue):
* runtime/MathObject.cpp:
(JSC::mathProtoFuncMax): Also include an opportunistic style fix.
(JSC::mathProtoFuncMin): Ditto.
* runtime/NumberPrototype.cpp:
(JSC::toStringWithRadix):
(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):
(JSC::numberProtoFuncToString):
* runtime/Uint16WithFraction.h:
(JSC::Uint16WithFraction::Uint16WithFraction):

Source/WebCore:

No new tests as there's no change in functionality.

* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsDateOrNull):
* bindings/js/JSDOMBinding.h:
(WebCore::finiteInt32Value):
* bindings/v8/V8Binding.h:
(WebCore::v8DateOrNull):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::parseToNumber):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValueAsNumber):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::setMin):
(WebCore::HTMLMeterElement::setMax):
(WebCore::HTMLMeterElement::setValue):
(WebCore::HTMLMeterElement::setLow):
(WebCore::HTMLMeterElement::setHigh):
(WebCore::HTMLMeterElement::setOptimum):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::value):
(WebCore::HTMLProgressElement::setValue):
(WebCore::HTMLProgressElement::max):
(WebCore::HTMLProgressElement::setMax):
* html/MonthInputType.cpp:
(WebCore::MonthInputType::valueAsDate):
(WebCore::MonthInputType::defaultValueForStepUp):
(WebCore::MonthInputType::parseToNumber):
* html/NumberInputType.cpp:
(WebCore::NumberInputType::typeMismatchFor):
(WebCore::NumberInputType::sanitizeValue):
(WebCore::NumberInputType::hasBadInput):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::typeMismatchFor):
* html/TimeInputType.cpp:
(WebCore::TimeInputType::defaultValueForStepUp):
* html/canvas/CanvasPathMethods.cpp:
(WebCore::CanvasPathMethods::moveTo):
(WebCore::CanvasPathMethods::lineTo):
(WebCore::CanvasPathMethods::quadraticCurveTo):
(WebCore::CanvasPathMethods::bezierCurveTo):
(WebCore::CanvasPathMethods::arcTo):
(WebCore::CanvasPathMethods::arc):
(WebCore::CanvasPathMethods::rect):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setLineWidth):
(WebCore::CanvasRenderingContext2D::setMiterLimit):
(WebCore::CanvasRenderingContext2D::setShadowOffsetX):
(WebCore::CanvasRenderingContext2D::setShadowOffsetY):
(WebCore::CanvasRenderingContext2D::setShadowBlur):
(WebCore::lineDashSequenceIsValid):
(WebCore::CanvasRenderingContext2D::setLineDashOffset):
(WebCore::CanvasRenderingContext2D::scale):
(WebCore::CanvasRenderingContext2D::rotate):
(WebCore::CanvasRenderingContext2D::translate):
(WebCore::CanvasRenderingContext2D::transform):
(WebCore::CanvasRenderingContext2D::setTransform):
(WebCore::validateRectForCanvas):
(WebCore::CanvasRenderingContext2D::isPointInPath):
(WebCore::CanvasRenderingContext2D::isPointInStroke):
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::createLinearGradient):
(WebCore::CanvasRenderingContext2D::createRadialGradient):
(WebCore::CanvasRenderingContext2D::createImageData):
(WebCore::CanvasRenderingContext2D::getImageData):
(WebCore::CanvasRenderingContext2D::putImageData):
(WebCore::CanvasRenderingContext2D::drawTextInternal):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseToDoubleForNumberType):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTimelineElement::setDuration):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::reset):
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::reset):
* html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlFullscreenTimelineElement::setDuration):
(WebCore::MediaControlsBlackBerry::reset):
* inspector/InspectorValues.cpp:
(WebCore::InspectorBasicValue::writeJSON):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::currentAge):
(WebCore::CachedResource::freshnessLifetime):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::adjustWindowRect):
* platform/DateComponents.cpp:
(WebCore::DateComponents::setMillisecondsSinceEpochForDate):
(WebCore::DateComponents::setMillisecondsSinceEpochForDateTime):
(WebCore::DateComponents::setMillisecondsSinceEpochForMonth):
(WebCore::DateComponents::setMillisecondsSinceMidnight):
(WebCore::DateComponents::setMonthsSinceEpoch):
(WebCore::DateComponents::setMillisecondsSinceEpochForWeek):
* platform/Decimal.cpp:
(WebCore::Decimal::fromDouble):
* platform/FileSystem.h:
(WebCore::isValidFileTime):
* platform/LocalizedStrings.cpp:
(WebCore::localizedMediaTimeDescription):
* platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::drawPatternToCairoContext):
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::addArc):
(WebCore::Path::contains):
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::addArc):
* platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
(WebCore::FullscreenVideoControllerGStreamer::timeToString):
* platform/graphics/openvg/PathOpenVG.cpp:
(WebCore::Path::addArc):
* platform/graphics/skia/SkiaUtils.h:
(WebCore::WebCoreFloatToSkScalar):
(WebCore::WebCoreDoubleToSkScalar):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::maxTimeSeekable):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::localizedMediaTimeDescription):
* platform/mac/WebVideoFullscreenHUDWindowController.mm:
(timeToString):
* platform/network/ResourceResponseBase.cpp:
(WebCore::parseDateValueInHeader):
* platform/qt/LocalizedStringsQt.cpp:
(WebCore::localizedMediaTimeDescription):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::resolveFlexibleLengths):
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::formatChromiumMediaControlsTime):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::formatMediaControlsTime):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontSize):
* svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::decomposeArcToCubic):
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunRound::round):
* xml/XPathValue.cpp:
(WebCore::XPath::Value::toString):

Source/WebKit/win:

* FullscreenVideoController.cpp:
(timeToString):

Source/WTF:

On Solaris and OpenBSD platforms or when using Visual C++ the two methods
are now defined (as incompatibility workarounds) inside the std namespace.

* wtf/DateMath.cpp:
(WTF::timeClip):
* wtf/DecimalNumber.h:
(WTF::DecimalNumber::DecimalNumber):
* wtf/MathExtras.h:
(std):
(std::isfinite):
(std::signbit):
(lrint):
(wtf_pow):
(decomposeDouble):
* wtf/MediaTime.cpp:
(WTF::MediaTime::createWithFloat):
(WTF::MediaTime::createWithDouble):
* wtf/dtoa.cpp:
(WTF::dtoa):

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

66 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/assembler/MacroAssembler.h
Source/JavaScriptCore/offlineasm/cloop.rb
Source/JavaScriptCore/runtime/BigInteger.h
Source/JavaScriptCore/runtime/DateConstructor.cpp
Source/JavaScriptCore/runtime/DatePrototype.cpp
Source/JavaScriptCore/runtime/JSCJSValueInlines.h
Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
Source/JavaScriptCore/runtime/JSONObject.cpp
Source/JavaScriptCore/runtime/MathObject.cpp
Source/JavaScriptCore/runtime/NumberPrototype.cpp
Source/JavaScriptCore/runtime/Uint16WithFraction.h
Source/WTF/ChangeLog
Source/WTF/wtf/DateMath.cpp
Source/WTF/wtf/DecimalNumber.h
Source/WTF/wtf/MathExtras.h
Source/WTF/wtf/MediaTime.cpp
Source/WTF/wtf/dtoa.cpp
Source/WebCore/ChangeLog
Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp
Source/WebCore/bindings/js/JSDOMBinding.cpp
Source/WebCore/bindings/js/JSDOMBinding.h
Source/WebCore/bindings/v8/V8Binding.h
Source/WebCore/css/CSSPrimitiveValue.cpp
Source/WebCore/html/BaseDateAndTimeInputType.cpp
Source/WebCore/html/HTMLInputElement.cpp
Source/WebCore/html/HTMLMeterElement.cpp
Source/WebCore/html/HTMLProgressElement.cpp
Source/WebCore/html/MonthInputType.cpp
Source/WebCore/html/NumberInputType.cpp
Source/WebCore/html/RangeInputType.cpp
Source/WebCore/html/TimeInputType.cpp
Source/WebCore/html/canvas/CanvasPathMethods.cpp
Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
Source/WebCore/html/parser/HTMLParserIdioms.cpp
Source/WebCore/html/shadow/MediaControlElements.cpp
Source/WebCore/html/shadow/MediaControls.cpp
Source/WebCore/html/shadow/MediaControlsApple.cpp
Source/WebCore/html/shadow/MediaControlsBlackBerry.cpp
Source/WebCore/inspector/InspectorValues.cpp
Source/WebCore/loader/cache/CachedResource.cpp
Source/WebCore/page/DOMWindow.cpp
Source/WebCore/platform/DateComponents.cpp
Source/WebCore/platform/Decimal.cpp
Source/WebCore/platform/FileSystem.h
Source/WebCore/platform/LocalizedStrings.cpp
Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp
Source/WebCore/platform/graphics/cairo/PathCairo.cpp
Source/WebCore/platform/graphics/cg/PathCG.cpp
Source/WebCore/platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp
Source/WebCore/platform/graphics/openvg/PathOpenVG.cpp
Source/WebCore/platform/graphics/skia/SkiaUtils.h
Source/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp
Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp
Source/WebCore/platform/mac/WebVideoFullscreenHUDWindowController.mm
Source/WebCore/platform/network/ResourceResponseBase.cpp
Source/WebCore/platform/qt/LocalizedStringsQt.cpp
Source/WebCore/rendering/RenderFlexibleBox.cpp
Source/WebCore/rendering/RenderMediaControlsChromium.cpp
Source/WebCore/rendering/RenderTheme.cpp
Source/WebCore/rendering/style/RenderStyle.cpp
Source/WebCore/svg/SVGPathParser.cpp
Source/WebCore/xml/XPathFunctions.cpp
Source/WebCore/xml/XPathValue.cpp
Source/WebKit/win/ChangeLog
Source/WebKit/win/FullscreenVideoController.cpp

index 5cf9d72..6a0c868 100644 (file)
@@ -1,3 +1,43 @@
+2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
+
+        Stop placing std::isfinite and std::signbit inside the global scope
+        https://bugs.webkit.org/show_bug.cgi?id=109817
+
+        Reviewed by Darin Adler.
+
+        Prefix calls to the isfinite and signbit methods with std:: as the two
+        methods are no longer being imported into the global scope.
+
+        * assembler/MacroAssembler.h:
+        (JSC::MacroAssembler::shouldBlindDouble):
+        * offlineasm/cloop.rb:
+        * runtime/BigInteger.h:
+        (JSC::BigInteger::BigInteger):
+        * runtime/DateConstructor.cpp:
+        (JSC::constructDate):
+        * runtime/DatePrototype.cpp:
+        (JSC::fillStructuresUsingTimeArgs):
+        (JSC::fillStructuresUsingDateArgs):
+        (JSC::dateProtoFuncToISOString):
+        (JSC::dateProtoFuncSetYear):
+        * runtime/JSCJSValueInlines.h:
+        (JSC::JSValue::JSValue):
+        * runtime/JSGlobalObjectFunctions.cpp:
+        (JSC::globalFuncIsFinite):
+        * runtime/JSONObject.cpp:
+        (JSC::Stringifier::appendStringifiedValue):
+        * runtime/MathObject.cpp:
+        (JSC::mathProtoFuncMax): Also include an opportunistic style fix.
+        (JSC::mathProtoFuncMin): Ditto.
+        * runtime/NumberPrototype.cpp:
+        (JSC::toStringWithRadix):
+        (JSC::numberProtoFuncToExponential):
+        (JSC::numberProtoFuncToFixed):
+        (JSC::numberProtoFuncToPrecision):
+        (JSC::numberProtoFuncToString):
+        * runtime/Uint16WithFraction.h:
+        (JSC::Uint16WithFraction::Uint16WithFraction):
+
 2013-02-18  Ádám Kallai  <kadam@inf.u-szeged.hu>
 
         [Qt] Mountain Lion buildfix after r143147.
index 7c5e5e8..60a93db 100644 (file)
@@ -847,7 +847,7 @@ public:
     bool shouldBlindDouble(double value)
     {
         // Don't trust NaN or +/-Infinity
-        if (!isfinite(value))
+        if (!std::isfinite(value))
             return shouldConsiderBlinding();
 
         // Try to force normalisation, and check that there's no change
index 8b4ee9c..14cacb9 100644 (file)
@@ -709,7 +709,7 @@ class Instruction
             $asm.putc "{"
             $asm.putc "    double d = #{operands[0].clValue(:double)};"
             $asm.putc "    const int32_t asInt32 = int32_t(d);"
-            $asm.putc "    if (asInt32 != d || (!asInt32 && signbit(d))) // true for -0.0"
+            $asm.putc "    if (asInt32 != d || (!asInt32 && std::signbit(d))) // true for -0.0"
             $asm.putc "        goto  #{operands[2].cLabel};"
             $asm.putc "    #{operands[1].clValue} = asInt32;"            
             $asm.putc "    #{operands[1].clDump}.clearHighWord();"
index 833829d..0a0c477 100644 (file)
@@ -35,7 +35,7 @@ class BigInteger {
 public:
     BigInteger(double number)
     {
-        ASSERT(isfinite(number) && !signbit(number));
+        ASSERT(std::isfinite(number) && !std::signbit(number));
         ASSERT(number == floor(number));
 
         bool sign;
index 1898634..56c6a14 100644 (file)
@@ -125,13 +125,13 @@ JSObject* constructDate(ExecState* exec, JSGlobalObject* globalObject, const Arg
             args.at(5).toNumber(exec), 
             args.at(6).toNumber(exec)
         };
-        if (!isfinite(doubleArguments[0])
-            || !isfinite(doubleArguments[1])
-            || (numArgs >= 3 && !isfinite(doubleArguments[2]))
-            || (numArgs >= 4 && !isfinite(doubleArguments[3]))
-            || (numArgs >= 5 && !isfinite(doubleArguments[4]))
-            || (numArgs >= 6 && !isfinite(doubleArguments[5]))
-            || (numArgs >= 7 && !isfinite(doubleArguments[6])))
+        if (!std::isfinite(doubleArguments[0])
+            || !std::isfinite(doubleArguments[1])
+            || (numArgs >= 3 && !std::isfinite(doubleArguments[2]))
+            || (numArgs >= 4 && !std::isfinite(doubleArguments[3]))
+            || (numArgs >= 5 && !std::isfinite(doubleArguments[4]))
+            || (numArgs >= 6 && !std::isfinite(doubleArguments[5]))
+            || (numArgs >= 7 && !std::isfinite(doubleArguments[6])))
             value = QNaN;
         else {
             GregorianDateTime t;
index f55e120..d4c7c8e 100644 (file)
@@ -375,7 +375,7 @@ static bool fillStructuresUsingTimeArgs(ExecState* exec, int maxArgs, double* ms
     if (maxArgs >= 4 && idx < numArgs) {
         t->setHour(0);
         double hours = exec->argument(idx++).toIntegerPreserveNaN(exec);
-        ok = isfinite(hours);
+        ok = std::isfinite(hours);
         milliseconds += hours * msPerHour;
     }
 
@@ -383,7 +383,7 @@ static bool fillStructuresUsingTimeArgs(ExecState* exec, int maxArgs, double* ms
     if (maxArgs >= 3 && idx < numArgs && ok) {
         t->setMinute(0);
         double minutes = exec->argument(idx++).toIntegerPreserveNaN(exec);
-        ok = isfinite(minutes);
+        ok = std::isfinite(minutes);
         milliseconds += minutes * msPerMinute;
     }
     
@@ -391,7 +391,7 @@ static bool fillStructuresUsingTimeArgs(ExecState* exec, int maxArgs, double* ms
     if (maxArgs >= 2 && idx < numArgs && ok) {
         t->setSecond(0);
         double seconds = exec->argument(idx++).toIntegerPreserveNaN(exec);
-        ok = isfinite(seconds);
+        ok = std::isfinite(seconds);
         milliseconds += seconds * msPerSecond;
     }
     
@@ -401,7 +401,7 @@ static bool fillStructuresUsingTimeArgs(ExecState* exec, int maxArgs, double* ms
     // milliseconds
     if (idx < numArgs) {
         double millis = exec->argument(idx).toIntegerPreserveNaN(exec);
-        ok = isfinite(millis);
+        ok = std::isfinite(millis);
         milliseconds += millis;
     } else
         milliseconds += *ms;
@@ -427,19 +427,19 @@ static bool fillStructuresUsingDateArgs(ExecState *exec, int maxArgs, double *ms
     // years
     if (maxArgs >= 3 && idx < numArgs) {
         double years = exec->argument(idx++).toIntegerPreserveNaN(exec);
-        ok = isfinite(years);
+        ok = std::isfinite(years);
         t->setYear(toInt32(years));
     }
     // months
     if (maxArgs >= 2 && idx < numArgs && ok) {
         double months = exec->argument(idx++).toIntegerPreserveNaN(exec);
-        ok = isfinite(months);
+        ok = std::isfinite(months);
         t->setMonth(toInt32(months));
     }
     // days
     if (idx < numArgs && ok) {
         double days = exec->argument(idx++).toIntegerPreserveNaN(exec);
-        ok = isfinite(days);
+        ok = std::isfinite(days);
         t->setMonthDay(0);
         *ms += days * msPerDay;
     }
@@ -546,7 +546,7 @@ EncodedJSValue JSC_HOST_CALL dateProtoFuncToISOString(ExecState* exec)
         return throwVMTypeError(exec);
     
     DateInstance* thisDateObj = asDateInstance(thisValue); 
-    if (!isfinite(thisDateObj->internalNumber()))
+    if (!std::isfinite(thisDateObj->internalNumber()))
         return throwVMError(exec, createRangeError(exec, ASCIILiteral("Invalid Date")));
 
     const GregorianDateTime* gregorianDateTime = thisDateObj->gregorianDateTimeUTC(exec);
@@ -1076,7 +1076,7 @@ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetYear(ExecState* exec)
     }
 
     double year = exec->argument(0).toIntegerPreserveNaN(exec);
-    if (!isfinite(year)) {
+    if (!std::isfinite(year)) {
         JSValue result = jsNaN();
         thisDateObj->setInternalValue(exec->globalData(), result);
         return JSValue::encode(result);
index 96824ed..061216c 100644 (file)
@@ -136,7 +136,7 @@ inline JSValue::JSValue(unsigned long long i)
 inline JSValue::JSValue(double d)
 {
     const int32_t asInt32 = static_cast<int32_t>(d);
-    if (asInt32 != d || (!asInt32 && signbit(d))) { // true for -0.0
+    if (asInt32 != d || (!asInt32 && std::signbit(d))) { // true for -0.0
         *this = JSValue(EncodeAsDouble, d);
         return;
     }
index 82e2b4c..78503d6 100644 (file)
@@ -566,7 +566,7 @@ EncodedJSValue JSC_HOST_CALL globalFuncIsNaN(ExecState* exec)
 EncodedJSValue JSC_HOST_CALL globalFuncIsFinite(ExecState* exec)
 {
     double n = exec->argument(0).toNumber(exec);
-    return JSValue::encode(jsBoolean(isfinite(n)));
+    return JSValue::encode(jsBoolean(std::isfinite(n)));
 }
 
 EncodedJSValue JSC_HOST_CALL globalFuncDecodeURI(ExecState* exec)
index 9fd19f6..41f0e51 100644 (file)
@@ -387,7 +387,7 @@ Stringifier::StringifyResult Stringifier::appendStringifiedValue(StringBuilder&
 
     if (value.isNumber()) {
         double number = value.asNumber();
-        if (!isfinite(number))
+        if (!std::isfinite(number))
             builder.appendLiteral("null");
         else
             builder.append(String::numberToStringECMAScript(number));
index aec7b94..bf0edff 100644 (file)
@@ -178,7 +178,7 @@ EncodedJSValue JSC_HOST_CALL mathProtoFuncMax(ExecState* exec)
             result = QNaN;
             break;
         }
-        if (val > result || (val == 0 && result == 0 && !signbit(val)))
+        if (val > result || (!val && !result && !std::signbit(val)))
             result = val;
     }
     return JSValue::encode(jsNumber(result));
@@ -194,7 +194,7 @@ EncodedJSValue JSC_HOST_CALL mathProtoFuncMin(ExecState* exec)
             result = QNaN;
             break;
         }
-        if (val < result || (val == 0 && result == 0 && signbit(val)))
+        if (val < result || (!val && !result && std::signbit(val)))
             result = val;
     }
     return JSValue::encode(jsNumber(result));
index 23c9dbf..1f02270 100644 (file)
@@ -151,7 +151,7 @@ static const char radixDigits[] = "0123456789abcdefghijklmnopqrstuvwxyz";
 
 static char* toStringWithRadix(RadixBuffer& buffer, double number, unsigned radix)
 {
-    ASSERT(isfinite(number));
+    ASSERT(std::isfinite(number));
     ASSERT(radix >= 2 && radix <= 36);
 
     // Position the decimal point at the center of the string, set
@@ -161,7 +161,7 @@ static char* toStringWithRadix(RadixBuffer& buffer, double number, unsigned radi
 
     // Extract the sign.
     bool isNegative = number < 0;
-    if (signbit(number))
+    if (std::signbit(number))
         number = -number;
     double integerPart = floor(number);
 
@@ -198,12 +198,12 @@ static char* toStringWithRadix(RadixBuffer& buffer, double number, unsigned radi
         // Calculate the delta from the current number to the next & previous possible IEEE numbers.
         double nextNumber = nextafter(number, std::numeric_limits<double>::infinity());
         double lastNumber = nextafter(number, -std::numeric_limits<double>::infinity());
-        ASSERT(isfinite(nextNumber) && !signbit(nextNumber));
-        ASSERT(isfinite(lastNumber) && !signbit(lastNumber));
+        ASSERT(std::isfinite(nextNumber) && !std::signbit(nextNumber));
+        ASSERT(std::isfinite(lastNumber) && !std::signbit(lastNumber));
         double deltaNextDouble = nextNumber - number;
         double deltaLastDouble = number - lastNumber;
-        ASSERT(isfinite(deltaNextDouble) && !signbit(deltaNextDouble));
-        ASSERT(isfinite(deltaLastDouble) && !signbit(deltaLastDouble));
+        ASSERT(std::isfinite(deltaNextDouble) && !std::signbit(deltaNextDouble));
+        ASSERT(std::isfinite(deltaLastDouble) && !std::signbit(deltaLastDouble));
 
         // We track the delta from the current value to the next, to track how many digits of the
         // fraction we need to write. For example, if the value we are converting is precisely
@@ -380,7 +380,7 @@ EncodedJSValue JSC_HOST_CALL numberProtoFuncToExponential(ExecState* exec)
         return throwVMError(exec, createRangeError(exec, ASCIILiteral("toExponential() argument must be between 0 and 20")));
 
     // Handle NaN and Infinity.
-    if (!isfinite(x))
+    if (!std::isfinite(x))
         return JSValue::encode(jsString(exec, String::numberToStringECMAScript(x)));
 
     // Round if the argument is not undefined, always format as exponential.
@@ -418,7 +418,7 @@ EncodedJSValue JSC_HOST_CALL numberProtoFuncToFixed(ExecState* exec)
 
     // The check above will return false for NaN or Infinity, these will be
     // handled by numberToString.
-    ASSERT(isfinite(x));
+    ASSERT(std::isfinite(x));
 
     NumberToStringBuffer buffer;
     return JSValue::encode(jsString(exec, String(numberToFixedWidthString(x, decimalPlaces, buffer))));
@@ -448,7 +448,7 @@ EncodedJSValue JSC_HOST_CALL numberProtoFuncToPrecision(ExecState* exec)
         return JSValue::encode(jsString(exec, String::numberToStringECMAScript(x)));
 
     // Handle NaN and Infinity.
-    if (!isfinite(x))
+    if (!std::isfinite(x))
         return JSValue::encode(jsString(exec, String::numberToStringECMAScript(x)));
 
     NumberToStringBuffer buffer;
@@ -507,7 +507,7 @@ EncodedJSValue JSC_HOST_CALL numberProtoFuncToString(ExecState* exec)
         return JSValue::encode(jsString(globalData, globalData->numericStrings.add(doubleValue)));
     }
 
-    if (!isfinite(doubleValue))
+    if (!std::isfinite(doubleValue))
         return JSValue::encode(jsString(exec, String::numberToStringECMAScript(doubleValue)));
 
     RadixBuffer s;
index 0e5c5f9..9a30100 100644 (file)
@@ -41,7 +41,7 @@ class Uint16WithFraction {
 public:
     explicit Uint16WithFraction(double number, uint16_t divideByExponent = 0)
     {
-        ASSERT(number && isfinite(number) && !signbit(number));
+        ASSERT(number && std::isfinite(number) && !std::signbit(number));
 
         // Check for values out of uint16_t range.
         if (number >= oneGreaterThanMaxUInt16) {
index 0a39cf1..403a96c 100644 (file)
@@ -1,3 +1,33 @@
+2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
+
+        Stop placing std::isfinite and std::signbit inside the global scope
+        https://bugs.webkit.org/show_bug.cgi?id=109817
+
+        Reviewed by Darin Adler.
+
+        Prefix calls to the isfinite and signbit methods with std:: as the two
+        methods are no longer being imported into the global scope.
+
+        On Solaris and OpenBSD platforms or when using Visual C++ the two methods
+        are now defined (as incompatibility workarounds) inside the std namespace.
+
+        * wtf/DateMath.cpp:
+        (WTF::timeClip):
+        * wtf/DecimalNumber.h:
+        (WTF::DecimalNumber::DecimalNumber):
+        * wtf/MathExtras.h:
+        (std):
+        (std::isfinite):
+        (std::signbit):
+        (lrint):
+        (wtf_pow):
+        (decomposeDouble):
+        * wtf/MediaTime.cpp:
+        (WTF::MediaTime::createWithFloat):
+        (WTF::MediaTime::createWithDouble):
+        * wtf/dtoa.cpp:
+        (WTF::dtoa):
+
 2013-02-18  Laszlo Gombos  <l.gombos@samsung.com>
 
         Move ENABLE macros for WebCore out from Platform.h
index 90d3fcb..b94468c 100644 (file)
@@ -1072,7 +1072,7 @@ double parseDateFromNullTerminatedCharacters(const char* dateString)
 
 double timeClip(double t)
 {
-    if (!isfinite(t))
+    if (!std::isfinite(t))
         return std::numeric_limits<double>::quiet_NaN();
     if (fabs(t) > maxECMAScriptTime)
         return std::numeric_limits<double>::quiet_NaN();
index 5264e98..1819110 100644 (file)
@@ -40,7 +40,7 @@ class DecimalNumber {
 public:
     DecimalNumber(double d)
     {
-        ASSERT(isfinite(d));
+        ASSERT(std::isfinite(d));
         dtoa(m_significand, d, m_sign, m_exponent, m_precision);
 
         ASSERT(m_precision);
@@ -54,7 +54,7 @@ public:
 
     DecimalNumber(double d, RoundingSignificantFiguresType, unsigned significantFigures)
     {
-        ASSERT(isfinite(d));
+        ASSERT(std::isfinite(d));
         dtoaRoundSF(m_significand, d, significantFigures, m_sign, m_exponent, m_precision);
 
         ASSERT_WITH_SECURITY_IMPLICATION(significantFigures && significantFigures <= sizeof(DtoaBuffer));
@@ -68,7 +68,7 @@ public:
 
     DecimalNumber(double d, RoundingDecimalPlacesType, unsigned decimalPlaces)
     {
-        ASSERT(isfinite(d));
+        ASSERT(std::isfinite(d));
         dtoaRoundDP(m_significand, d, decimalPlaces, m_sign, m_exponent, m_precision);
 
         unsigned significantFigures = 1 + m_exponent + decimalPlaces;
index 1aadce4..ac1bf85 100644 (file)
@@ -85,15 +85,14 @@ inline double wtf_ceil(double x) { return copysign(ceil(x), x); }
 
 #if OS(SOLARIS)
 
+namespace std {
+
 #ifndef isfinite
 inline bool isfinite(double x) { return finite(x) && !isnand(x); }
 #endif
 #ifndef signbit
 inline bool signbit(double x) { return copysign(1.0, x) < 0; }
 #endif
-
-namespace std {
-
 #ifndef isinf
 inline bool isinf(double x) { return !finite(x) && !isnand(x); }
 #endif
@@ -104,6 +103,8 @@ inline bool isinf(double x) { return !finite(x) && !isnand(x); }
 
 #if OS(OPENBSD)
 
+namespace std {
+
 #ifndef isfinite
 inline bool isfinite(double x) { return finite(x); }
 #endif
@@ -111,6 +112,8 @@ inline bool isfinite(double x) { return finite(x); }
 inline bool signbit(double x) { struct ieee_double *p = (struct ieee_double *)&x; return p->dbl_sign; }
 #endif
 
+} // namespace std
+
 #endif
 
 #if COMPILER(MSVC)
@@ -168,16 +171,15 @@ namespace std {
 
 inline bool isinf(double num) { return !_finite(num) && !_isnan(num); }
 inline bool isnan(double num) { return !!_isnan(num); }
+inline bool isfinite(double x) { return _finite(x); }
+inline bool signbit(double num) { return _copysign(1.0, num) < 0; }
 
 } // namespace std
 
-inline bool signbit(double num) { return _copysign(1.0, num) < 0; }
-
 inline double nextafter(double x, double y) { return _nextafter(x, y); }
 inline float nextafterf(float x, float y) { return x > y ? x - FLT_EPSILON : x + FLT_EPSILON; }
 
 inline double copysign(double x, double y) { return _copysign(x, y); }
-inline int isfinite(double x) { return _finite(x); }
 
 // Work around a bug in Win, where atan2(+-infinity, +-infinity) yields NaN instead of specific values.
 inline double wtf_atan2(double x, double y)
@@ -222,7 +224,7 @@ inline long int lrint(double flt)
         fistp intgr
     };
 #else
-    ASSERT(isfinite(flt));
+    ASSERT(std::isfinite(flt));
     double rounded = round(flt);
     intgr = static_cast<int64_t>(rounded);
     // If the fractional part is exactly 0.5, we need to check whether
@@ -339,11 +341,6 @@ template<typename T> inline T timesThreePlusOneDividedByTwo(T value)
     return value + (value >> 1) + (value & 1);
 }
 
-#if !COMPILER(MSVC) && !COMPILER(RVCT) && !OS(SOLARIS)
-using std::isfinite;
-using std::signbit;
-#endif
-
 #ifndef UINT64_C
 #if COMPILER(MSVC)
 #define UINT64_C(c) c ## ui64
@@ -357,7 +354,7 @@ inline double wtf_pow(double x, double y)
 {
     // MinGW-w64 has a custom implementation for pow.
     // This handles certain special cases that are different.
-    if ((x == 0.0 || std::isinf(x)) && isfinite(y)) {
+    if ((x == 0.0 || std::isinf(x)) && std::isfinite(y)) {
         double f;
         if (modf(y, &f) != 0.0)
             return ((x == 0.0) ^ (y > 0.0)) ? std::numeric_limits<double>::infinity() : 0.0;
@@ -380,9 +377,9 @@ inline double wtf_pow(double x, double y)
 //     (sign ? -1 : 1) * pow(2, exponent) * (mantissa / (1 << 52))
 inline void decomposeDouble(double number, bool& sign, int32_t& exponent, uint64_t& mantissa)
 {
-    ASSERT(isfinite(number));
+    ASSERT(std::isfinite(number));
 
-    sign = signbit(number);
+    sign = std::signbit(number);
 
     uint64_t bits = WTF::bitwise_cast<uint64_t>(number);
     exponent = (static_cast<int32_t>(bits >> 52) & 0x7ff) - 0x3ff;
index cfdfdda..4b2eee8 100644 (file)
@@ -84,7 +84,7 @@ MediaTime MediaTime::createWithFloat(float floatTime, int32_t timeScale)
     if (floatTime != floatTime)
         return invalidTime();
     if (std::isinf(floatTime))
-        return signbit(floatTime) ? negativeInfiniteTime() : positiveInfiniteTime();
+        return std::signbit(floatTime) ? negativeInfiniteTime() : positiveInfiniteTime();
     if (floatTime > numeric_limits<int64_t>::max())
         return positiveInfiniteTime();
     if (floatTime < numeric_limits<int64_t>::min())
@@ -100,7 +100,7 @@ MediaTime MediaTime::createWithDouble(double doubleTime, int32_t timeScale)
     if (doubleTime != doubleTime)
         return invalidTime();
     if (std::isinf(doubleTime))
-        return signbit(doubleTime) ? negativeInfiniteTime() : positiveInfiniteTime();
+        return std::signbit(doubleTime) ? negativeInfiniteTime() : positiveInfiniteTime();
     if (doubleTime > numeric_limits<int64_t>::max())
         return positiveInfiniteTime();
     if (doubleTime < numeric_limits<int64_t>::min())
index cf1bc2c..e18e10a 100644 (file)
@@ -742,7 +742,7 @@ void dtoa(DtoaBuffer result, double dd, int ndigits, bool& signOut, int& exponen
     // roundingNone only allowed (only sensible?) with leftright set.
     ASSERT(!roundingNone || leftright);
 
-    ASSERT(isfinite(dd));
+    ASSERT(std::isfinite(dd));
 
     int bbits, b2, b5, be, dig, i, ieps, ilim = 0, ilim0, ilim1 = 0,
         j, j1, k, k0, k_check, m2, m5, s2, s5,
index a993055..4512806 100644 (file)
@@ -1,3 +1,154 @@
+2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
+
+        Stop placing std::isfinite and std::signbit inside the global scope
+        https://bugs.webkit.org/show_bug.cgi?id=109817
+
+        Reviewed by Darin Adler.
+
+        Prefix calls to the isfinite and signbit methods with std:: as the two
+        methods are no longer being imported into the global scope.
+
+        No new tests as there's no change in functionality.
+
+        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
+        (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
+        * bindings/js/JSDOMBinding.cpp:
+        (WebCore::jsDateOrNull):
+        * bindings/js/JSDOMBinding.h:
+        (WebCore::finiteInt32Value):
+        * bindings/v8/V8Binding.h:
+        (WebCore::v8DateOrNull):
+        * css/CSSPrimitiveValue.cpp:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        * html/BaseDateAndTimeInputType.cpp:
+        (WebCore::BaseDateAndTimeInputType::parseToNumber):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::setValueAsNumber):
+        * html/HTMLMeterElement.cpp:
+        (WebCore::HTMLMeterElement::setMin):
+        (WebCore::HTMLMeterElement::setMax):
+        (WebCore::HTMLMeterElement::setValue):
+        (WebCore::HTMLMeterElement::setLow):
+        (WebCore::HTMLMeterElement::setHigh):
+        (WebCore::HTMLMeterElement::setOptimum):
+        * html/HTMLProgressElement.cpp:
+        (WebCore::HTMLProgressElement::value):
+        (WebCore::HTMLProgressElement::setValue):
+        (WebCore::HTMLProgressElement::max):
+        (WebCore::HTMLProgressElement::setMax):
+        * html/MonthInputType.cpp:
+        (WebCore::MonthInputType::valueAsDate):
+        (WebCore::MonthInputType::defaultValueForStepUp):
+        (WebCore::MonthInputType::parseToNumber):
+        * html/NumberInputType.cpp:
+        (WebCore::NumberInputType::typeMismatchFor):
+        (WebCore::NumberInputType::sanitizeValue):
+        (WebCore::NumberInputType::hasBadInput):
+        * html/RangeInputType.cpp:
+        (WebCore::RangeInputType::typeMismatchFor):
+        * html/TimeInputType.cpp:
+        (WebCore::TimeInputType::defaultValueForStepUp):
+        * html/canvas/CanvasPathMethods.cpp:
+        (WebCore::CanvasPathMethods::moveTo):
+        (WebCore::CanvasPathMethods::lineTo):
+        (WebCore::CanvasPathMethods::quadraticCurveTo):
+        (WebCore::CanvasPathMethods::bezierCurveTo):
+        (WebCore::CanvasPathMethods::arcTo):
+        (WebCore::CanvasPathMethods::arc):
+        (WebCore::CanvasPathMethods::rect):
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::setLineWidth):
+        (WebCore::CanvasRenderingContext2D::setMiterLimit):
+        (WebCore::CanvasRenderingContext2D::setShadowOffsetX):
+        (WebCore::CanvasRenderingContext2D::setShadowOffsetY):
+        (WebCore::CanvasRenderingContext2D::setShadowBlur):
+        (WebCore::lineDashSequenceIsValid):
+        (WebCore::CanvasRenderingContext2D::setLineDashOffset):
+        (WebCore::CanvasRenderingContext2D::scale):
+        (WebCore::CanvasRenderingContext2D::rotate):
+        (WebCore::CanvasRenderingContext2D::translate):
+        (WebCore::CanvasRenderingContext2D::transform):
+        (WebCore::CanvasRenderingContext2D::setTransform):
+        (WebCore::validateRectForCanvas):
+        (WebCore::CanvasRenderingContext2D::isPointInPath):
+        (WebCore::CanvasRenderingContext2D::isPointInStroke):
+        (WebCore::CanvasRenderingContext2D::drawImage):
+        (WebCore::CanvasRenderingContext2D::createLinearGradient):
+        (WebCore::CanvasRenderingContext2D::createRadialGradient):
+        (WebCore::CanvasRenderingContext2D::createImageData):
+        (WebCore::CanvasRenderingContext2D::getImageData):
+        (WebCore::CanvasRenderingContext2D::putImageData):
+        (WebCore::CanvasRenderingContext2D::drawTextInternal):
+        * html/parser/HTMLParserIdioms.cpp:
+        (WebCore::parseToDoubleForNumberType):
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlTimelineElement::setDuration):
+        * html/shadow/MediaControls.cpp:
+        (WebCore::MediaControls::reset):
+        * html/shadow/MediaControlsApple.cpp:
+        (WebCore::MediaControlsApple::reset):
+        * html/shadow/MediaControlsBlackBerry.cpp:
+        (WebCore::MediaControlFullscreenTimelineElement::setDuration):
+        (WebCore::MediaControlsBlackBerry::reset):
+        * inspector/InspectorValues.cpp:
+        (WebCore::InspectorBasicValue::writeJSON):
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::currentAge):
+        (WebCore::CachedResource::freshnessLifetime):
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::adjustWindowRect):
+        * platform/DateComponents.cpp:
+        (WebCore::DateComponents::setMillisecondsSinceEpochForDate):
+        (WebCore::DateComponents::setMillisecondsSinceEpochForDateTime):
+        (WebCore::DateComponents::setMillisecondsSinceEpochForMonth):
+        (WebCore::DateComponents::setMillisecondsSinceMidnight):
+        (WebCore::DateComponents::setMonthsSinceEpoch):
+        (WebCore::DateComponents::setMillisecondsSinceEpochForWeek):
+        * platform/Decimal.cpp:
+        (WebCore::Decimal::fromDouble):
+        * platform/FileSystem.h:
+        (WebCore::isValidFileTime):
+        * platform/LocalizedStrings.cpp:
+        (WebCore::localizedMediaTimeDescription):
+        * platform/graphics/cairo/CairoUtilities.cpp:
+        (WebCore::drawPatternToCairoContext):
+        * platform/graphics/cairo/PathCairo.cpp:
+        (WebCore::Path::addArc):
+        (WebCore::Path::contains):
+        * platform/graphics/cg/PathCG.cpp:
+        (WebCore::Path::addArc):
+        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
+        (WebCore::FullscreenVideoControllerGStreamer::timeToString):
+        * platform/graphics/openvg/PathOpenVG.cpp:
+        (WebCore::Path::addArc):
+        * platform/graphics/skia/SkiaUtils.h:
+        (WebCore::WebCoreFloatToSkScalar):
+        (WebCore::WebCoreDoubleToSkScalar):
+        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
+        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::maxTimeSeekable):
+        * platform/gtk/LocalizedStringsGtk.cpp:
+        (WebCore::localizedMediaTimeDescription):
+        * platform/mac/WebVideoFullscreenHUDWindowController.mm:
+        (timeToString):
+        * platform/network/ResourceResponseBase.cpp:
+        (WebCore::parseDateValueInHeader):
+        * platform/qt/LocalizedStringsQt.cpp:
+        (WebCore::localizedMediaTimeDescription):
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
+        * rendering/RenderMediaControlsChromium.cpp:
+        (WebCore::formatChromiumMediaControlsTime):
+        * rendering/RenderTheme.cpp:
+        (WebCore::RenderTheme::formatMediaControlsTime):
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::setFontSize):
+        * svg/SVGPathParser.cpp:
+        (WebCore::SVGPathParser::decomposeArcToCubic):
+        * xml/XPathFunctions.cpp:
+        (WebCore::XPath::FunRound::round):
+        * xml/XPathValue.cpp:
+        (WebCore::XPath::Value::toString):
+
 2013-02-18  Chris Fleizach  <cfleizach@apple.com>
 
         AX: Make iOS wrapper use the WebAccessibilityObjectBase wrapper
index bc9c8ee..26a0b46 100644 (file)
@@ -112,7 +112,7 @@ void JSCanvasRenderingContext2D::setWebkitLineDash(ExecState* exec, JSValue valu
     JSArray* valueArray = asArray(value);
     for (unsigned i = 0; i < valueArray->length(); ++i) {
         float elem = valueArray->getIndex(exec, i).toFloat(exec);
-        if (elem <= 0 || !isfinite(elem))
+        if (elem <= 0 || !std::isfinite(elem))
             return;
 
         dash.append(elem);
index f6328dc..81f19a7 100644 (file)
@@ -115,7 +115,7 @@ String valueToStringWithUndefinedOrNullCheck(ExecState* exec, JSValue value)
 
 JSValue jsDateOrNull(ExecState* exec, double value)
 {
-    if (!isfinite(value))
+    if (!std::isfinite(value))
         return jsNull();
     return DateInstance::create(exec, exec->lexicalGlobalObject()->dateStructure(), value);
 }
index f3b8e5e..0b61d7c 100644 (file)
@@ -297,7 +297,7 @@ enum ParameterDefaultPolicy {
     inline int32_t finiteInt32Value(JSC::JSValue value, JSC::ExecState* exec, bool& okay)
     {
         double number = value.toNumber(exec);
-        okay = isfinite(number);
+        okay = std::isfinite(number);
         return JSC::toInt32(number);
     }
 
index a69e909..31d3133 100644 (file)
@@ -418,7 +418,7 @@ namespace WebCore {
     inline v8::Handle<v8::Value> v8DateOrNull(double value, v8::Isolate* isolate)
     {
         ASSERT(isolate);
-        return isfinite(value) ? v8::Date::New(value) : v8NullWithCheck(isolate);
+        return std::isfinite(value) ? v8::Date::New(value) : v8NullWithCheck(isolate);
     }
 
     v8::Persistent<v8::FunctionTemplate> createRawTemplate(v8::Isolate*);
index 84d6874..3f65663 100644 (file)
@@ -237,7 +237,7 @@ CSSPrimitiveValue::CSSPrimitiveValue(double num, UnitTypes type)
     : CSSValue(PrimitiveClass)
 {
     m_primitiveUnitType = type;
-    ASSERT(isfinite(num));
+    ASSERT(std::isfinite(num));
     m_value.num = num;
 }
 
@@ -295,7 +295,7 @@ CSSPrimitiveValue::CSSPrimitiveValue(const Length& length)
             break;
         case Percent:
             m_primitiveUnitType = CSS_PERCENTAGE;
-            ASSERT(isfinite(length.percent()));
+            ASSERT(std::isfinite(length.percent()));
             m_value.num = length.percent();
             break;
         case ViewportPercentageWidth:
index 6a18a45..78880f2 100644 (file)
@@ -102,7 +102,7 @@ Decimal BaseDateAndTimeInputType::parseToNumber(const String& source, const Deci
     if (!parseToDateComponents(source, &date))
         return defaultValue;
     double msec = date.millisecondsSinceEpoch();
-    ASSERT(isfinite(msec));
+    ASSERT(std::isfinite(msec));
     return Decimal::fromDouble(msec);
 }
 
index 3c61749..2153558 100644 (file)
@@ -1061,7 +1061,7 @@ double HTMLInputElement::valueAsNumber() const
 
 void HTMLInputElement::setValueAsNumber(double newValue, ExceptionCode& ec, TextFieldEventBehavior eventBehavior)
 {
-    if (!isfinite(newValue)) {
+    if (!std::isfinite(newValue)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
index 562d20a..65ec1b2 100644 (file)
@@ -91,7 +91,7 @@ double HTMLMeterElement::min() const
 
 void HTMLMeterElement::setMin(double min, ExceptionCode& ec)
 {
-    if (!isfinite(min)) {
+    if (!std::isfinite(min)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
@@ -105,7 +105,7 @@ double HTMLMeterElement::max() const
 
 void HTMLMeterElement::setMax(double max, ExceptionCode& ec)
 {
-    if (!isfinite(max)) {
+    if (!std::isfinite(max)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
@@ -120,7 +120,7 @@ double HTMLMeterElement::value() const
 
 void HTMLMeterElement::setValue(double value, ExceptionCode& ec)
 {
-    if (!isfinite(value)) {
+    if (!std::isfinite(value)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
@@ -135,7 +135,7 @@ double HTMLMeterElement::low() const
 
 void HTMLMeterElement::setLow(double low, ExceptionCode& ec)
 {
-    if (!isfinite(low)) {
+    if (!std::isfinite(low)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
@@ -150,7 +150,7 @@ double HTMLMeterElement::high() const
 
 void HTMLMeterElement::setHigh(double high, ExceptionCode& ec)
 {
-    if (!isfinite(high)) {
+    if (!std::isfinite(high)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
@@ -165,7 +165,7 @@ double HTMLMeterElement::optimum() const
 
 void HTMLMeterElement::setOptimum(double optimum, ExceptionCode& ec)
 {
-    if (!isfinite(optimum)) {
+    if (!std::isfinite(optimum)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
index d551903..fe8f99b 100644 (file)
@@ -107,12 +107,12 @@ void HTMLProgressElement::attach()
 double HTMLProgressElement::value() const
 {
     double value = parseToDoubleForNumberType(fastGetAttribute(valueAttr));
-    return !isfinite(value) || value < 0 ? 0 : std::min(value, max());
+    return !std::isfinite(value) || value < 0 ? 0 : std::min(value, max());
 }
 
 void HTMLProgressElement::setValue(double value, ExceptionCode& ec)
 {
-    if (!isfinite(value)) {
+    if (!std::isfinite(value)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
@@ -122,12 +122,12 @@ void HTMLProgressElement::setValue(double value, ExceptionCode& ec)
 double HTMLProgressElement::max() const
 {
     double max = parseToDoubleForNumberType(getAttribute(maxAttr));
-    return !isfinite(max) || max <= 0 ? 1 : max;
+    return !std::isfinite(max) || max <= 0 ? 1 : max;
 }
 
 void HTMLProgressElement::setMax(double max, ExceptionCode& ec)
 {
-    if (!isfinite(max)) {
+    if (!std::isfinite(max)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
index 098d002..03fe167 100644 (file)
@@ -82,7 +82,7 @@ double MonthInputType::valueAsDate() const
     if (!parseToDateComponents(element()->value(), &date))
         return DateComponents::invalidMilliseconds();
     double msec = date.millisecondsSinceEpoch();
-    ASSERT(isfinite(msec));
+    ASSERT(std::isfinite(msec));
     return msec;
 }
 
@@ -105,7 +105,7 @@ Decimal MonthInputType::defaultValueForStepUp() const
     DateComponents date;
     date.setMillisecondsSinceEpochForMonth(current);
     double months = date.monthsSinceEpoch();
-    ASSERT(isfinite(months));
+    ASSERT(std::isfinite(months));
     return Decimal::fromDouble(months);
 }
 
@@ -126,7 +126,7 @@ Decimal MonthInputType::parseToNumber(const String& src, const Decimal& defaultV
     if (!parseToDateComponents(src, &date))
         return defaultValue;
     double months = date.monthsSinceEpoch();
-    ASSERT(isfinite(months));
+    ASSERT(std::isfinite(months));
     return Decimal::fromDouble(months);
 }
 
index 33ad02b..d386959 100644 (file)
@@ -156,7 +156,7 @@ void NumberInputType::setValueAsDecimal(const Decimal& newValue, TextFieldEventB
 
 bool NumberInputType::typeMismatchFor(const String& value) const
 {
-    return !value.isEmpty() && !isfinite(parseToDoubleForNumberType(value));
+    return !value.isEmpty() && !std::isfinite(parseToDoubleForNumberType(value));
 }
 
 bool NumberInputType::typeMismatch() const
@@ -261,13 +261,13 @@ String NumberInputType::sanitizeValue(const String& proposedValue) const
 {
     if (proposedValue.isEmpty())
         return proposedValue;
-    return isfinite(parseToDoubleForNumberType(proposedValue)) ? proposedValue : emptyString();
+    return std::isfinite(parseToDoubleForNumberType(proposedValue)) ? proposedValue : emptyString();
 }
 
 bool NumberInputType::hasBadInput() const
 {
     String standardValue = convertFromVisibleValue(element()->innerTextValue());
-    return !standardValue.isEmpty() && !isfinite(parseToDoubleForNumberType(standardValue));
+    return !standardValue.isEmpty() && !std::isfinite(parseToDoubleForNumberType(standardValue));
 }
 
 String NumberInputType::badInputText() const
index 71fd508..9c1cad8 100644 (file)
@@ -120,7 +120,7 @@ void RangeInputType::setValueAsDecimal(const Decimal& newValue, TextFieldEventBe
 
 bool RangeInputType::typeMismatchFor(const String& value) const
 {
-    return !value.isEmpty() && !isfinite(parseToDoubleForNumberType(value));
+    return !value.isEmpty() && !std::isfinite(parseToDoubleForNumberType(value));
 }
 
 bool RangeInputType::supportsRequired() const
index c308bd7..9f080d2 100644 (file)
@@ -91,7 +91,7 @@ Decimal TimeInputType::defaultValueForStepUp() const
     DateComponents date;
     date.setMillisecondsSinceMidnight(current);
     double milliseconds = date.millisecondsSinceEpoch();
-    ASSERT(isfinite(milliseconds));
+    ASSERT(std::isfinite(milliseconds));
     return Decimal::fromDouble(milliseconds);
 }
 
index 26e8291..041541d 100644 (file)
@@ -53,7 +53,7 @@ void CanvasPathMethods::closePath()
 
 void CanvasPathMethods::moveTo(float x, float y)
 {
-    if (!isfinite(x) || !isfinite(y))
+    if (!std::isfinite(x) || !std::isfinite(y))
         return;
     if (!isTransformInvertible())
         return;
@@ -62,7 +62,7 @@ void CanvasPathMethods::moveTo(float x, float y)
 
 void CanvasPathMethods::lineTo(float x, float y)
 {
-    if (!isfinite(x) || !isfinite(y))
+    if (!std::isfinite(x) || !std::isfinite(y))
         return;
     if (!isTransformInvertible())
         return;
@@ -76,7 +76,7 @@ void CanvasPathMethods::lineTo(float x, float y)
 
 void CanvasPathMethods::quadraticCurveTo(float cpx, float cpy, float x, float y)
 {
-    if (!isfinite(cpx) || !isfinite(cpy) || !isfinite(x) || !isfinite(y))
+    if (!std::isfinite(cpx) || !std::isfinite(cpy) || !std::isfinite(x) || !std::isfinite(y))
         return;
     if (!isTransformInvertible())
         return;
@@ -91,7 +91,7 @@ void CanvasPathMethods::quadraticCurveTo(float cpx, float cpy, float x, float y)
 
 void CanvasPathMethods::bezierCurveTo(float cp1x, float cp1y, float cp2x, float cp2y, float x, float y)
 {
-    if (!isfinite(cp1x) || !isfinite(cp1y) || !isfinite(cp2x) || !isfinite(cp2y) || !isfinite(x) || !isfinite(y))
+    if (!std::isfinite(cp1x) || !std::isfinite(cp1y) || !std::isfinite(cp2x) || !std::isfinite(cp2y) || !std::isfinite(x) || !std::isfinite(y))
         return;
     if (!isTransformInvertible())
         return;
@@ -108,7 +108,7 @@ void CanvasPathMethods::bezierCurveTo(float cp1x, float cp1y, float cp2x, float
 void CanvasPathMethods::arcTo(float x1, float y1, float x2, float y2, float r, ExceptionCode& ec)
 {
     ec = 0;
-    if (!isfinite(x1) || !isfinite(y1) || !isfinite(x2) || !isfinite(y2) || !isfinite(r))
+    if (!std::isfinite(x1) || !std::isfinite(y1) || !std::isfinite(x2) || !std::isfinite(y2) || !std::isfinite(r))
         return;
 
     if (r < 0) {
@@ -133,7 +133,7 @@ void CanvasPathMethods::arcTo(float x1, float y1, float x2, float y2, float r, E
 void CanvasPathMethods::arc(float x, float y, float r, float sa, float ea, bool anticlockwise, ExceptionCode& ec)
 {
     ec = 0;
-    if (!isfinite(x) || !isfinite(y) || !isfinite(r) || !isfinite(sa) || !isfinite(ea))
+    if (!std::isfinite(x) || !std::isfinite(y) || !std::isfinite(r) || !std::isfinite(sa) || !std::isfinite(ea))
         return;
 
     if (r < 0) {
@@ -168,7 +168,7 @@ void CanvasPathMethods::rect(float x, float y, float width, float height)
     if (!isTransformInvertible())
         return;
 
-    if (!isfinite(x) || !isfinite(y) || !isfinite(width) || !isfinite(height))
+    if (!std::isfinite(x) || !std::isfinite(y) || !std::isfinite(width) || !std::isfinite(height))
         return;
 
     if (!width && !height) {
index 4364acd..442c19e 100644 (file)
@@ -383,7 +383,7 @@ float CanvasRenderingContext2D::lineWidth() const
 
 void CanvasRenderingContext2D::setLineWidth(float width)
 {
-    if (!(isfinite(width) && width > 0))
+    if (!(std::isfinite(width) && width > 0))
         return;
     if (state().m_lineWidth == width)
         return;
@@ -442,7 +442,7 @@ float CanvasRenderingContext2D::miterLimit() const
 
 void CanvasRenderingContext2D::setMiterLimit(float limit)
 {
-    if (!(isfinite(limit) && limit > 0))
+    if (!(std::isfinite(limit) && limit > 0))
         return;
     if (state().m_miterLimit == limit)
         return;
@@ -461,7 +461,7 @@ float CanvasRenderingContext2D::shadowOffsetX() const
 
 void CanvasRenderingContext2D::setShadowOffsetX(float x)
 {
-    if (!isfinite(x))
+    if (!std::isfinite(x))
         return;
     if (state().m_shadowOffset.width() == x)
         return;
@@ -477,7 +477,7 @@ float CanvasRenderingContext2D::shadowOffsetY() const
 
 void CanvasRenderingContext2D::setShadowOffsetY(float y)
 {
-    if (!isfinite(y))
+    if (!std::isfinite(y))
         return;
     if (state().m_shadowOffset.height() == y)
         return;
@@ -493,7 +493,7 @@ float CanvasRenderingContext2D::shadowBlur() const
 
 void CanvasRenderingContext2D::setShadowBlur(float blur)
 {
-    if (!(isfinite(blur) && blur >= 0))
+    if (!(std::isfinite(blur) && blur >= 0))
         return;
     if (state().m_shadowBlur == blur)
         return;
@@ -527,7 +527,7 @@ const Vector<float>& CanvasRenderingContext2D::getLineDash() const
 static bool lineDashSequenceIsValid(const Vector<float>& dash)
 {
     for (size_t i = 0; i < dash.size(); i++) {
-        if (!isfinite(dash[i]) || dash[i] < 0)
+        if (!std::isfinite(dash[i]) || dash[i] < 0)
             return false;
     }
     return true;
@@ -566,7 +566,7 @@ float CanvasRenderingContext2D::lineDashOffset() const
 
 void CanvasRenderingContext2D::setLineDashOffset(float offset)
 {
-    if (!isfinite(offset) || state().m_lineDashOffset == offset)
+    if (!std::isfinite(offset) || state().m_lineDashOffset == offset)
         return;
 
     realizeSaves();
@@ -644,7 +644,7 @@ void CanvasRenderingContext2D::scale(float sx, float sy)
     if (!state().m_invertibleCTM)
         return;
 
-    if (!isfinite(sx) | !isfinite(sy))
+    if (!std::isfinite(sx) | !std::isfinite(sy))
         return;
 
     AffineTransform newTransform = state().m_transform;
@@ -672,7 +672,7 @@ void CanvasRenderingContext2D::rotate(float angleInRadians)
     if (!state().m_invertibleCTM)
         return;
 
-    if (!isfinite(angleInRadians))
+    if (!std::isfinite(angleInRadians))
         return;
 
     AffineTransform newTransform = state().m_transform;
@@ -700,7 +700,7 @@ void CanvasRenderingContext2D::translate(float tx, float ty)
     if (!state().m_invertibleCTM)
         return;
 
-    if (!isfinite(tx) | !isfinite(ty))
+    if (!std::isfinite(tx) | !std::isfinite(ty))
         return;
 
     AffineTransform newTransform = state().m_transform;
@@ -728,7 +728,7 @@ void CanvasRenderingContext2D::transform(float m11, float m12, float m21, float
     if (!state().m_invertibleCTM)
         return;
 
-    if (!isfinite(m11) | !isfinite(m21) | !isfinite(dx) | !isfinite(m12) | !isfinite(m22) | !isfinite(dy))
+    if (!std::isfinite(m11) | !std::isfinite(m21) | !std::isfinite(dx) | !std::isfinite(m12) | !std::isfinite(m22) | !std::isfinite(dy))
         return;
 
     AffineTransform transform(m11, m12, m21, m22, dx, dy);
@@ -754,7 +754,7 @@ void CanvasRenderingContext2D::setTransform(float m11, float m12, float m21, flo
     if (!c)
         return;
 
-    if (!isfinite(m11) | !isfinite(m21) | !isfinite(dx) | !isfinite(m12) | !isfinite(m22) | !isfinite(dy))
+    if (!std::isfinite(m11) | !std::isfinite(m21) | !std::isfinite(dx) | !std::isfinite(m12) | !std::isfinite(m22) | !std::isfinite(dy))
         return;
 
     AffineTransform ctm = state().m_transform;
@@ -876,7 +876,7 @@ void CanvasRenderingContext2D::setCurrentPath(DOMPath* path)
 
 static bool validateRectForCanvas(float& x, float& y, float& width, float& height)
 {
-    if (!isfinite(x) | !isfinite(y) | !isfinite(width) | !isfinite(height))
+    if (!std::isfinite(x) | !std::isfinite(y) | !std::isfinite(width) | !std::isfinite(height))
         return false;
 
     if (!width && !height)
@@ -1020,7 +1020,7 @@ bool CanvasRenderingContext2D::isPointInPath(const float x, const float y, const
     FloatPoint point(x, y);
     AffineTransform ctm = state().m_transform;
     FloatPoint transformedPoint = ctm.inverse().mapPoint(point);
-    if (!isfinite(transformedPoint.x()) || !isfinite(transformedPoint.y()))
+    if (!std::isfinite(transformedPoint.x()) || !std::isfinite(transformedPoint.y()))
         return false;
 
     WindRule windRule = RULE_NONZERO;
@@ -1042,7 +1042,7 @@ bool CanvasRenderingContext2D::isPointInStroke(const float x, const float y)
     FloatPoint point(x, y);
     AffineTransform ctm = state().m_transform;
     FloatPoint transformedPoint = ctm.inverse().mapPoint(point);
-    if (!isfinite(transformedPoint.x()) || !isfinite(transformedPoint.y()))
+    if (!std::isfinite(transformedPoint.x()) || !std::isfinite(transformedPoint.y()))
         return false;
 
     CanvasStrokeStyleApplier applier(this);
@@ -1302,8 +1302,8 @@ void CanvasRenderingContext2D::drawImage(HTMLImageElement* image, const FloatRec
 
     ec = 0;
 
-    if (!isfinite(dstRect.x()) || !isfinite(dstRect.y()) || !isfinite(dstRect.width()) || !isfinite(dstRect.height())
-        || !isfinite(srcRect.x()) || !isfinite(srcRect.y()) || !isfinite(srcRect.width()) || !isfinite(srcRect.height()))
+    if (!std::isfinite(dstRect.x()) || !std::isfinite(dstRect.y()) || !std::isfinite(dstRect.width()) || !std::isfinite(dstRect.height())
+        || !std::isfinite(srcRect.x()) || !std::isfinite(srcRect.y()) || !std::isfinite(srcRect.width()) || !std::isfinite(srcRect.height()))
         return;
 
     if (!dstRect.width() || !dstRect.height())
@@ -1680,7 +1680,7 @@ void CanvasRenderingContext2D::prepareGradientForDashboard(CanvasGradient* gradi
 
 PassRefPtr<CanvasGradient> CanvasRenderingContext2D::createLinearGradient(float x0, float y0, float x1, float y1, ExceptionCode& ec)
 {
-    if (!isfinite(x0) || !isfinite(y0) || !isfinite(x1) || !isfinite(y1)) {
+    if (!std::isfinite(x0) || !std::isfinite(y0) || !std::isfinite(x1) || !std::isfinite(y1)) {
         ec = NOT_SUPPORTED_ERR;
         return 0;
     }
@@ -1692,7 +1692,7 @@ PassRefPtr<CanvasGradient> CanvasRenderingContext2D::createLinearGradient(float
 
 PassRefPtr<CanvasGradient> CanvasRenderingContext2D::createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1, ExceptionCode& ec)
 {
-    if (!isfinite(x0) || !isfinite(y0) || !isfinite(r0) || !isfinite(x1) || !isfinite(y1) || !isfinite(r1)) {
+    if (!std::isfinite(x0) || !std::isfinite(y0) || !std::isfinite(r0) || !std::isfinite(x1) || !std::isfinite(y1) || !std::isfinite(r1)) {
         ec = NOT_SUPPORTED_ERR;
         return 0;
     }
@@ -1835,7 +1835,7 @@ PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(float sw, float
         ec = INDEX_SIZE_ERR;
         return 0;
     }
-    if (!isfinite(sw) || !isfinite(sh)) {
+    if (!std::isfinite(sw) || !std::isfinite(sh)) {
         ec = NOT_SUPPORTED_ERR;
         return 0;
     }
@@ -1876,7 +1876,7 @@ PassRefPtr<ImageData> CanvasRenderingContext2D::getImageData(ImageBuffer::Coordi
         ec = INDEX_SIZE_ERR;
         return 0;
     }
-    if (!isfinite(sx) || !isfinite(sy) || !isfinite(sw) || !isfinite(sh)) {
+    if (!std::isfinite(sx) || !std::isfinite(sy) || !std::isfinite(sw) || !std::isfinite(sh)) {
         ec = NOT_SUPPORTED_ERR;
         return 0;
     }
@@ -1946,7 +1946,7 @@ void CanvasRenderingContext2D::putImageData(ImageData* data, ImageBuffer::Coordi
         ec = TYPE_MISMATCH_ERR;
         return;
     }
-    if (!isfinite(dx) || !isfinite(dy) || !isfinite(dirtyX) || !isfinite(dirtyY) || !isfinite(dirtyWidth) || !isfinite(dirtyHeight)) {
+    if (!std::isfinite(dx) || !std::isfinite(dy) || !std::isfinite(dirtyX) || !std::isfinite(dirtyY) || !std::isfinite(dirtyWidth) || !std::isfinite(dirtyHeight)) {
         ec = NOT_SUPPORTED_ERR;
         return;
     }
@@ -2173,9 +2173,9 @@ void CanvasRenderingContext2D::drawTextInternal(const String& text, float x, flo
         return;
     if (!state().m_invertibleCTM)
         return;
-    if (!isfinite(x) | !isfinite(y))
+    if (!std::isfinite(x) | !std::isfinite(y))
         return;
-    if (useMaxWidth && (!isfinite(maxWidth) || maxWidth <= 0))
+    if (useMaxWidth && (!std::isfinite(maxWidth) || maxWidth <= 0))
         return;
 
     // If gradient size is zero, then paint nothing.
index 2ca943e..9447cfe 100644 (file)
@@ -135,7 +135,7 @@ double parseToDoubleForNumberType(const String& string, double fallbackValue)
         return fallbackValue;
 
     // NaN and infinity are considered valid by String::toDouble, but not valid here.
-    if (!isfinite(value))
+    if (!std::isfinite(value))
         return fallbackValue;
 
     // Numbers are considered finite IEEE 754 single-precision floating point values.
index 4813750..4bb27b1 100644 (file)
@@ -968,7 +968,7 @@ void MediaControlTimelineElement::setPosition(float currentTime)
 
 void MediaControlTimelineElement::setDuration(float duration)
 {
-    setAttribute(maxAttr, String::number(isfinite(duration) ? duration : 0));
+    setAttribute(maxAttr, String::number(std::isfinite(duration) ? duration : 0));
 }
 
 
index a5b3fb5..3814ded 100644 (file)
@@ -92,7 +92,7 @@ void MediaControls::reset()
     updateCurrentTimeDisplay();
 
     float duration = m_mediaController->duration();
-    if (isfinite(duration) || page->theme()->hasOwnDisabledStateHandlingFor(MediaSliderPart)) {
+    if (std::isfinite(duration) || page->theme()->hasOwnDisabledStateHandlingFor(MediaSliderPart)) {
         m_timeline->setDuration(duration);
         m_timeline->setPosition(m_mediaController->currentTime());
     }
index fed1f56..9ca2de7 100644 (file)
@@ -323,7 +323,7 @@ void MediaControlsApple::reset()
         m_fullScreenButton->hide();
 
     float duration = m_mediaController->duration();
-    if (isfinite(duration) || page->theme()->hasOwnDisabledStateHandlingFor(MediaSliderPart)) {
+    if (std::isfinite(duration) || page->theme()->hasOwnDisabledStateHandlingFor(MediaSliderPart)) {
         m_timeline->setDuration(duration);
         m_timelineContainer->show();
         m_timeline->setPosition(m_mediaController->currentTime());
index 69dce06..fe71583 100644 (file)
@@ -529,7 +529,7 @@ void MediaControlFullscreenTimelineElement::setPosition(float currentTime)
 
 void MediaControlFullscreenTimelineElement::setDuration(float duration)
 {
-    setAttribute(maxAttr, String::number(isfinite(duration) ? duration : 0));
+    setAttribute(maxAttr, String::number(std::isfinite(duration) ? duration : 0));
 }
 
 const AtomicString& MediaControlFullscreenTimelineElement::shadowPseudoId() const
@@ -912,7 +912,7 @@ void MediaControlsBlackBerry::reset()
             m_fullscreenFullScreenButton->hide();
     }
     float duration = m_mediaController->duration();
-    if (isfinite(duration) || page->theme()->hasOwnDisabledStateHandlingFor(MediaSliderPart)) {
+    if (std::isfinite(duration) || page->theme()->hasOwnDisabledStateHandlingFor(MediaSliderPart)) {
         float now = m_mediaController->currentTime();
         m_timeline->setDuration(duration);
         m_fullscreenTimeline->setDuration(duration);
index a44e3e0..cfb1ccb 100644 (file)
@@ -626,7 +626,7 @@ void InspectorBasicValue::writeJSON(StringBuilder* output) const
             output->append(falseString, 5);
     } else if (type() == TypeNumber) {
         NumberToLStringBuffer buffer;
-        if (!isfinite(m_doubleValue)) {
+        if (!std::isfinite(m_doubleValue)) {
             output->append(nullString, 4);
             return;
         }
index 98593b2..edf91e5 100644 (file)
@@ -422,9 +422,9 @@ double CachedResource::currentAge() const
     // RFC2616 13.2.3
     // No compensation for latency as that is not terribly important in practice
     double dateValue = m_response.date();
-    double apparentAge = isfinite(dateValue) ? std::max(0., m_responseTimestamp - dateValue) : 0;
+    double apparentAge = std::isfinite(dateValue) ? std::max(0., m_responseTimestamp - dateValue) : 0;
     double ageValue = m_response.age();
-    double correctedReceivedAge = isfinite(ageValue) ? std::max(apparentAge, ageValue) : apparentAge;
+    double correctedReceivedAge = std::isfinite(ageValue) ? std::max(apparentAge, ageValue) : apparentAge;
     double residentTime = currentTime() - m_responseTimestamp;
     return correctedReceivedAge + residentTime;
 }
@@ -437,15 +437,15 @@ double CachedResource::freshnessLifetime() const
 
     // RFC2616 13.2.4
     double maxAgeValue = m_response.cacheControlMaxAge();
-    if (isfinite(maxAgeValue))
+    if (std::isfinite(maxAgeValue))
         return maxAgeValue;
     double expiresValue = m_response.expires();
     double dateValue = m_response.date();
-    double creationTime = isfinite(dateValue) ? dateValue : m_responseTimestamp;
-    if (isfinite(expiresValue))
+    double creationTime = std::isfinite(dateValue) ? dateValue : m_responseTimestamp;
+    if (std::isfinite(expiresValue))
         return expiresValue - creationTime;
     double lastModifiedValue = m_response.lastModified();
-    if (isfinite(lastModifiedValue))
+    if (std::isfinite(lastModifiedValue))
         return (creationTime - lastModifiedValue) * 0.1;
     // If no cache headers are present, the specification leaves the decision to the UA. Other browsers seem to opt for 0.
     return 0;
index df53a15..a9527e1 100644 (file)
@@ -321,14 +321,14 @@ FloatRect DOMWindow::adjustWindowRect(Page* page, const FloatRect& pendingChange
     FloatRect window = page->chrome()->windowRect();
 
     // Make sure we're in a valid state before adjusting dimensions.
-    ASSERT(isfinite(screen.x()));
-    ASSERT(isfinite(screen.y()));
-    ASSERT(isfinite(screen.width()));
-    ASSERT(isfinite(screen.height()));
-    ASSERT(isfinite(window.x()));
-    ASSERT(isfinite(window.y()));
-    ASSERT(isfinite(window.width()));
-    ASSERT(isfinite(window.height()));
+    ASSERT(std::isfinite(screen.x()));
+    ASSERT(std::isfinite(screen.y()));
+    ASSERT(std::isfinite(screen.width()));
+    ASSERT(std::isfinite(screen.height()));
+    ASSERT(std::isfinite(window.x()));
+    ASSERT(std::isfinite(window.y()));
+    ASSERT(std::isfinite(window.width()));
+    ASSERT(std::isfinite(window.height()));
 
     // Update window values if new requested values are not NaN.
     if (!std::isnan(pendingChanges.x()))
index c7bc6ca..0c0f3d8 100644 (file)
@@ -528,7 +528,7 @@ bool DateComponents::setMillisecondsSinceEpochForDateInternal(double ms)
 bool DateComponents::setMillisecondsSinceEpochForDate(double ms)
 {
     m_type = Invalid;
-    if (!isfinite(ms))
+    if (!std::isfinite(ms))
         return false;
     if (!setMillisecondsSinceEpochForDateInternal(round(ms)))
         return false;
@@ -541,7 +541,7 @@ bool DateComponents::setMillisecondsSinceEpochForDate(double ms)
 bool DateComponents::setMillisecondsSinceEpochForDateTime(double ms)
 {
     m_type = Invalid;
-    if (!isfinite(ms))
+    if (!std::isfinite(ms))
         return false;
     ms = round(ms);
     setMillisecondsSinceMidnightInternal(positiveFmod(ms, msPerDay));
@@ -565,7 +565,7 @@ bool DateComponents::setMillisecondsSinceEpochForDateTimeLocal(double ms)
 bool DateComponents::setMillisecondsSinceEpochForMonth(double ms)
 {
     m_type = Invalid;
-    if (!isfinite(ms))
+    if (!std::isfinite(ms))
         return false;
     if (!setMillisecondsSinceEpochForDateInternal(round(ms)))
         return false;
@@ -578,7 +578,7 @@ bool DateComponents::setMillisecondsSinceEpochForMonth(double ms)
 bool DateComponents::setMillisecondsSinceMidnight(double ms)
 {
     m_type = Invalid;
-    if (!isfinite(ms))
+    if (!std::isfinite(ms))
         return false;
     setMillisecondsSinceMidnightInternal(positiveFmod(round(ms), msPerDay));
     m_type = Time;
@@ -587,7 +587,7 @@ bool DateComponents::setMillisecondsSinceMidnight(double ms)
 
 bool DateComponents::setMonthsSinceEpoch(double months)
 {
-    if (!isfinite(months))
+    if (!std::isfinite(months))
         return false;
     months = round(months);
     double doubleMonth = positiveFmod(months, 12);
@@ -617,7 +617,7 @@ static int offsetTo1stWeekStart(int year)
 bool DateComponents::setMillisecondsSinceEpochForWeek(double ms)
 {
     m_type = Invalid;
-    if (!isfinite(ms))
+    if (!std::isfinite(ms))
         return false;
     ms = round(ms);
 
index 0b73e30..a47c207 100644 (file)
@@ -680,7 +680,7 @@ Decimal Decimal::floor() const
 
 Decimal Decimal::fromDouble(double doubleValue)
 {
-    if (isfinite(doubleValue))
+    if (std::isfinite(doubleValue))
         return fromString(String::numberToStringECMAScript(doubleValue));
 
     if (std::isinf(doubleValue))
index 943cc7b..71bf327 100644 (file)
@@ -182,7 +182,7 @@ CString fileSystemRepresentation(const String&);
 inline bool isHandleValid(const PlatformFileHandle& handle) { return handle != invalidPlatformFileHandle; }
 
 inline double invalidFileTime() { return std::numeric_limits<double>::quiet_NaN(); }
-inline bool isValidFileTime(double time) { return isfinite(time); }
+inline bool isValidFileTime(double time) { return std::isfinite(time); }
 
 // Prefix is what the filename should be prefixed with, not the full path.
 String openTemporaryFile(const String& prefix, PlatformFileHandle&);
index 32d0783..3822a14 100644 (file)
@@ -910,7 +910,7 @@ String localizedMediaControlElementHelpText(const String& name)
 
 String localizedMediaTimeDescription(float time)
 {
-    if (!isfinite(time))
+    if (!std::isfinite(time))
         return WEB_UI_STRING("indefinite time", "accessibility help text for an indefinite media controller time value");
 
     int seconds = static_cast<int>(fabsf(time));
index 65d72c5..a67371d 100644 (file)
@@ -175,7 +175,7 @@ void drawPatternToCairoContext(cairo_t* cr, cairo_surface_t* image, const IntSiz
                                const AffineTransform& patternTransform, const FloatPoint& phase, cairo_operator_t op, const FloatRect& destRect)
 {
     // Avoid NaN
-    if (!isfinite(phase.x()) || !isfinite(phase.y()))
+    if (!std::isfinite(phase.x()) || !std::isfinite(phase.y()))
        return;
 
     cairo_save(cr);
index 5e94653..5fac5f0 100644 (file)
@@ -173,7 +173,7 @@ void Path::addArc(const FloatPoint& p, float r, float startAngle, float endAngle
 {
     // http://bugs.webkit.org/show_bug.cgi?id=16449
     // cairo_arc() functions hang or crash when passed inf as radius or start/end angle
-    if (!isfinite(r) || !isfinite(startAngle) || !isfinite(endAngle))
+    if (!std::isfinite(r) || !std::isfinite(startAngle) || !std::isfinite(endAngle))
         return;
 
     cairo_t* cr = ensurePlatformPath()->context();
@@ -330,7 +330,7 @@ FloatRect Path::strokeBoundingRect(StrokeStyleApplier* applier) const
 
 bool Path::contains(const FloatPoint& point, WindRule rule) const
 {
-    if (isNull() || !isfinite(point.x()) || !isfinite(point.y()))
+    if (isNull() || !std::isfinite(point.x()) || !std::isfinite(point.y()))
         return false;
     cairo_t* cr = platformPath()->context();
     cairo_fill_rule_t cur = cairo_get_fill_rule(cr);
index 61e6817..0dbc683 100644 (file)
@@ -285,7 +285,7 @@ void Path::closeSubpath()
 void Path::addArc(const FloatPoint& p, float r, float sa, float ea, bool clockwise)
 {
     // Workaround for <rdar://problem/5189233> CGPathAddArc hangs or crashes when passed inf as start or end angle
-    if (isfinite(sa) && isfinite(ea))
+    if (std::isfinite(sa) && std::isfinite(ea))
         CGPathAddArc(ensurePlatformPath(), 0, p.x(), p.y(), r, sa, ea, clockwise);
 }
 
index 05e5316..47a6afc 100644 (file)
@@ -136,7 +136,7 @@ void FullscreenVideoControllerGStreamer::setVolume(float volume)
 
 String FullscreenVideoControllerGStreamer::timeToString(float time)
 {
-    if (!isfinite(time))
+    if (!std::isfinite(time))
         time = 0;
     int seconds = fabsf(time);
     int hours = seconds / (60 * 60);
index a1fe36a..9314ba7 100644 (file)
@@ -307,7 +307,7 @@ void Path::addArc(const FloatPoint& center, float radius, float startAngle, floa
     // The OpenVG spec says nothing about inf as radius or start/end angle.
     // WebKit seems to pass those (e.g. https://bugs.webkit.org/show_bug.cgi?id=16449),
     // so abort instead of risking undefined behavior.
-    if (!isfinite(radius) || !isfinite(startAngle) || !isfinite(endAngle))
+    if (!std::isfinite(radius) || !std::isfinite(startAngle) || !std::isfinite(endAngle))
         return;
 
     // For some reason, the HTML 5 spec defines the angle as going clockwise
index 358f86d..2046a1b 100644 (file)
@@ -54,12 +54,12 @@ Color SkPMColorToWebCoreColor(SkPMColor);
 // Skia has problems when passed infinite, etc floats, filter them to 0.
 inline SkScalar WebCoreFloatToSkScalar(float f)
 {
-    return SkFloatToScalar(isfinite(f) ? f : 0);
+    return SkFloatToScalar(std::isfinite(f) ? f : 0);
 }
 
 inline SkScalar WebCoreDoubleToSkScalar(double d)
 {
-    return SkDoubleToScalar(isfinite(d) ? d : 0);
+    return SkDoubleToScalar(std::isfinite(d) ? d : 0);
 }
 
 // Computes the smallest rectangle that, which when drawn to the given canvas,
index 35c3d77..df18473 100644 (file)
@@ -574,7 +574,7 @@ PassRefPtr<TimeRanges> MediaPlayerPrivateQuickTimeVisualContext::buffered() cons
 float MediaPlayerPrivateQuickTimeVisualContext::maxTimeSeekable() const
 {
     // infinite duration means live stream
-    return !isfinite(duration()) ? 0 : maxTimeLoaded();
+    return !std::isfinite(duration()) ? 0 : maxTimeLoaded();
 }
 
 float MediaPlayerPrivateQuickTimeVisualContext::maxTimeLoaded() const
index ae3a4de..b02caa2 100644 (file)
@@ -623,7 +623,7 @@ String localizedMediaControlElementHelpText(const String& name)
 
 String localizedMediaTimeDescription(float time)
 {
-    if (!isfinite(time))
+    if (!std::isfinite(time))
         return String::fromUTF8(_("indefinite time"));
 
     int seconds = static_cast<int>(abs(time));
index dc38556..c265484 100644 (file)
@@ -587,7 +587,7 @@ static NSString *timeToString(double time)
 {
     ASSERT_ARG(time, time >= 0);
 
-    if (!isfinite(time))
+    if (!std::isfinite(time))
         time = 0;
 
     int seconds = narrowPrecisionToFloat(abs(time));
index 58712d7..62ae6a9 100644 (file)
@@ -428,7 +428,7 @@ static double parseDateValueInHeader(const HTTPHeaderMap& headers, const AtomicS
     // Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
     // Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
     double dateInMilliseconds = parseDate(headerValue);
-    if (!isfinite(dateInMilliseconds))
+    if (!std::isfinite(dateInMilliseconds))
         return std::numeric_limits<double>::quiet_NaN();
     return dateInMilliseconds / 1000;
 }
index 9141f86..41f6939 100644 (file)
@@ -585,7 +585,7 @@ String localizedMediaControlElementHelpText(const String& name)
 
 String localizedMediaTimeDescription(float time)
 {
-    if (!isfinite(time))
+    if (!std::isfinite(time))
         return QCoreApplication::translate("QWebPage", "Indefinite time", "Media time description");
 
     int seconds = (int)fabsf(time);
index 016aefe..6b3c1b8 100644 (file)
@@ -961,11 +961,11 @@ bool RenderFlexibleBox::resolveFlexibleLengths(FlexSign flexSign, const OrderedF
             LayoutUnit preferredChildSize = preferredMainAxisContentExtentForChild(child);
             LayoutUnit childSize = preferredChildSize;
             double extraSpace = 0;
-            if (availableFreeSpace > 0 && totalFlexGrow > 0 && flexSign == PositiveFlexibility && isfinite(totalFlexGrow))
+            if (availableFreeSpace > 0 && totalFlexGrow > 0 && flexSign == PositiveFlexibility && std::isfinite(totalFlexGrow))
                 extraSpace = availableFreeSpace * child->style()->flexGrow() / totalFlexGrow;
-            else if (availableFreeSpace < 0 && totalWeightedFlexShrink > 0 && flexSign == NegativeFlexibility && isfinite(totalWeightedFlexShrink))
+            else if (availableFreeSpace < 0 && totalWeightedFlexShrink > 0 && flexSign == NegativeFlexibility && std::isfinite(totalWeightedFlexShrink))
                 extraSpace = availableFreeSpace * child->style()->flexShrink() * preferredChildSize / totalWeightedFlexShrink;
-            if (isfinite(extraSpace))
+            if (std::isfinite(extraSpace))
                 childSize += roundedLayoutUnit(extraSpace);
 
             LayoutUnit adjustedChildSize = adjustChildSizeForMinAndMax(child, childSize);
index d509c48..b340f51 100644 (file)
@@ -421,9 +421,9 @@ void RenderMediaControlsChromium::adjustMediaSliderThumbSize(RenderStyle* style)
 
 static String formatChromiumMediaControlsTime(float time, float duration)
 {
-    if (!isfinite(time))
+    if (!std::isfinite(time))
         time = 0;
-    if (!isfinite(duration))
+    if (!std::isfinite(duration))
         duration = 0;
     int seconds = static_cast<int>(fabsf(time));
     int hours = seconds / (60 * 60);
index 0dc52f8..75974e6 100644 (file)
@@ -491,7 +491,7 @@ bool RenderTheme::paintDecorations(RenderObject* o, const PaintInfo& paintInfo,
 
 String RenderTheme::formatMediaControlsTime(float time) const
 {
-    if (!isfinite(time))
+    if (!std::isfinite(time))
         time = 0;
     int seconds = (int)fabsf(time);
     int hours = seconds / (60 * 60);
index 725b8d8..022b54a 100644 (file)
@@ -1290,8 +1290,8 @@ void RenderStyle::setFontSize(float size)
     // size must be specifiedSize if Text Autosizing is enabled, but computedSize if text
     // zoom is enabled (if neither is enabled it's irrelevant as they're probably the same).
 
-    ASSERT(isfinite(size));
-    if (!isfinite(size) || size < 0)
+    ASSERT(std::isfinite(size));
+    if (!std::isfinite(size) || size < 0)
         size = 0;
     else
         size = min(maximumAllowedFontSize, size);
index f908e0d..6f09708 100644 (file)
@@ -473,7 +473,7 @@ bool SVGPathParser::decomposeArcToCubic(float angle, float rx, float ry, FloatPo
         float endTheta = theta1 + (i + 1) * thetaArc / segments;
 
         float t = (8 / 6.f) * tanf(0.25f * (endTheta - startTheta));
-        if (!isfinite(t))
+        if (!std::isfinite(t))
             return false;
         float sinStartTheta = sinf(startTheta);
         float cosStartTheta = cosf(startTheta);
index 9cbcff7..6b095a8 100644 (file)
@@ -657,7 +657,7 @@ Value FunCeiling::evaluate() const
 double FunRound::round(double val)
 {
     if (!std::isnan(val) && !std::isinf(val)) {
-        if (signbit(val) && val >= -0.5)
+        if (std::signbit(val) && val >= -0.5)
             val *= 0; // negative zero
         else
             val = floor(val + 0.5);
index f92cbc8..ed43f48 100644 (file)
@@ -128,7 +128,7 @@ String Value::toString() const
             if (m_number == 0)
                 return "0";
             if (std::isinf(m_number))
-                return signbit(m_number) ? "-Infinity" : "Infinity";
+                return std::signbit(m_number) ? "-Infinity" : "Infinity";
             return String::number(m_number);
         case BooleanValue:
             return m_bool ? "true" : "false";
index a7edd23..f2ef0a8 100644 (file)
@@ -1,3 +1,16 @@
+2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
+
+        Stop placing std::isfinite and std::signbit inside the global scope
+        https://bugs.webkit.org/show_bug.cgi?id=109817
+
+        Reviewed by Darin Adler.
+
+        Prefix calls to the isfinite and signbit methods with std:: as the two
+        methods are no longer being imported into the global scope.
+
+        * FullscreenVideoController.cpp:
+        (timeToString):
+
 2013-02-15  Rik Cabanier  <cabanier@adobe.com>
 
         Add platform support for -webkit-background-blend-mode to CG context
index 85a0ca4..26469d0 100644 (file)
@@ -469,7 +469,7 @@ void FullscreenVideoController::createHUDWindow()
 
 static String timeToString(float time)
 {
-    if (!isfinite(time))
+    if (!std::isfinite(time))
         time = 0;
     int seconds = fabsf(time); 
     int hours = seconds / (60 * 60);