Change custom NaN check to use isnan to fix pixel array
failures on ARM hardware. Review URL: http://codereview.chromium.org/160269 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
516d47c73b
commit
f68b31403c
@ -7060,20 +7060,16 @@ Object* PixelArray::SetValue(uint32_t index, Object* value) {
|
||||
if (value->IsSmi()) {
|
||||
int_value = Smi::cast(value)->value();
|
||||
} else if (value->IsHeapNumber()) {
|
||||
static const DoubleRepresentation nan(OS::nan_value());
|
||||
DoubleRepresentation double_value = HeapNumber::cast(value)->value();
|
||||
if (nan.bits != double_value.bits) {
|
||||
int_value = static_cast<int>(double_value.value + 0.5);
|
||||
} else {
|
||||
// NaN clamps to zero.
|
||||
int_value = 0;
|
||||
double double_value = HeapNumber::cast(value)->value();
|
||||
if (!isnan(double_value)) {
|
||||
// NaN clamps to zero (default). Other doubles are rounded to
|
||||
// the nearest integer.
|
||||
int_value = static_cast<int>(double_value + 0.5);
|
||||
}
|
||||
} else if (value->IsUndefined()) {
|
||||
int_value = 0;
|
||||
} else {
|
||||
// All other types have been converted to a number type further up in the
|
||||
// call chain.
|
||||
UNREACHABLE();
|
||||
// Clamp undefined to zero (default). All other types have been
|
||||
// converted to a number type further up in the call chain.
|
||||
ASSERT(value->IsUndefined());
|
||||
}
|
||||
if (int_value < 0) {
|
||||
clamped_value = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user