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()); |