| Index: src/builtins/builtins-array-gen.cc
|
| diff --git a/src/builtins/builtins-array-gen.cc b/src/builtins/builtins-array-gen.cc
|
| index f5963e7ae0da3c99ed98c07b52ae8f2b5d4726ed..abe31e6ce8f7c097f3c9919419791a288ae85912 100644
|
| --- a/src/builtins/builtins-array-gen.cc
|
| +++ b/src/builtins/builtins-array-gen.cc
|
| @@ -1355,10 +1355,19 @@ TF_BUILTIN(ArrayIsArray, CodeStubAssembler) {
|
| }
|
|
|
| TF_BUILTIN(ArrayIncludes, CodeStubAssembler) {
|
| - Node* const array = Parameter(Descriptor::kReceiver);
|
| - Node* const search_element = Parameter(Descriptor::kSearchElement);
|
| - Node* const start_from = Parameter(Descriptor::kFromIndex);
|
| - Node* const context = Parameter(Descriptor::kContext);
|
| + const int kSearchElementArg = 0;
|
| + const int kFromIndexArg = 1;
|
| +
|
| + Node* argc =
|
| + ChangeInt32ToIntPtr(Parameter(BuiltinDescriptor::kArgumentsCount));
|
| + CodeStubArguments args(this, argc);
|
| +
|
| + Node* array = args.GetReceiver();
|
| + Node* search_element =
|
| + args.GetOptionalArgumentValue(kSearchElementArg, UndefinedConstant());
|
| + Node* start_from =
|
| + args.GetOptionalArgumentValue(kFromIndexArg, UndefinedConstant());
|
| + Node* const context = Parameter(BuiltinDescriptor::kContext);
|
|
|
| VARIABLE(index_var, MachineType::PointerRepresentation());
|
|
|
| @@ -1633,21 +1642,30 @@ TF_BUILTIN(ArrayIncludes, CodeStubAssembler) {
|
| }
|
|
|
| BIND(&return_true);
|
| - Return(TrueConstant());
|
| + args.PopAndReturn(TrueConstant());
|
|
|
| BIND(&return_false);
|
| - Return(FalseConstant());
|
| + args.PopAndReturn(FalseConstant());
|
|
|
| BIND(&call_runtime);
|
| - Return(CallRuntime(Runtime::kArrayIncludes_Slow, context, array,
|
| - search_element, start_from));
|
| + args.PopAndReturn(CallRuntime(Runtime::kArrayIncludes_Slow, context, array,
|
| + search_element, start_from));
|
| }
|
|
|
| TF_BUILTIN(ArrayIndexOf, CodeStubAssembler) {
|
| - Node* array = Parameter(Descriptor::kReceiver);
|
| - Node* search_element = Parameter(Descriptor::kSearchElement);
|
| - Node* start_from = Parameter(Descriptor::kFromIndex);
|
| - Node* context = Parameter(Descriptor::kContext);
|
| + const int kSearchElementArg = 0;
|
| + const int kFromIndexArg = 1;
|
| +
|
| + Node* argc =
|
| + ChangeInt32ToIntPtr(Parameter(BuiltinDescriptor::kArgumentsCount));
|
| + CodeStubArguments args(this, argc);
|
| +
|
| + Node* array = args.GetReceiver();
|
| + Node* search_element =
|
| + args.GetOptionalArgumentValue(kSearchElementArg, UndefinedConstant());
|
| + Node* start_from =
|
| + args.GetOptionalArgumentValue(kFromIndexArg, UndefinedConstant());
|
| + Node* context = Parameter(BuiltinDescriptor::kContext);
|
|
|
| Node* intptr_zero = IntPtrConstant(0);
|
| Node* intptr_one = IntPtrConstant(1);
|
| @@ -1898,14 +1916,14 @@ TF_BUILTIN(ArrayIndexOf, CodeStubAssembler) {
|
| }
|
|
|
| BIND(&return_found);
|
| - Return(SmiTag(index_var.value()));
|
| + args.PopAndReturn(SmiTag(index_var.value()));
|
|
|
| BIND(&return_not_found);
|
| - Return(NumberConstant(-1));
|
| + args.PopAndReturn(NumberConstant(-1));
|
|
|
| BIND(&call_runtime);
|
| - Return(CallRuntime(Runtime::kArrayIndexOf, context, array, search_element,
|
| - start_from));
|
| + args.PopAndReturn(CallRuntime(Runtime::kArrayIndexOf, context, array,
|
| + search_element, start_from));
|
| }
|
|
|
| class ArrayPrototypeIterationAssembler : public CodeStubAssembler {
|
|
|