Reviewers: William Hesse, Description: Speculative fix for computing Math.pow(2, -1074) on win32 where the overloaded pow(double, int) function from math.h produces the wrong answer.
[email protected] Please review this at http://codereview.chromium.org/131022 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/runtime.cc Index: src/runtime.cc =================================================================== --- src/runtime.cc (revision 2213) +++ src/runtime.cc (working copy) @@ -4170,7 +4170,9 @@ // internal precision in the pow() implementation would have // given us a finite p. This happens very rarely. double result = 1.0 / p; - return (result == 0 && isinf(p)) ? pow(x, y) : result; + return (result == 0 && isinf(p)) + ? pow(x, static_cast<double>(y)) // Avoid pow(double, int). + : result; } else { return p; } --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
