Index: src/code-stub-assembler.h |
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h |
index f122523090d787cf7b24dd3a2179019de23fcdef..7a065e1037921320417149fe9641898448fc6ebc 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,7 +322,18 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* AllocateSeqTwoByteString(int length); |
compiler::Node* AllocateSeqTwoByteString(compiler::Node* context, |
compiler::Node* length); |
- // Allocated an JSArray |
+ // 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 and its uninitialized elements. |
+ // Also initializes JSArray header fields. |
+ 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); |
Michael Starzinger
2016/09/19 14:20:38
It is somewhat un-intuitive that the ParameterMode
klaasb
2016/09/19 14:46:37
Well, it also doesn't apply to any of the other tw
|
+ // Allocate a JSArray and fill elements with zero. |
Michael Starzinger
2016/09/19 14:20:38
nit: s/zero/the hole/
klaasb
2016/09/19 14:46:37
Done, oops.
|
compiler::Node* AllocateJSArray(ElementsKind kind, compiler::Node* array_map, |
compiler::Node* capacity, |
compiler::Node* length, |
@@ -762,6 +778,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(); |