| Index: src/heap/heap.h
|
| diff --git a/src/heap/heap.h b/src/heap/heap.h
|
| index 3720c82fff9aa7d1a617e56a1e8989b18ea3fb6b..b6d792cc05b49bb9a586db87615dc07c6d3db156 100644
|
| --- a/src/heap/heap.h
|
| +++ b/src/heap/heap.h
|
| @@ -870,6 +870,13 @@ class Heap {
|
| void set_array_buffers_list(Object* object) { array_buffers_list_ = object; }
|
| Object* array_buffers_list() const { return array_buffers_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;
|
| }
|
| @@ -1469,6 +1476,18 @@ class Heap {
|
|
|
| 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.
|
|
|
| @@ -1636,11 +1655,16 @@ class Heap {
|
| bool inline_allocation_disabled_;
|
|
|
| // Weak list heads, threaded through the objects.
|
| - // List heads are initilized lazily and contain the undefined_value at start.
|
| + // List heads are initialized lazily and contain the undefined_value at start.
|
| Object* native_contexts_list_;
|
| Object* array_buffers_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
|
| // contains Smi(0) while marking is not active.
|
| @@ -1973,7 +1997,8 @@ class Heap {
|
| void MarkCompactEpilogue();
|
|
|
| void ProcessNativeContexts(WeakObjectRetainer* retainer);
|
| - void ProcessArrayBuffers(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
|
| @@ -2135,6 +2160,13 @@ class Heap {
|
|
|
| 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;
|
| friend class Factory;
|
|
|