| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 3d354b8f07a774153480be105801a72fa683d3f4..402dbbe9abab44529ba63d6f8caa9e06026c99d9 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -1716,22 +1716,7 @@ void HeapObject::IterateBody(InstanceType type, int object_size,
|
|
|
|
|
| bool HeapNumber::HeapNumberBooleanValue() {
|
| - // NaN, +0, and -0 should return the false object
|
| -#if __BYTE_ORDER == __LITTLE_ENDIAN
|
| - union IeeeDoubleLittleEndianArchType u;
|
| -#elif __BYTE_ORDER == __BIG_ENDIAN
|
| - union IeeeDoubleBigEndianArchType u;
|
| -#endif
|
| - u.d = value();
|
| - if (u.bits.exp == 2047) {
|
| - // Detect NaN for IEEE double precision floating point.
|
| - if ((u.bits.man_low | u.bits.man_high) != 0) return false;
|
| - }
|
| - if (u.bits.exp == 0) {
|
| - // Detect +0, and -0 for IEEE double precision floating point.
|
| - if ((u.bits.man_low | u.bits.man_high) == 0) return false;
|
| - }
|
| - return true;
|
| + return DoubleToBoolean(value());
|
| }
|
|
|
|
|
| @@ -9399,29 +9384,7 @@ bool String::ComputeArrayIndex(uint32_t* index) {
|
| if (length == 0 || length > kMaxArrayIndexSize) return false;
|
| ConsStringIteratorOp op;
|
| StringCharacterStream stream(this, &op);
|
| - uint16_t ch = stream.GetNext();
|
| -
|
| - // If the string begins with a '0' character, it must only consist
|
| - // of it to be a legal array index.
|
| - if (ch == '0') {
|
| - *index = 0;
|
| - return length == 1;
|
| - }
|
| -
|
| - // Convert string to uint32 array index; character by character.
|
| - int d = ch - '0';
|
| - if (d < 0 || d > 9) return false;
|
| - uint32_t result = d;
|
| - while (stream.HasMore()) {
|
| - d = stream.GetNext() - '0';
|
| - if (d < 0 || d > 9) return false;
|
| - // Check that the new result is below the 32 bit limit.
|
| - if (result > 429496729U - ((d > 5) ? 1 : 0)) return false;
|
| - result = (result * 10) + d;
|
| - }
|
| -
|
| - *index = result;
|
| - return true;
|
| + return StringToArrayIndex(&stream, index);
|
| }
|
|
|
|
|
|
|