| Index: src/heap/heap.h
|
| diff --git a/src/heap/heap.h b/src/heap/heap.h
|
| index 89885782b4507b867248e46848d3bd9e5ce58964..ed4ea0bc9470d7422ff4c5cf7835d73105576fea 100644
|
| --- a/src/heap/heap.h
|
| +++ b/src/heap/heap.h
|
| @@ -853,6 +853,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;
|
| }
|
| @@ -1453,6 +1460,11 @@ class Heap {
|
|
|
| bool deserialization_complete() const { return deserialization_complete_; }
|
|
|
| + bool promotion_failure() const { return promotion_failure_; }
|
| + void set_promotion_failure(bool promotion_failure) {
|
| + promotion_failure_ = promotion_failure;
|
| + }
|
| +
|
| protected:
|
| // Methods made available to tests.
|
|
|
| @@ -1618,13 +1630,18 @@ 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_;
|
| +
|
| // WeakHashTable that maps objects embedded in optimized code to dependent
|
| - // code list. It is initilized lazily and contains the undefined_value at
|
| + // code list. It is initialized lazily and contains the undefined_value at
|
| // start.
|
| Object* weak_object_to_code_table_;
|
|
|
| @@ -1960,7 +1977,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
|
| @@ -2133,6 +2151,11 @@ class Heap {
|
|
|
| bool deserialization_complete_;
|
|
|
| + // A promotion failure indicates that old space promotion failed during
|
| + // gc, i.e., some objects that should have gotten promoted had to stay in
|
| + // the new space (they were copied to the other semi-space).
|
| + bool promotion_failure_;
|
| +
|
| friend class AlwaysAllocateScope;
|
| friend class Deserializer;
|
| friend class Factory;
|
|
|