From cbda639253cfe054d70ba63f7ad350360dd2f02e Mon Sep 17 00:00:00 2001 From: "kasperl@chromium.org" Date: Thu, 18 Jun 2009 05:47:31 +0000 Subject: [PATCH] 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 --- src/runtime.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; } -- 2.34.1