Index: src/code-stub-assembler.h |
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h |
index 087d6e3a75a6d8b12bf6cb416c731634870f6c88..a458066991f61f1412003f1e9704c8c61efbca68 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) \ |
@@ -138,6 +140,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); |
@@ -293,6 +298,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); |
@@ -404,6 +413,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, |