Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index dcf7bdea0ac812972304bd382d52b0a1f4c5eff2..d60a3f079b035e1e6bf98b5a944dbe33b3023452 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -883,6 +883,13 @@ |
return last_array_buffer_in_list_; |
} |
+ void set_new_array_buffer_views_list(Object* object) { |
+ new_array_buffer_views_list_ = object; |
+ } |
+ Object* new_array_buffer_views_list() const { |
+ return new_array_buffer_views_list_; |
+ } |
+ |
void set_allocation_sites_list(Object* object) { |
allocation_sites_list_ = object; |
} |
@@ -1489,6 +1496,18 @@ |
bool deserialization_complete() const { return deserialization_complete_; } |
+ bool migration_failure() const { return migration_failure_; } |
+ void set_migration_failure(bool migration_failure) { |
+ migration_failure_ = migration_failure; |
+ } |
+ |
+ bool previous_migration_failure() const { |
+ return previous_migration_failure_; |
+ } |
+ void set_previous_migration_failure(bool previous_migration_failure) { |
+ previous_migration_failure_ = previous_migration_failure; |
+ } |
+ |
protected: |
// Methods made available to tests. |
@@ -1662,6 +1681,11 @@ |
Object* array_buffers_list_; |
Object* last_array_buffer_in_list_; |
Object* allocation_sites_list_; |
+ |
+ // This is a global list of array buffer views in new space. When the views |
+ // get promoted, they are removed form the list and added to the corresponding |
+ // array buffer. |
+ Object* new_array_buffer_views_list_; |
// List of encountered weak collections (JSWeakMap and JSWeakSet) during |
// marking. It is initialized during marking, destroyed after marking and |
@@ -1993,6 +2017,7 @@ |
void ProcessNativeContexts(WeakObjectRetainer* retainer); |
void ProcessArrayBuffers(WeakObjectRetainer* retainer, bool stop_after_young); |
+ void ProcessNewArrayBufferViews(WeakObjectRetainer* retainer); |
void ProcessAllocationSites(WeakObjectRetainer* retainer); |
// Deopts all code that contains allocation instruction which are tenured or |
@@ -2151,6 +2176,13 @@ |
bool deserialization_complete_; |
bool concurrent_sweeping_enabled_; |
+ |
+ // A migration failure indicates that a semi-space copy of an object during |
+ // a scavenge failed and the object got promoted instead. |
+ bool migration_failure_; |
+ |
+ // A migration failure happened in the previous scavenge. |
+ bool previous_migration_failure_; |
friend class AlwaysAllocateScope; |
friend class Deserializer; |