| Index: src/bootstrapper.cc
|
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
|
| index c13d3b666b5b465cb600fb43ad34e8c54675819e..46e889f5a2c0be3acba18e6934252a860e74385e 100644
|
| --- a/src/bootstrapper.cc
|
| +++ b/src/bootstrapper.cc
|
| @@ -177,8 +177,7 @@ class Genesis BASE_EMBEDDED {
|
| #undef DECLARE_FEATURE_INITIALIZATION
|
|
|
| void InstallOneBuiltinFunction(Handle<Object> prototype, const char* method,
|
| - Builtins::Name name,
|
| - int internal_formal_parameter_count);
|
| + Builtins::Name name);
|
| void InitializeGlobal_experimental_fast_array_builtins();
|
|
|
| Handle<JSFunction> InstallArrayBuffer(Handle<JSObject> target,
|
| @@ -397,14 +396,14 @@ Handle<JSFunction> SimpleCreateFunction(Isolate* isolate, Handle<String> name,
|
|
|
| Handle<JSFunction> InstallArrayBuiltinFunction(Handle<JSObject> base,
|
| const char* name,
|
| - Builtins::Name call,
|
| - int argument_count) {
|
| + Builtins::Name call) {
|
| Isolate* isolate = base->GetIsolate();
|
| Handle<String> str_name = isolate->factory()->InternalizeUtf8String(name);
|
| Handle<JSFunction> fun =
|
| CreateFunction(isolate, str_name, JS_OBJECT_TYPE, JSObject::kHeaderSize,
|
| MaybeHandle<JSObject>(), call, true);
|
| - fun->shared()->set_internal_formal_parameter_count(argument_count);
|
| + fun->shared()->set_internal_formal_parameter_count(
|
| + Builtins::GetBuiltinParameterCount(call));
|
|
|
| // Set the length to 1 to satisfy ECMA-262.
|
| fun->shared()->set_length(1);
|
| @@ -3871,8 +3870,7 @@ void InstallPublicSymbol(Factory* factory, Handle<Context> native_context,
|
|
|
| void Genesis::InstallOneBuiltinFunction(Handle<Object> prototype,
|
| const char* method_name,
|
| - Builtins::Name builtin_name,
|
| - int internal_formal_parameter_count) {
|
| + Builtins::Name builtin_name) {
|
| LookupIterator it(
|
| prototype, isolate()->factory()->NewStringFromAsciiChecked(method_name),
|
| LookupIterator::OWN_SKIP_INTERCEPTOR);
|
| @@ -3881,7 +3879,8 @@ void Genesis::InstallOneBuiltinFunction(Handle<Object> prototype,
|
| isolate()->builtins()->builtin(builtin_name));
|
| SharedFunctionInfo* info = Handle<JSFunction>::cast(function)->shared();
|
| info->set_code(isolate()->builtins()->builtin(builtin_name));
|
| - info->set_internal_formal_parameter_count(internal_formal_parameter_count);
|
| + info->set_internal_formal_parameter_count(
|
| + Builtins::GetBuiltinParameterCount(builtin_name));
|
| }
|
|
|
| void Genesis::InitializeGlobal_experimental_fast_array_builtins() {
|
| @@ -3891,17 +3890,13 @@ void Genesis::InitializeGlobal_experimental_fast_array_builtins() {
|
| native_context()->typed_array_prototype(), isolate());
|
| // Insert experimental fast TypedArray builtins here.
|
| InstallOneBuiltinFunction(typed_array_prototype, "every",
|
| - Builtins::kTypedArrayPrototypeEvery,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + Builtins::kTypedArrayPrototypeEvery);
|
| InstallOneBuiltinFunction(typed_array_prototype, "some",
|
| - Builtins::kTypedArrayPrototypeSome,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + Builtins::kTypedArrayPrototypeSome);
|
| InstallOneBuiltinFunction(typed_array_prototype, "reduce",
|
| - Builtins::kTypedArrayPrototypeReduce,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + Builtins::kTypedArrayPrototypeReduce);
|
| InstallOneBuiltinFunction(typed_array_prototype, "reduceRight",
|
| - Builtins::kTypedArrayPrototypeReduceRight,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + Builtins::kTypedArrayPrototypeReduceRight);
|
| }
|
| }
|
|
|
| @@ -4366,41 +4361,29 @@ bool Genesis::InstallNatives(GlobalContextType context_type) {
|
| concat->shared()->set_length(1);
|
|
|
| // Install Array.prototype.forEach
|
| - Handle<JSFunction> forEach = InstallArrayBuiltinFunction(
|
| - proto, "forEach", Builtins::kArrayForEach,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + Handle<JSFunction> forEach =
|
| + InstallArrayBuiltinFunction(proto, "forEach", Builtins::kArrayForEach);
|
| // Add forEach to the context.
|
| native_context()->set_array_for_each_iterator(*forEach);
|
|
|
| // Install Array.prototype.filter
|
| - InstallArrayBuiltinFunction(
|
| - proto, "filter", Builtins::kArrayFilter,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + InstallArrayBuiltinFunction(proto, "filter", Builtins::kArrayFilter);
|
|
|
| // Install Array.prototype.map
|
| - InstallArrayBuiltinFunction(
|
| - proto, "map", Builtins::kArrayMap,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + InstallArrayBuiltinFunction(proto, "map", Builtins::kArrayMap);
|
|
|
| // Install Array.prototype.every
|
| - InstallArrayBuiltinFunction(
|
| - proto, "every", Builtins::kArrayEvery,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + InstallArrayBuiltinFunction(proto, "every", Builtins::kArrayEvery);
|
|
|
| // Install Array.prototype.some
|
| - InstallArrayBuiltinFunction(
|
| - proto, "some", Builtins::kArraySome,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + InstallArrayBuiltinFunction(proto, "some", Builtins::kArraySome);
|
|
|
| // Install Array.prototype.reduce
|
| - InstallArrayBuiltinFunction(
|
| - proto, "reduce", Builtins::kArrayReduce,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + InstallArrayBuiltinFunction(proto, "reduce", Builtins::kArrayReduce);
|
|
|
| // Install Array.prototype.reduceRight
|
| - InstallArrayBuiltinFunction(
|
| - proto, "reduceRight", Builtins::kArrayReduceRight,
|
| - SharedFunctionInfo::kDontAdaptArgumentsSentinel);
|
| + InstallArrayBuiltinFunction(proto, "reduceRight",
|
| + Builtins::kArrayReduceRight);
|
| }
|
|
|
| // Install InternalArray.prototype.concat
|
|
|