Bug 888568 - Range analysis, Handle int32 infinities on MAbs. r=mjrosenb

This commit is contained in:
Nicolas B. Pierron 2013-07-02 17:38:42 -07:00
Родитель 859bfce8ec
Коммит cc2bd05797
2 изменённых файлов: 12 добавлений и 2 удалений

Просмотреть файл

@ -682,8 +682,13 @@ MAbs::computeRange()
Range other(getOperand(0));
Range *range = new Range(0,
Max(Abs<int64_t>(other.lower()), Abs<int64_t>(other.upper())),
int64_t max = 0;
if (other.isInt32())
max = Max(Abs<int64_t>(other.lower()), Abs<int64_t>(other.upper()));
else
max = RANGE_INF_MAX;
Range *range = new Range(0, max,
other.isDecimal(),
other.exponent());
setRange(range);

Просмотреть файл

@ -0,0 +1,5 @@
function f() {
return (42.0 + Math.abs(1.0e60)) | 0;
}
assertEq(f(), 0);
assertEq(f(), 0);