| Index: src/interpreter/interpreter-assembler.cc
 | 
| diff --git a/src/interpreter/interpreter-assembler.cc b/src/interpreter/interpreter-assembler.cc
 | 
| index 1ccd342f0662470b54d283ea416cc361244ba2ef..a08e6aed56641475015cfd9d8393f39aa5c03591 100644
 | 
| --- a/src/interpreter/interpreter-assembler.cc
 | 
| +++ b/src/interpreter/interpreter-assembler.cc
 | 
| @@ -718,7 +718,7 @@ Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context,
 | 
|      Comment("call using callConstructFunction");
 | 
|      IncrementCallCount(type_feedback_vector, slot_id);
 | 
|      Callable callable_function = CodeFactory::InterpreterPushArgsAndConstruct(
 | 
| -        isolate(), CallableType::kJSFunction);
 | 
| +        isolate(), PushArgsConstructMode::kJSFunction);
 | 
|      return_value.Bind(CallStub(callable_function.descriptor(),
 | 
|                                 HeapConstant(callable_function.code()), context,
 | 
|                                 arg_count, new_target, constructor,
 | 
| @@ -821,7 +821,7 @@ Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context,
 | 
|    {
 | 
|      Comment("call using callConstruct builtin");
 | 
|      Callable callable = CodeFactory::InterpreterPushArgsAndConstruct(
 | 
| -        isolate(), CallableType::kAny);
 | 
| +        isolate(), PushArgsConstructMode::kOther);
 | 
|      Node* code_target = HeapConstant(callable.code());
 | 
|      return_value.Bind(CallStub(callable.descriptor(), code_target, context,
 | 
|                                 arg_count, new_target, constructor,
 | 
| @@ -833,6 +833,23 @@ Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context,
 | 
|    return return_value.value();
 | 
|  }
 | 
|  
 | 
| +Node* InterpreterAssembler::CallConstructWithSpread(Node* constructor,
 | 
| +                                                    Node* context,
 | 
| +                                                    Node* new_target,
 | 
| +                                                    Node* first_arg,
 | 
| +                                                    Node* arg_count) {
 | 
| +  Variable return_value(this, MachineRepresentation::kTagged);
 | 
| +  Comment("call using ConstructWithSpread");
 | 
| +  Callable callable = CodeFactory::InterpreterPushArgsAndConstruct(
 | 
| +      isolate(), PushArgsConstructMode::kWithFinalSpread);
 | 
| +  Node* code_target = HeapConstant(callable.code());
 | 
| +  return_value.Bind(CallStub(callable.descriptor(), code_target, context,
 | 
| +                             arg_count, new_target, constructor,
 | 
| +                             UndefinedConstant(), first_arg));
 | 
| +
 | 
| +  return return_value.value();
 | 
| +}
 | 
| +
 | 
|  Node* InterpreterAssembler::CallRuntimeN(Node* function_id, Node* context,
 | 
|                                           Node* first_arg, Node* arg_count,
 | 
|                                           int result_size) {
 | 
| 
 |