Index: src/heap/spaces.h |
diff --git a/src/heap/spaces.h b/src/heap/spaces.h |
index b66b3f7a771981d76da64c5c28abb7c05ad09364..fce96772139fde9d79623e20f7c0a2a360e20f07 100644 |
--- a/src/heap/spaces.h |
+++ b/src/heap/spaces.h |
@@ -2657,6 +2657,31 @@ |
// ----------------------------------------------------------------------------- |
+// Old space for simple property cell objects |
+ |
+class CellSpace : public PagedSpace { |
+ public: |
+ // Creates a property cell space object with a maximum capacity. |
+ CellSpace(Heap* heap, intptr_t max_capacity, AllocationSpace id) |
+ : PagedSpace(heap, max_capacity, id, NOT_EXECUTABLE) {} |
+ |
+ virtual int RoundSizeDownToObjectAlignment(int size) { |
+ if (base::bits::IsPowerOfTwo32(Cell::kSize)) { |
+ return RoundDown(size, Cell::kSize); |
+ } else { |
+ return (size / Cell::kSize) * Cell::kSize; |
+ } |
+ } |
+ |
+ protected: |
+ virtual void VerifyObject(HeapObject* obj); |
+ |
+ public: |
+ TRACK_MEMORY("CellSpace") |
+}; |
+ |
+ |
+// ----------------------------------------------------------------------------- |
// Large objects ( > Page::kMaxHeapObjectSize ) are allocated and managed by |
// the large object space. A large object is allocated from OS heap with |
// extra padding bytes (Page::kPageSize + Page::kObjectStartOffset). |