| Index: test/cctest/test-heap.cc
|
| ===================================================================
|
| --- test/cctest/test-heap.cc (revision 5365)
|
| +++ test/cctest/test-heap.cc (working copy)
|
| @@ -637,22 +637,27 @@
|
| // Allocate the object.
|
| Handle<JSObject> object = Factory::NewJSObject(function);
|
| Handle<JSArray> array = Handle<JSArray>::cast(object);
|
| - array->Initialize(0);
|
| + Object* ok = array->Initialize(0);
|
| + // We just initialized the VM, no heap allocation failure yet.
|
| + CHECK(!ok->IsFailure());
|
|
|
| // Set array length to 0.
|
| - array->SetElementsLength(Smi::FromInt(0));
|
| + ok = array->SetElementsLength(Smi::FromInt(0));
|
| + CHECK(!ok->IsFailure());
|
| CHECK_EQ(Smi::FromInt(0), array->length());
|
| CHECK(array->HasFastElements()); // Must be in fast mode.
|
|
|
| // array[length] = name.
|
| - array->SetElement(0, *name);
|
| + ok = array->SetElement(0, *name);
|
| + CHECK(!ok->IsFailure());
|
| CHECK_EQ(Smi::FromInt(1), array->length());
|
| CHECK_EQ(array->GetElement(0), *name);
|
|
|
| // Set array length with larger than smi value.
|
| Handle<Object> length =
|
| Factory::NewNumberFromUint(static_cast<uint32_t>(Smi::kMaxValue) + 1);
|
| - array->SetElementsLength(*length);
|
| + ok = array->SetElementsLength(*length);
|
| + CHECK(!ok->IsFailure());
|
|
|
| uint32_t int_length = 0;
|
| CHECK(length->ToArrayIndex(&int_length));
|
| @@ -660,7 +665,8 @@
|
| CHECK(array->HasDictionaryElements()); // Must be in slow mode.
|
|
|
| // array[length] = name.
|
| - array->SetElement(int_length, *name);
|
| + ok = array->SetElement(int_length, *name);
|
| + CHECK(!ok->IsFailure());
|
| uint32_t new_int_length = 0;
|
| CHECK(array->length()->ToArrayIndex(&new_int_length));
|
| CHECK_EQ(static_cast<double>(int_length), new_int_length - 1);
|
| @@ -684,9 +690,12 @@
|
| obj->SetProperty(*first, Smi::FromInt(1), NONE);
|
| obj->SetProperty(*second, Smi::FromInt(2), NONE);
|
|
|
| - obj->SetElement(0, *first);
|
| - obj->SetElement(1, *second);
|
| + Object* ok = obj->SetElement(0, *first);
|
| + CHECK(!ok->IsFailure());
|
|
|
| + ok = obj->SetElement(1, *second);
|
| + CHECK(!ok->IsFailure());
|
| +
|
| // Make the clone.
|
| Handle<JSObject> clone = Copy(obj);
|
| CHECK(!clone.is_identical_to(obj));
|
| @@ -701,8 +710,10 @@
|
| clone->SetProperty(*first, Smi::FromInt(2), NONE);
|
| clone->SetProperty(*second, Smi::FromInt(1), NONE);
|
|
|
| - clone->SetElement(0, *second);
|
| - clone->SetElement(1, *first);
|
| + ok = clone->SetElement(0, *second);
|
| + CHECK(!ok->IsFailure());
|
| + ok = clone->SetElement(1, *first);
|
| + CHECK(!ok->IsFailure());
|
|
|
| CHECK_EQ(obj->GetElement(1), clone->GetElement(0));
|
| CHECK_EQ(obj->GetElement(0), clone->GetElement(1));
|
|
|