| Index: src/objects-debug.cc
|
| diff --git a/src/objects-debug.cc b/src/objects-debug.cc
|
| index 3716df1e87cf6069dce0ab83d7564aa150b02d97..acb00da40ed55d5d550758037dba05f1346b6863 100644
|
| --- a/src/objects-debug.cc
|
| +++ b/src/objects-debug.cc
|
| @@ -330,10 +330,11 @@ void JSObject::JSObjectVerify() {
|
| }
|
| }
|
|
|
| - // TODO(hpayer): deal gracefully with partially constructed JSObjects, when
|
| - // allocation folding is turned off.
|
| - if (reinterpret_cast<Map*>(elements()) !=
|
| - GetHeap()->one_pointer_filler_map()) {
|
| + // If a GC was caused while constructing this object, the elements
|
| + // pointer may point to a one pointer filler map.
|
| + if ((FLAG_use_gvn && FLAG_use_allocation_folding) ||
|
| + (reinterpret_cast<Map*>(elements()) !=
|
| + GetHeap()->one_pointer_filler_map())) {
|
| CHECK_EQ((map()->has_fast_smi_or_object_elements() ||
|
| (elements() == GetHeap()->empty_fixed_array())),
|
| (elements()->map() == GetHeap()->fixed_array_map() ||
|
| @@ -683,10 +684,11 @@ void Code::VerifyEmbeddedMapsDependency() {
|
| void JSArray::JSArrayVerify() {
|
| JSObjectVerify();
|
| CHECK(length()->IsNumber() || length()->IsUndefined());
|
| - // TODO(hpayer): deal gracefully with partially constructed JSObjects, when
|
| - // allocation folding is turned off.
|
| - if (reinterpret_cast<Map*>(elements()) !=
|
| - GetHeap()->one_pointer_filler_map()) {
|
| + // If a GC was caused while constructing this array, the elements
|
| + // pointer may point to a one pointer filler map.
|
| + if ((FLAG_use_gvn && FLAG_use_allocation_folding) ||
|
| + (reinterpret_cast<Map*>(elements()) !=
|
| + GetHeap()->one_pointer_filler_map())) {
|
| CHECK(elements()->IsUndefined() ||
|
| elements()->IsFixedArray() ||
|
| elements()->IsFixedDoubleArray());
|
|
|