Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index 00874798fc53e04ff79239b1c399dc24da8ab9f5..b42f7b8efc073a49256e4518dba42350fc7437a4 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -52,6 +52,7 @@ |
V(Map, scope_info_map, ScopeInfoMap) \ |
V(Map, fixed_cow_array_map, FixedCOWArrayMap) \ |
V(Map, fixed_double_array_map, FixedDoubleArrayMap) \ |
+ V(Map, constant_pool_array_map, ConstantPoolArrayMap) \ |
V(Map, weak_cell_map, WeakCellMap) \ |
V(Map, one_byte_string_map, OneByteStringMap) \ |
V(Map, one_byte_internalized_string_map, OneByteInternalizedStringMap) \ |
@@ -59,6 +60,7 @@ |
V(FixedArray, empty_fixed_array, EmptyFixedArray) \ |
V(ByteArray, empty_byte_array, EmptyByteArray) \ |
V(DescriptorArray, empty_descriptor_array, EmptyDescriptorArray) \ |
+ V(ConstantPoolArray, empty_constant_pool_array, EmptyConstantPoolArray) \ |
/* The roots above this line should be boring from a GC point of view. */ \ |
/* This means they are never in new space and never on a page that is */ \ |
/* being compacted. */ \ |
@@ -348,6 +350,7 @@ |
V(ScopeInfoMap) \ |
V(FixedCOWArrayMap) \ |
V(FixedDoubleArrayMap) \ |
+ V(ConstantPoolArrayMap) \ |
V(WeakCellMap) \ |
V(NoInterceptorResultSentinel) \ |
V(HashTableMap) \ |
@@ -355,6 +358,7 @@ |
V(EmptyFixedArray) \ |
V(EmptyByteArray) \ |
V(EmptyDescriptorArray) \ |
+ V(EmptyConstantPoolArray) \ |
V(ArgumentsMarker) \ |
V(SymbolMap) \ |
V(SloppyArgumentsElementsMap) \ |
@@ -1963,6 +1967,12 @@ |
MUST_USE_RESULT inline AllocationResult CopyFixedDoubleArray( |
FixedDoubleArray* src); |
+ // Make a copy of src and return it. Returns |
+ // Failure::RetryAfterGC(requested_bytes, space) if the allocation failed. |
+ MUST_USE_RESULT inline AllocationResult CopyConstantPoolArray( |
+ ConstantPoolArray* src); |
+ |
+ |
// Computes a single character string where the character has code. |
// A cache is used for one-byte (Latin1) codes. |
MUST_USE_RESULT AllocationResult |
@@ -1971,6 +1981,17 @@ |
// Allocate a symbol in old space. |
MUST_USE_RESULT AllocationResult AllocateSymbol(); |
+ // Make a copy of src, set the map, and return the copy. |
+ MUST_USE_RESULT AllocationResult |
+ CopyConstantPoolArrayWithMap(ConstantPoolArray* src, Map* map); |
+ |
+ MUST_USE_RESULT AllocationResult AllocateConstantPoolArray( |
+ const ConstantPoolArray::NumberOfEntries& small); |
+ |
+ MUST_USE_RESULT AllocationResult AllocateExtendedConstantPoolArray( |
+ const ConstantPoolArray::NumberOfEntries& small, |
+ const ConstantPoolArray::NumberOfEntries& extended); |
+ |
// Allocates an external array of the specified length and type. |
MUST_USE_RESULT AllocationResult |
AllocateExternalArray(int length, ExternalArrayType array_type, |
@@ -2009,6 +2030,9 @@ |
// Allocate empty fixed typed array of given type. |
MUST_USE_RESULT AllocationResult |
AllocateEmptyFixedTypedArray(ExternalArrayType array_type); |
+ |
+ // Allocate empty constant pool array. |
+ MUST_USE_RESULT AllocationResult AllocateEmptyConstantPoolArray(); |
// Allocate a tenured simple cell. |
MUST_USE_RESULT AllocationResult AllocateCell(Object* value); |