| Index: src/code-stub-assembler.h
|
| diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h
|
| index 2efc5b3a67345192ad69c4a94cb2ee1f18d599d5..fb3b2f60f33cee54c5dec7195ae4238e9ff37ac8 100644
|
| --- a/src/code-stub-assembler.h
|
| +++ b/src/code-stub-assembler.h
|
| @@ -20,6 +20,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 V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
|
| WordOr(BitcastTaggedToWord(a), BitcastTaggedToWord(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);
|
| @@ -296,6 +301,10 @@ class V8_EXPORT_PRIVATE 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);
|
| @@ -407,6 +416,17 @@ class V8_EXPORT_PRIVATE 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);
|
| +
|
| void FillFixedArrayWithValue(ElementsKind kind, compiler::Node* array,
|
| compiler::Node* from_index,
|
| compiler::Node* to_index,
|
| @@ -908,6 +928,14 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* lhs, compiler::Node* rhs,
|
| compiler::Node* context);
|
|
|
| + void BranchIfNumericRelationalComparison(RelationalComparisonMode mode,
|
| + compiler::Node* lhs,
|
| + compiler::Node* rhs, Label* if_true,
|
| + Label* if_false);
|
| +
|
| + void GotoUnlessNumberLessThan(compiler::Node* lhs, compiler::Node* rhs,
|
| + Label* if_false);
|
| +
|
| enum ResultMode { kDontNegateResult, kNegateResult };
|
|
|
| compiler::Node* Equal(ResultMode mode, compiler::Node* lhs,
|
| @@ -927,6 +955,9 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* InstanceOf(compiler::Node* object, compiler::Node* callable,
|
| compiler::Node* context);
|
|
|
| + // TypedArray/ArrayBuffer helpers
|
| + compiler::Node* IsDetachedBuffer(compiler::Node* buffer);
|
| +
|
| private:
|
| enum ElementSupport { kOnlyProperties, kSupportElements };
|
|
|
|
|