| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index c8acb4707181a7c7f8ab1ad7e2a32d92ef4eb8e1..a5d69b3fea7d7bd47b40687ecc0dbcf42e94ecfe 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -4676,7 +4676,7 @@ static inline uint32_t HashSequentialString(const schar* chars, int length) {
|
|
|
| uint32_t String::ComputeAndSetHash() {
|
| // Should only be called if hash code has not yet been computed.
|
| - ASSERT(!(hash_field() & kHashComputedMask));
|
| + ASSERT(!HasHashCode());
|
|
|
| const int len = length();
|
|
|
| @@ -4695,7 +4695,7 @@ uint32_t String::ComputeAndSetHash() {
|
| set_hash_field(field);
|
|
|
| // Check the hash code is there.
|
| - ASSERT(hash_field() & kHashComputedMask);
|
| + ASSERT(HasHashCode());
|
| uint32_t result = field >> kHashShift;
|
| ASSERT(result != 0); // Ensure that the hash value of 0 is never computed.
|
| return result;
|
| @@ -4750,8 +4750,7 @@ bool String::SlowAsArrayIndex(uint32_t* index) {
|
| static inline uint32_t HashField(uint32_t hash,
|
| bool is_array_index,
|
| int length = -1) {
|
| - uint32_t result =
|
| - (hash << String::kHashShift) | String::kHashComputedMask;
|
| + uint32_t result = (hash << String::kHashShift);
|
| if (is_array_index) {
|
| // For array indexes mix the length into the hash as an array index could
|
| // be zero.
|
| @@ -5546,7 +5545,7 @@ Object* JSObject::SetElementsLength(Object* len) {
|
| // General slow case.
|
| if (len->IsNumber()) {
|
| uint32_t length;
|
| - if (Array::IndexFromObject(len, &length)) {
|
| + if (len->ToArrayIndex(&length)) {
|
| return SetSlowElements(len);
|
| } else {
|
| return ArrayLengthRangeError();
|
| @@ -5869,8 +5868,7 @@ Object* JSObject::SetFastElement(uint32_t index, Object* value) {
|
| if (IsJSArray()) {
|
| // Update the length of the array if needed.
|
| uint32_t array_length = 0;
|
| - CHECK(Array::IndexFromObject(JSArray::cast(this)->length(),
|
| - &array_length));
|
| + CHECK(JSArray::cast(this)->length()->ToArrayIndex(&array_length));
|
| if (index >= array_length) {
|
| JSArray::cast(this)->set_length(Smi::FromInt(index + 1));
|
| }
|
| @@ -6021,8 +6019,7 @@ Object* JSObject::SetElementWithoutInterceptor(uint32_t index, Object* value) {
|
| if (ShouldConvertToFastElements()) {
|
| uint32_t new_length = 0;
|
| if (IsJSArray()) {
|
| - CHECK(Array::IndexFromObject(JSArray::cast(this)->length(),
|
| - &new_length));
|
| + CHECK(JSArray::cast(this)->length()->ToArrayIndex(&new_length));
|
| JSArray::cast(this)->set_length(Smi::FromInt(new_length));
|
| } else {
|
| new_length = NumberDictionary::cast(elements())->max_number_key() + 1;
|
| @@ -6053,7 +6050,7 @@ Object* JSObject::SetElementWithoutInterceptor(uint32_t index, Object* value) {
|
|
|
| Object* JSArray::JSArrayUpdateLengthFromIndex(uint32_t index, Object* value) {
|
| uint32_t old_len = 0;
|
| - CHECK(Array::IndexFromObject(length(), &old_len));
|
| + CHECK(length()->ToArrayIndex(&old_len));
|
| // Check to see if we need to update the length. For now, we make
|
| // sure that the length stays within 32-bits (unsigned).
|
| if (index >= old_len && index != 0xffffffff) {
|
| @@ -6347,7 +6344,7 @@ bool JSObject::ShouldConvertToFastElements() {
|
| // fast elements.
|
| uint32_t length = 0;
|
| if (IsJSArray()) {
|
| - CHECK(Array::IndexFromObject(JSArray::cast(this)->length(), &length));
|
| + CHECK(JSArray::cast(this)->length()->ToArrayIndex(&length));
|
| } else {
|
| length = dictionary->max_number_key();
|
| }
|
|
|