diff --git a/src/heap.h b/src/heap.h index af6207dc9a..918e25efb5 100644 --- a/src/heap.h +++ b/src/heap.h @@ -2149,10 +2149,28 @@ class HeapStats { }; +#ifdef DEBUG +class DisallowAllocationFailure { + public: + inline DisallowAllocationFailure(); + inline ~DisallowAllocationFailure(); + + private: + bool old_state_; +}; +#endif + + class AlwaysAllocateScope { public: inline AlwaysAllocateScope(); inline ~AlwaysAllocateScope(); + +#ifdef DEBUG + private: + // Implicitly disable artificial allocation failures. + DisallowAllocationFailure disallow_allocation_failure_; +#endif }; @@ -2397,18 +2415,6 @@ class DescriptorLookupCache { }; -#ifdef DEBUG -class DisallowAllocationFailure { - public: - inline DisallowAllocationFailure(); - inline ~DisallowAllocationFailure(); - - private: - bool old_state_; -}; -#endif - - // A helper class to document/test C++ scopes where we do not // expect a GC. Usage: // diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc index daf45ad13e..22a3820786 100644 --- a/test/cctest/test-heap.cc +++ b/test/cctest/test-heap.cc @@ -1268,6 +1268,7 @@ static void FillUpNewSpace(NewSpace* new_space) { // that the scavenger does not undo the filling. v8::HandleScope scope; AlwaysAllocateScope always_allocate; + LinearAllocationScope allocate_linearly; intptr_t available = new_space->EffectiveCapacity() - new_space->Size(); intptr_t number_of_fillers = (available / FixedArray::SizeFor(32)) - 1; for (intptr_t i = 0; i < number_of_fillers; i++) {