Index: src/code-stub-assembler.h |
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h |
index e008a07a7452e7a00bc74008ccf9783d61178278..38f886e570b931765c401b546b619376dd86c731 100644 |
--- a/src/code-stub-assembler.h |
+++ b/src/code-stub-assembler.h |
@@ -19,6 +19,8 @@ class StubCache; |
enum class PrimitiveType { kBoolean, kNumber, kString, kSymbol }; |
+enum class IterationKind { kKeys, kValues, kEntries }; |
+ |
#define HEAP_CONSTANT_LIST(V) \ |
V(BooleanMap, BooleanMap) \ |
V(empty_string, EmptyString) \ |
@@ -140,6 +142,9 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
return WordOr(a, b); |
} |
+ // Smi | HeapNumber operations. |
+ compiler::Node* NumberInc(compiler::Node* value); |
+ |
// Allocate an object of the given size. |
compiler::Node* Allocate(compiler::Node* size, AllocationFlags flags = kNone); |
compiler::Node* Allocate(int size, AllocationFlags flags = kNone); |
@@ -295,6 +300,10 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* LoadDoubleWithHoleCheck( |
compiler::Node* base, compiler::Node* offset, Label* if_hole, |
MachineType machine_type = MachineType::Float64()); |
+ compiler::Node* LoadFixedTypedArrayElement( |
+ compiler::Node* data_pointer, compiler::Node* index_node, |
+ ElementsKind elements_kind, |
+ ParameterMode parameter_mode = INTEGER_PARAMETERS); |
// Context manipulation |
compiler::Node* LoadContextElement(compiler::Node* context, int slot_index); |
@@ -393,6 +402,19 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
ParameterMode mode = INTEGER_PARAMETERS, |
AllocationFlags flags = kNone); |
+ // Perform CreateArrayIterator (ES6 #sec-createarrayiterator). |
+ compiler::Node* CreateArrayIterator(compiler::Node* array, |
+ compiler::Node* array_map, |
+ compiler::Node* array_type, |
+ compiler::Node* context, |
+ IterationKind mode); |
+ |
+ compiler::Node* AllocateJSArrayIterator(compiler::Node* array, |
+ compiler::Node* array_map, |
+ compiler::Node* map); |
+ compiler::Node* AllocateJSTypedArrayIterator(compiler::Node* array, |
+ compiler::Node* map); |
+ |
void FillFixedArrayWithValue(ElementsKind kind, compiler::Node* array, |
compiler::Node* from_index, |
compiler::Node* to_index, |