| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index e3f67a481a063606f79854bd1db7d2f8b6d428ab..045846951001caa591ec9c598aa957ce505dc2f3 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -614,8 +614,8 @@ bool Object::IsHashTable() {
|
|
|
|
|
| bool Object::IsDictionary() {
|
| - return IsHashTable() && this !=
|
| - HeapObject::cast(this)->GetHeap()->symbol_table();
|
| + return IsHashTable() &&
|
| + this != HeapObject::cast(this)->GetHeap()->symbol_table();
|
| }
|
|
|
|
|
| @@ -3561,31 +3561,31 @@ JSObject::ElementsKind JSObject::GetElementsKind() {
|
| }
|
| HeapObject* array = elements();
|
| if (array->IsFixedArray()) {
|
| - // FAST_ELEMENTS or DICTIONARY_ELEMENTS are both stored in a
|
| - // FixedArray, but FAST_ELEMENTS is already handled above.
|
| + // FAST_ELEMENTS, DICTIONARY_ELEMENTS, and NON_STRICT_ARGUMENTS_ELEMENTS
|
| + // are all stored in a FixedArray, but FAST_ELEMENTS is already handled
|
| + // above.
|
| + if (array->map() == GetHeap()->non_strict_arguments_elements()) {
|
| + return NON_STRICT_ARGUMENTS_ELEMENTS;
|
| + }
|
| ASSERT(array->IsDictionary());
|
| return DICTIONARY_ELEMENTS;
|
| }
|
| - ASSERT(!map()->has_fast_elements());
|
| - if (array->IsExternalArray()) {
|
| - switch (array->map()->instance_type()) {
|
| - case EXTERNAL_BYTE_ARRAY_TYPE:
|
| - return EXTERNAL_BYTE_ELEMENTS;
|
| - case EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE:
|
| - return EXTERNAL_UNSIGNED_BYTE_ELEMENTS;
|
| - case EXTERNAL_SHORT_ARRAY_TYPE:
|
| - return EXTERNAL_SHORT_ELEMENTS;
|
| - case EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE:
|
| - return EXTERNAL_UNSIGNED_SHORT_ELEMENTS;
|
| - case EXTERNAL_INT_ARRAY_TYPE:
|
| - return EXTERNAL_INT_ELEMENTS;
|
| - case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE:
|
| - return EXTERNAL_UNSIGNED_INT_ELEMENTS;
|
| - case EXTERNAL_PIXEL_ARRAY_TYPE:
|
| - return EXTERNAL_PIXEL_ELEMENTS;
|
| - default:
|
| - break;
|
| - }
|
| + ASSERT(array->IsExternalArray());
|
| + switch (array->map()->instance_type()) {
|
| + case EXTERNAL_BYTE_ARRAY_TYPE:
|
| + return EXTERNAL_BYTE_ELEMENTS;
|
| + case EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE:
|
| + return EXTERNAL_UNSIGNED_BYTE_ELEMENTS;
|
| + case EXTERNAL_SHORT_ARRAY_TYPE:
|
| + return EXTERNAL_SHORT_ELEMENTS;
|
| + case EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE:
|
| + return EXTERNAL_UNSIGNED_SHORT_ELEMENTS;
|
| + case EXTERNAL_INT_ARRAY_TYPE:
|
| + return EXTERNAL_INT_ELEMENTS;
|
| + case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE:
|
| + return EXTERNAL_UNSIGNED_INT_ELEMENTS;
|
| + case EXTERNAL_PIXEL_ARRAY_TYPE:
|
| + return EXTERNAL_PIXEL_ELEMENTS;
|
| }
|
| ASSERT(array->map()->instance_type() == EXTERNAL_FLOAT_ARRAY_TYPE);
|
| return EXTERNAL_FLOAT_ELEMENTS;
|
|
|