Index: src/code-stub-assembler.h |
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h |
index f122523090d787cf7b24dd3a2179019de23fcdef..76bd5dee425d1884140b46c0997fff4abdceadec 100644 |
--- a/src/code-stub-assembler.h |
+++ b/src/code-stub-assembler.h |
@@ -72,6 +72,9 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* BooleanMapConstant(); |
compiler::Node* EmptyStringConstant(); |
+ compiler::Node* FixedArrayMapConstant(); |
+ compiler::Node* FixedCowArrayMapConstant(); |
+ compiler::Node* FixedDoubleArrayMapConstant(); |
compiler::Node* HeapNumberMapConstant(); |
compiler::Node* NoContextConstant(); |
compiler::Node* NanConstant(); |
@@ -210,6 +213,8 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* LoadProperties(compiler::Node* object); |
// Load the elements backing store of a JSObject. |
compiler::Node* LoadElements(compiler::Node* object); |
+ // Load the length of a JSArray instance. |
+ compiler::Node* LoadJSArrayLength(compiler::Node* array); |
// Load the length of a fixed array base instance. |
compiler::Node* LoadFixedArrayBaseLength(compiler::Node* array); |
// Load the length of a fixed array base instance. |
@@ -317,12 +322,24 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* AllocateSeqTwoByteString(int length); |
compiler::Node* AllocateSeqTwoByteString(compiler::Node* context, |
compiler::Node* length); |
- // Allocated an JSArray |
- compiler::Node* AllocateJSArray(ElementsKind kind, compiler::Node* array_map, |
- compiler::Node* capacity, |
- compiler::Node* length, |
- compiler::Node* allocation_site = nullptr, |
- ParameterMode mode = INTEGER_PARAMETERS); |
+ // Allocate a JSArray without elements and initialize the header fields. |
+ compiler::Node* AllocateUninitializedJSArrayWithoutElements( |
+ ElementsKind kind, compiler::Node* array_map, compiler::Node* length, |
+ compiler::Node* allocation_site); |
+ // Allocate and return a JSArray with initialized header fields and its |
+ // uninitialized elements. |
+ // The ParameterMode argument is only used for the capacity parameter. |
+ std::pair<compiler::Node*, compiler::Node*> |
+ AllocateUninitializedJSArrayWithElements( |
+ ElementsKind kind, compiler::Node* array_map, compiler::Node* length, |
+ compiler::Node* allocation_site, compiler::Node* capacity, |
+ ParameterMode capacity_mode = INTEGER_PARAMETERS); |
+ // Allocate a JSArray and fill elements with the hole. |
+ // The ParameterMode argument is only used for the capacity parameter. |
+ compiler::Node* AllocateJSArray( |
+ ElementsKind kind, compiler::Node* array_map, compiler::Node* capacity, |
+ compiler::Node* length, compiler::Node* allocation_site = nullptr, |
+ ParameterMode capacity_mode = INTEGER_PARAMETERS); |
compiler::Node* AllocateFixedArray(ElementsKind kind, |
compiler::Node* capacity, |
@@ -762,6 +779,13 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
AllocationFlags flags, |
compiler::Node* top_adddress, |
compiler::Node* limit_address); |
+ // Allocate and return a JSArray of given total size in bytes with header |
+ // fields initialized. |
+ compiler::Node* AllocateUninitializedJSArray(ElementsKind kind, |
+ compiler::Node* array_map, |
+ compiler::Node* length, |
+ compiler::Node* allocation_site, |
+ compiler::Node* size_in_bytes); |
compiler::Node* SmiShiftBitsConstant(); |