| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index 02b6be4d3b7a4622a423d2232b9620796177afa7..b9af11ccc1b416409a6e13910bcc37fd0e9eac8c 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -2610,13 +2610,7 @@ bool Value::IsInt32() const {
|
| i::Handle<i::Object> obj = Utils::OpenHandle(this);
|
| if (obj->IsSmi()) return true;
|
| if (obj->IsNumber()) {
|
| - double value = obj->Number();
|
| - static const i::DoubleRepresentation minus_zero(-0.0);
|
| - i::DoubleRepresentation rep(value);
|
| - if (rep.bits == minus_zero.bits) {
|
| - return false;
|
| - }
|
| - return i::FastI2D(i::FastD2I(value)) == value;
|
| + return i::IsInt32Double(obj->Number());
|
| }
|
| return false;
|
| }
|
| @@ -2627,12 +2621,10 @@ bool Value::IsUint32() const {
|
| if (obj->IsSmi()) return i::Smi::cast(*obj)->value() >= 0;
|
| if (obj->IsNumber()) {
|
| double value = obj->Number();
|
| - static const i::DoubleRepresentation minus_zero(-0.0);
|
| - i::DoubleRepresentation rep(value);
|
| - if (rep.bits == minus_zero.bits) {
|
| - return false;
|
| - }
|
| - return i::FastUI2D(i::FastD2UI(value)) == value;
|
| + return !i::IsMinusZero(value) &&
|
| + value >= 0 &&
|
| + value <= i::kMaxUInt32 &&
|
| + value == i::FastUI2D(i::FastD2UI(value));
|
| }
|
| return false;
|
| }
|
|
|