diff --git a/src/flag-definitions.h b/src/flag-definitions.h index 5a44b609aa..06944a10f2 100644 --- a/src/flag-definitions.h +++ b/src/flag-definitions.h @@ -700,6 +700,8 @@ DEFINE_BOOL(trace_detached_contexts, false, DEFINE_IMPLICATION(trace_detached_contexts, track_detached_contexts) #ifdef VERIFY_HEAP DEFINE_BOOL(verify_heap, false, "verify heap pointers before and after GC") +DEFINE_BOOL(verify_heap_skip_remembered_set, false, + "disable remembered set verification") #endif DEFINE_BOOL(move_object_start, true, "enable moving of object starts") DEFINE_BOOL(memory_reducer, true, "use memory reducer") diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc index 8f75e14b78..71e1b60be9 100644 --- a/src/heap/spaces.cc +++ b/src/heap/spaces.cc @@ -1569,7 +1569,9 @@ void PagedSpace::Verify(ObjectVisitor* visitor) { // The object itself should look OK. object->ObjectVerify(); - heap()->VerifyRememberedSetFor(object); + if (!FLAG_verify_heap_skip_remembered_set) { + heap()->VerifyRememberedSetFor(object); + } // All the interior pointers should be contained in the heap. int size = object->Size(); @@ -3323,7 +3325,9 @@ void LargeObjectSpace::Verify() { // The object itself should look OK. object->ObjectVerify(); - heap()->VerifyRememberedSetFor(object); + if (!FLAG_verify_heap_skip_remembered_set) { + heap()->VerifyRememberedSetFor(object); + } // Byte arrays and strings don't have interior pointers. if (object->IsAbstractCode()) {