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
// 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;
}