| Index: src/compiler/js-operator.cc
 | 
| diff --git a/src/compiler/js-operator.cc b/src/compiler/js-operator.cc
 | 
| index fa55c40837906bdd7924dd36464606f652bb6eee..f577a455a8ee06c3a78fac6bd97eb9c4722be1f1 100644
 | 
| --- a/src/compiler/js-operator.cc
 | 
| +++ b/src/compiler/js-operator.cc
 | 
| @@ -80,6 +80,30 @@ CallConstructParameters const& CallConstructParametersOf(Operator const* op) {
 | 
|    return OpParameter<CallConstructParameters>(op);
 | 
|  }
 | 
|  
 | 
| +bool operator==(CallConstructWithSpreadParameters const& lhs,
 | 
| +                CallConstructWithSpreadParameters const& rhs) {
 | 
| +  return lhs.arity() == rhs.arity();
 | 
| +}
 | 
| +
 | 
| +bool operator!=(CallConstructWithSpreadParameters const& lhs,
 | 
| +                CallConstructWithSpreadParameters const& rhs) {
 | 
| +  return !(lhs == rhs);
 | 
| +}
 | 
| +
 | 
| +size_t hash_value(CallConstructWithSpreadParameters const& p) {
 | 
| +  return base::hash_combine(p.arity());
 | 
| +}
 | 
| +
 | 
| +std::ostream& operator<<(std::ostream& os,
 | 
| +                         CallConstructWithSpreadParameters const& p) {
 | 
| +  return os << p.arity();
 | 
| +}
 | 
| +
 | 
| +CallConstructWithSpreadParameters const& CallConstructWithSpreadParametersOf(
 | 
| +    Operator const* op) {
 | 
| +  DCHECK_EQ(IrOpcode::kJSCallConstructWithSpread, op->opcode());
 | 
| +  return OpParameter<CallConstructWithSpreadParameters>(op);
 | 
| +}
 | 
|  
 | 
|  std::ostream& operator<<(std::ostream& os, CallFunctionParameters const& p) {
 | 
|    os << p.arity() << ", " << p.frequency() << ", " << p.convert_mode() << ", "
 | 
| @@ -647,6 +671,14 @@ const Operator* JSOperatorBuilder::CallConstruct(
 | 
|        parameters);                                          // parameter
 | 
|  }
 | 
|  
 | 
| +const Operator* JSOperatorBuilder::CallConstructWithSpread(uint32_t arity) {
 | 
| +  CallConstructWithSpreadParameters parameters(arity);
 | 
| +  return new (zone()) Operator1<CallConstructWithSpreadParameters>(   // --
 | 
| +      IrOpcode::kJSCallConstructWithSpread, Operator::kNoProperties,  // opcode
 | 
| +      "JSCallConstructWithSpread",                                    // name
 | 
| +      parameters.arity(), 1, 1, 1, 1, 2,                              // counts
 | 
| +      parameters);  // parameter
 | 
| +}
 | 
|  
 | 
|  const Operator* JSOperatorBuilder::ConvertReceiver(
 | 
|      ConvertReceiverMode convert_mode) {
 | 
| 
 |