From: kasperl@chromium.org Date: Thu, 18 Jun 2009 05:47:31 +0000 (+0000) Subject: Speculative fix for computing Math.pow(2, -1074) on win32 where X-Git-Tag: upstream/4.7.83~23869 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cbda639253cfe054d70ba63f7ad350360dd2f02e;p=platform%2Fupstream%2Fv8.git Speculative fix for computing Math.pow(2, -1074) on win32 where the overloaded pow(double, int) function from math.h produces the wrong answer. TBR=whesse@chromium.org Review URL: http://codereview.chromium.org/131022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/runtime.cc b/src/runtime.cc index e6455483c..f6b604ab2 100644 --- a/src/runtime.cc +++ b/src/runtime.cc @@ -4170,7 +4170,9 @@ static double powi(double x, int y) { // 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(y)) // Avoid pow(double, int). + : result; } else { return p; }