diff --git a/src/objects-debug.cc b/src/objects-debug.cc index 3716df1e87..acb00da40e 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(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(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(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(elements()) != + GetHeap()->one_pointer_filler_map())) { CHECK(elements()->IsUndefined() || elements()->IsFixedArray() || elements()->IsFixedDoubleArray());