Title: [167405] trunk/Source/_javascript_Core
- Revision
- 167405
- Author
- bfulg...@apple.com
- Date
- 2014-04-16 17:40:36 -0700 (Wed, 16 Apr 2014)
Log Message
[Win] Unreviewed Windows gardening. Restrict our new 'isinf' check
to 32-bit builds, and revise the comment to explain what we are
doing.
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::isMachineInt): Provide motivation for the new
'isinf' check for our 32-bit code path.
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (167404 => 167405)
--- trunk/Source/_javascript_Core/ChangeLog 2014-04-17 00:27:34 UTC (rev 167404)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-04-17 00:40:36 UTC (rev 167405)
@@ -1,3 +1,13 @@
+2014-04-16 Brent Fulgham <bfulg...@apple.com>
+
+ [Win] Unreviewed Windows gardening. Restrict our new 'isinf' check
+ to 32-bit builds, and revise the comment to explain what we are
+ doing.
+
+ * runtime/JSCJSValueInlines.h:
+ (JSC::JSValue::isMachineInt): Provide motivation for the new
+ 'isinf' check for our 32-bit code path.
+
2014-04-16 Juergen Ributzka <juer...@apple.com>
Allocate the data section on the heap again for FTL on ARM64
Modified: trunk/Source/_javascript_Core/runtime/JSCJSValueInlines.h (167404 => 167405)
--- trunk/Source/_javascript_Core/runtime/JSCJSValueInlines.h 2014-04-17 00:27:34 UTC (rev 167404)
+++ trunk/Source/_javascript_Core/runtime/JSCJSValueInlines.h 2014-04-17 00:40:36 UTC (rev 167405)
@@ -506,8 +506,12 @@
double number = asDouble();
if (number != number)
return false;
-#if OS(WINDOWS)
- // Need to check for infinity on Windows to avoid floating point error on following cast, see bug 131182.
+#if OS(WINDOWS) && CPU(X86)
+ // The VS Compiler for 32-bit builds generates a floating point error when attempting to cast
+ // from an infinity to a 64-bit integer. We leave this routine with the floating point error
+ // left in a register, causing undefined behavior in later floating point operations.
+ //
+ // To avoid this issue, we check for infinity here, and return false in that case.
if (std::isinf(number))
return false;
#endif
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes