Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index 184cb42b2ee8f6ef9043b1892fb65c693ab51f9f..49519a267671d7aa615c379ff312d958973b4db9 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -832,6 +832,8 @@ class Heap { |
Object* weak_object_to_code_table() { return weak_object_to_code_table_; } |
+ Object* embedded_map_cache() { return embedded_map_cache_; } |
+ |
void set_encountered_weak_collections(Object* weak_collection) { |
encountered_weak_collections_ = weak_collection; |
} |
@@ -861,6 +863,7 @@ class Heap { |
// from start to end. |
void IterateAndMarkPointersToFromSpace(Address start, Address end, |
ObjectSlotCallback callback); |
+ void IterateEmbeddedMapCache(ObjectVisitor* v); |
// Returns whether the object resides in new space. |
inline bool InNewSpace(Object* object); |
@@ -1398,8 +1401,12 @@ class Heap { |
set_weak_object_to_code_table(undefined_value()); |
} |
+ void InitializeEmbeddedMapCache() { embedded_map_cache_ = undefined_value(); } |
+ |
void EnsureWeakObjectToCodeTable(); |
+ void CacheEmbeddedMap(Handle<Map> map); |
+ |
static void FatalProcessOutOfMemory(const char* location, |
bool take_snapshot = false); |
@@ -1583,6 +1590,8 @@ class Heap { |
// start. |
Object* weak_object_to_code_table_; |
+ Object* embedded_map_cache_; |
+ |
// List of encountered weak collections (JSWeakMap and JSWeakSet) during |
// marking. It is initialized during marking, destroyed after marking and |
// contains Smi(0) while marking is not active. |
@@ -2001,6 +2010,8 @@ class Heap { |
return &weak_object_to_code_table_; |
} |
+ Object** embedded_map_cache_address() { return &embedded_map_cache_; } |
+ |
inline void UpdateAllocationsHash(HeapObject* object); |
inline void UpdateAllocationsHash(uint32_t value); |
inline void PrintAlloctionsHash(); |