| 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);
|
|
|