summaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/builtins-array-gen.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/builtins/builtins-array-gen.h')
-rw-r--r--deps/v8/src/builtins/builtins-array-gen.h46
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);