| Index: src/interface-descriptors.cc | 
| diff --git a/src/interface-descriptors.cc b/src/interface-descriptors.cc | 
| index 49c8ed70cbfeffbb1b0e9ad2975735538ee09885..7dc36aa2123344002f2f05c9e299f2a37d8699ba 100644 | 
| --- a/src/interface-descriptors.cc | 
| +++ b/src/interface-descriptors.cc | 
| @@ -83,10 +83,11 @@ FunctionType* LoadDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone)); | 
| -  function->InitParameter(1, AnyTagged(zone)); | 
| -  function->InitParameter(2, SmiType(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kReceiver, AnyTagged(zone)); | 
| +  function->InitParameter(kName, AnyTagged(zone)); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -101,8 +102,9 @@ FunctionType* LoadGlobalDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 1, zone)->AsFunction(); | 
| -  function->InitParameter(0, SmiType(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -117,9 +119,10 @@ LoadGlobalWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 
| -  function->InitParameter(0, SmiType(zone)); | 
| -  function->InitParameter(1, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| +  function->InitParameter(kVector, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -134,11 +137,12 @@ FunctionType* StoreDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone)); | 
| -  function->InitParameter(1, AnyTagged(zone)); | 
| -  function->InitParameter(2, AnyTagged(zone)); | 
| -  function->InitParameter(3, SmiType(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kReceiver, AnyTagged(zone)); | 
| +  function->InitParameter(kName, AnyTagged(zone)); | 
| +  function->InitParameter(kValue, AnyTagged(zone)); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -178,11 +182,12 @@ StoreTransitionDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone));  // Receiver | 
| -  function->InitParameter(1, AnyTagged(zone));  // Name | 
| -  function->InitParameter(2, AnyTagged(zone));  // Value | 
| -  function->InitParameter(3, AnyTagged(zone));  // Map | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kReceiver, AnyTagged(zone)); | 
| +  function->InitParameter(kName, AnyTagged(zone)); | 
| +  function->InitParameter(kValue, AnyTagged(zone)); | 
| +  function->InitParameter(kMap, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -191,9 +196,10 @@ StoreGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 
| -  function->InitParameter(0, UntaggedIntegral32(zone)); | 
| -  function->InitParameter(1, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kSlot, UntaggedIntegral32(zone)); | 
| +  function->InitParameter(kValue, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -234,11 +240,12 @@ LoadWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone)); | 
| -  function->InitParameter(1, AnyTagged(zone)); | 
| -  function->InitParameter(2, SmiType(zone)); | 
| -  function->InitParameter(3, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kReceiver, AnyTagged(zone)); | 
| +  function->InitParameter(kName, AnyTagged(zone)); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| +  function->InitParameter(kVector, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -260,6 +267,7 @@ VectorStoreTransitionDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Type::Function(AnyTagged(zone), Type::Undefined(), arg_count, zone) | 
| ->AsFunction(); | 
| int index = 0; | 
| +  // TODO(ishell): use ParameterIndices here | 
| function->InitParameter(index++, AnyTagged(zone));  // receiver | 
| function->InitParameter(index++, AnyTagged(zone));  // name | 
| function->InitParameter(index++, AnyTagged(zone));  // value | 
| @@ -276,12 +284,13 @@ StoreWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone)); | 
| -  function->InitParameter(1, AnyTagged(zone)); | 
| -  function->InitParameter(2, AnyTagged(zone)); | 
| -  function->InitParameter(3, SmiType(zone)); | 
| -  function->InitParameter(4, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kReceiver, AnyTagged(zone)); | 
| +  function->InitParameter(kName, AnyTagged(zone)); | 
| +  function->InitParameter(kValue, AnyTagged(zone)); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| +  function->InitParameter(kVector, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -362,8 +371,9 @@ VarArgFunctionDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), AnyTagged(zone), 1, zone)->AsFunction(); | 
| -  function->InitParameter(0, UntaggedIntegral32(zone));  // actual #arguments | 
| +      Type::Function(AnyTagged(zone), AnyTagged(zone), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kActualArgumentsCount, UntaggedIntegral32(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -372,11 +382,12 @@ FastCloneRegExpDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone));  // closure | 
| -  function->InitParameter(1, SmiType(zone));    // literal_index | 
| -  function->InitParameter(2, AnyTagged(zone));  // pattern | 
| -  function->InitParameter(3, AnyTagged(zone));  // flags | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kClosure, AnyTagged(zone)); | 
| +  function->InitParameter(kLiteralIndex, SmiType(zone)); | 
| +  function->InitParameter(kPattern, AnyTagged(zone)); | 
| +  function->InitParameter(kFlags, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -385,10 +396,11 @@ FastCloneShallowArrayDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone)); | 
| -  function->InitParameter(1, SmiType(zone)); | 
| -  function->InitParameter(2, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kClosure, AnyTagged(zone)); | 
| +  function->InitParameter(kLiteralIndex, SmiType(zone)); | 
| +  function->InitParameter(kConstantElements, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -397,9 +409,10 @@ CreateAllocationSiteDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone)); | 
| -  function->InitParameter(1, SmiType(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kVector, AnyTagged(zone)); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -408,10 +421,11 @@ CreateWeakCellDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone)); | 
| -  function->InitParameter(1, SmiType(zone)); | 
| -  function->InitParameter(2, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kVector, AnyTagged(zone)); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| +  function->InitParameter(kValue, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -420,9 +434,10 @@ CallTrampolineDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone));           // target | 
| -  function->InitParameter(1, UntaggedIntegral32(zone));  // actual #arguments | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kFunction, AnyTagged(zone)); | 
| +  function->InitParameter(kActualArgumentsCount, UntaggedIntegral32(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -430,11 +445,12 @@ FunctionType* ConstructStubDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone));           // target | 
| -  function->InitParameter(1, AnyTagged(zone));           // new.target | 
| -  function->InitParameter(2, UntaggedIntegral32(zone));  // actual #arguments | 
| -  function->InitParameter(3, AnyTagged(zone));           // opt. allocation site | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kFunction, AnyTagged(zone)); | 
| +  function->InitParameter(kNewTarget, AnyTagged(zone)); | 
| +  function->InitParameter(kActualArgumentsCount, UntaggedIntegral32(zone)); | 
| +  function->InitParameter(kAllocationSite, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -443,10 +459,11 @@ ConstructTrampolineDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone));           // target | 
| -  function->InitParameter(1, AnyTagged(zone));           // new.target | 
| -  function->InitParameter(2, UntaggedIntegral32(zone));  // actual #arguments | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kFunction, AnyTagged(zone)); | 
| +  function->InitParameter(kNewTarget, AnyTagged(zone)); | 
| +  function->InitParameter(kActualArgumentsCount, UntaggedIntegral32(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -455,9 +472,10 @@ CallFunctionWithFeedbackDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 
| -  function->InitParameter(0, Type::Receiver());  // JSFunction | 
| -  function->InitParameter(1, SmiType(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kFunction, Type::Receiver()); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -466,10 +484,11 @@ FunctionType* CallFunctionWithFeedbackAndVectorDescriptor:: | 
| int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 
| -  function->InitParameter(0, Type::Receiver());  // JSFunction | 
| -  function->InitParameter(1, SmiType(zone)); | 
| -  function->InitParameter(2, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kFunction, Type::Receiver()); | 
| +  function->InitParameter(kSlot, SmiType(zone)); | 
| +  function->InitParameter(kVector, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -478,11 +497,12 @@ ArrayNoArgumentConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 
| -  function->InitParameter(0, Type::Receiver());  // JSFunction | 
| -  function->InitParameter(1, AnyTagged(zone)); | 
| -  function->InitParameter(2, UntaggedIntegral32(zone)); | 
| -  function->InitParameter(3, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kFunction, Type::Receiver()); | 
| +  function->InitParameter(kAllocationSite, AnyTagged(zone)); | 
| +  function->InitParameter(kActualArgumentsCount, UntaggedIntegral32(zone)); | 
| +  function->InitParameter(kFunctionParameter, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -491,12 +511,13 @@ FunctionType* ArraySingleArgumentConstructorDescriptor:: | 
| int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction(); | 
| -  function->InitParameter(0, Type::Receiver());  // JSFunction | 
| -  function->InitParameter(1, AnyTagged(zone)); | 
| -  function->InitParameter(2, UntaggedIntegral32(zone)); | 
| -  function->InitParameter(3, AnyTagged(zone)); | 
| -  function->InitParameter(4, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kFunction, Type::Receiver()); | 
| +  function->InitParameter(kAllocationSite, AnyTagged(zone)); | 
| +  function->InitParameter(kActualArgumentsCount, UntaggedIntegral32(zone)); | 
| +  function->InitParameter(kFunctionParameter, AnyTagged(zone)); | 
| +  function->InitParameter(kArraySizeSmiParameter, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -505,10 +526,11 @@ ArrayNArgumentsConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 
| -  function->InitParameter(0, Type::Receiver());  // JSFunction | 
| -  function->InitParameter(1, AnyTagged(zone));   // Allocation site or undefined | 
| -  function->InitParameter(2, UntaggedIntegral32(zone));  //  Arg count | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kFunction, Type::Receiver()); | 
| +  function->InitParameter(kAllocationSite, AnyTagged(zone)); | 
| +  function->InitParameter(kActualArgumentsCount, UntaggedIntegral32(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -517,11 +539,12 @@ ArgumentAdaptorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 
| -  function->InitParameter(0, Type::Receiver());          // JSFunction | 
| -  function->InitParameter(1, AnyTagged(zone));           // the new target | 
| -  function->InitParameter(2, UntaggedIntegral32(zone));  // actual #arguments | 
| -  function->InitParameter(3, UntaggedIntegral32(zone));  // expected #arguments | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kFunction, Type::Receiver()); | 
| +  function->InitParameter(kNewTarget, AnyTagged(zone)); | 
| +  function->InitParameter(kActualArgumentsCount, UntaggedIntegral32(zone)); | 
| +  function->InitParameter(kExpectedArgumentsCount, UntaggedIntegral32(zone)); | 
| return function; | 
| } | 
|  | 
| @@ -554,13 +577,13 @@ FunctionType* | 
| ApiCallbackDescriptorBase::BuildCallInterfaceDescriptorFunctionTypeWithArg( | 
| Isolate* isolate, int parameter_count, int argc) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| -  FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 4 + argc, zone) | 
| -          ->AsFunction(); | 
| -  function->InitParameter(0, AnyTagged(zone));        // callee | 
| -  function->InitParameter(1, AnyTagged(zone));        // call_data | 
| -  function->InitParameter(2, AnyTagged(zone));        // holder | 
| -  function->InitParameter(3, ExternalPointer(zone));  // api_function_address | 
| +  FunctionType* function = Type::Function(AnyTagged(zone), Type::Undefined(), | 
| +                                          kParameterCount + argc, zone) | 
| +                               ->AsFunction(); | 
| +  function->InitParameter(kFunction, AnyTagged(zone)); | 
| +  function->InitParameter(kCallData, AnyTagged(zone)); | 
| +  function->InitParameter(kHolder, AnyTagged(zone)); | 
| +  function->InitParameter(kApiFunctionAddress, ExternalPointer(zone)); | 
| for (int i = 0; i < argc; i++) { | 
| function->InitParameter(i, AnyTagged(zone)); | 
| } | 
| @@ -572,11 +595,12 @@ InterpreterDispatchDescriptor::BuildCallInterfaceDescriptorFunctionType( | 
| Isolate* isolate, int parameter_count) { | 
| Zone* zone = isolate->interface_descriptor_zone(); | 
| FunctionType* function = | 
| -      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 
| -  function->InitParameter(kAccumulatorParameter, AnyTagged(zone)); | 
| -  function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone)); | 
| -  function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone)); | 
| -  function->InitParameter(kDispatchTableParameter, AnyTagged(zone)); | 
| +      Type::Function(AnyTagged(zone), Type::Undefined(), kParameterCount, zone) | 
| +          ->AsFunction(); | 
| +  function->InitParameter(kAccumulator, AnyTagged(zone)); | 
| +  function->InitParameter(kBytecodeOffset, UntaggedIntegral32(zone)); | 
| +  function->InitParameter(kBytecodeArray, AnyTagged(zone)); | 
| +  function->InitParameter(kDispatchTable, AnyTagged(zone)); | 
| return function; | 
| } | 
|  | 
|  |