| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index ad655b6a25975859612b2c9fa4514d57c95d0656..b74359740f09067f5be80393a54b3240e4e1ca20 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -1,4 +1,4 @@
|
| -// Copyright 2011 the V8 project authors. All rights reserved.
|
| +// Copyright 2012 the V8 project authors. All rights reserved.
|
| // Redistribution and use in source and binary forms, with or without
|
| // modification, are permitted provided that the following conditions are
|
| // met:
|
| @@ -2165,6 +2165,11 @@ bool Value::IsInt32() const {
|
| 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 false;
|
| @@ -2177,6 +2182,11 @@ 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 false;
|
|
|