Index: test/cctest/cctest.h |
diff --git a/test/cctest/cctest.h b/test/cctest/cctest.h |
index bc800399abb656997748c8d92a66a8f2f9ac5be6..7f84c259f0c4cb1b135ae6a73d465d631d858e31 100644 |
--- a/test/cctest/cctest.h |
+++ b/test/cctest/cctest.h |
@@ -348,4 +348,26 @@ static inline void SimulateFullSpace(v8::internal::PagedSpace* space) { |
} |
+// Helper class for new allocations tracking and checking. |
+// To use checking of JS allocations tracking in a test, |
+// just create an instance of this class. |
+class HeapObjectsTracker { |
+ public: |
+ HeapObjectsTracker() { |
+ heap_profiler_ = i::Isolate::Current()->heap_profiler(); |
+ CHECK_NE(NULL, heap_profiler_); |
+ heap_profiler_->StartHeapAllocationsRecording(); |
+ } |
+ |
+ ~HeapObjectsTracker() { |
+ i::Isolate::Current()->heap()->CollectAllAvailableGarbage(); |
+ CHECK_EQ(0, heap_profiler_->FindUntrackedObjects()); |
+ heap_profiler_->StopHeapAllocationsRecording(); |
+ } |
+ |
+ private: |
+ i::HeapProfiler* heap_profiler_; |
+}; |
+ |
+ |
#endif // ifndef CCTEST_H_ |