diff options
Diffstat (limited to 'deps/v8/src/builtins/builtins-array-gen.h')
-rw-r--r-- | deps/v8/src/builtins/builtins-array-gen.h | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/deps/v8/src/builtins/builtins-array-gen.h b/deps/v8/src/builtins/builtins-array-gen.h index 1cb5de3146..92b32115a0 100644 --- a/deps/v8/src/builtins/builtins-array-gen.h +++ b/deps/v8/src/builtins/builtins-array-gen.h @@ -68,6 +68,15 @@ class ArrayBuiltinsAssembler : public BaseBuiltinsFromDSLAssembler { void NullPostLoopAction(); + // TODO(szuend): Remove once overload resolution is fixed in Torque. + TNode<Object> LoadFixedArrayElementInt(TNode<FixedArray> array, int index) { + return LoadFixedArrayElement(array, index); + } + Node* StoreFixedArrayElementInt(TNode<FixedArray> array, int index, + TNode<Object> value) { + return StoreFixedArrayElement(array, index, value); + } + protected: TNode<Context> context() { return context_; } TNode<Object> receiver() { return receiver_; } @@ -76,7 +85,7 @@ class ArrayBuiltinsAssembler : public BaseBuiltinsFromDSLAssembler { TNode<Number> len() { return len_; } Node* callbackfn() { return callbackfn_; } Node* this_arg() { return this_arg_; } - Node* k() { return k_.value(); } + TNode<Number> k() { return CAST(k_.value()); } Node* a() { return a_.value(); } void ReturnFromBuiltin(Node* value); @@ -106,6 +115,41 @@ class ArrayBuiltinsAssembler : public BaseBuiltinsFromDSLAssembler { MissingPropertyMode missing_property_mode, ForEachDirection direction = ForEachDirection::kForward); + void TailCallArrayConstructorStub( + const Callable& callable, TNode<Context> context, + TNode<JSFunction> target, TNode<HeapObject> allocation_site_or_undefined, + TNode<Int32T> argc); + + void GenerateDispatchToArrayStub( + TNode<Context> context, TNode<JSFunction> target, TNode<Int32T> argc, + AllocationSiteOverrideMode mode, + TNode<AllocationSite> allocation_site = TNode<AllocationSite>()); + + void CreateArrayDispatchNoArgument( + TNode<Context> context, TNode<JSFunction> target, TNode<Int32T> argc, + AllocationSiteOverrideMode mode, + TNode<AllocationSite> allocation_site = TNode<AllocationSite>()); + + void CreateArrayDispatchSingleArgument( + TNode<Context> context, TNode<JSFunction> target, TNode<Int32T> argc, + AllocationSiteOverrideMode mode, + TNode<AllocationSite> allocation_site = TNode<AllocationSite>()); + + void GenerateConstructor(Node* context, Node* array_function, Node* array_map, + Node* array_size, Node* allocation_site, + ElementsKind elements_kind, AllocationSiteMode mode); + void GenerateArrayNoArgumentConstructor(ElementsKind kind, + AllocationSiteOverrideMode mode); + void GenerateArraySingleArgumentConstructor(ElementsKind kind, + AllocationSiteOverrideMode mode); + void GenerateArrayNArgumentsConstructor( + TNode<Context> context, TNode<JSFunction> target, + TNode<Object> new_target, TNode<Int32T> argc, + TNode<HeapObject> maybe_allocation_site); + + void GenerateInternalArrayNoArgumentConstructor(ElementsKind kind); + void GenerateInternalArraySingleArgumentConstructor(ElementsKind kind); + private: static ElementsKind ElementsKindForInstanceType(InstanceType type); |