| Index: src/compiler/js-operator.cc | 
| diff --git a/src/compiler/js-operator.cc b/src/compiler/js-operator.cc | 
| index c2fea50388eb41c4bae1e46dda249e8ea314bae0..f26a96cd28ea4631359d630109205c40d1dae993 100644 | 
| --- a/src/compiler/js-operator.cc | 
| +++ b/src/compiler/js-operator.cc | 
| @@ -157,6 +157,37 @@ ContextAccess const& ContextAccessOf(Operator const* op) { | 
| return OpParameter<ContextAccess>(op); | 
| } | 
|  | 
| +CreateCatchContextParameters::CreateCatchContextParameters( | 
| +    Handle<String> catch_name, Handle<ScopeInfo> scope_info) | 
| +    : catch_name_(catch_name), scope_info_(scope_info) {} | 
| + | 
| +bool operator==(CreateCatchContextParameters const& lhs, | 
| +                CreateCatchContextParameters const& rhs) { | 
| +  return lhs.catch_name().location() == rhs.catch_name().location() && | 
| +         lhs.scope_info().location() == rhs.scope_info().location(); | 
| +} | 
| + | 
| +bool operator!=(CreateCatchContextParameters const& lhs, | 
| +                CreateCatchContextParameters const& rhs) { | 
| +  return !(lhs == rhs); | 
| +} | 
| + | 
| +size_t hash_value(CreateCatchContextParameters const& parameters) { | 
| +  return base::hash_combine(parameters.catch_name().location(), | 
| +                            parameters.scope_info().location()); | 
| +} | 
| + | 
| +std::ostream& operator<<(std::ostream& os, | 
| +                         CreateCatchContextParameters const& parameters) { | 
| +  return os << Brief(*parameters.catch_name()) << ", " | 
| +            << Brief(*parameters.scope_info()); | 
| +} | 
| + | 
| +CreateCatchContextParameters const& CreateCatchContextParametersOf( | 
| +    Operator const* op) { | 
| +  DCHECK_EQ(IrOpcode::kJSCreateCatchContext, op->opcode()); | 
| +  return OpParameter<CreateCatchContextParameters>(op); | 
| +} | 
|  | 
| bool operator==(NamedAccess const& lhs, NamedAccess const& rhs) { | 
| return lhs.name().location() == rhs.name().location() && | 
| @@ -809,14 +840,14 @@ const Operator* JSOperatorBuilder::CreateFunctionContext(int slot_count) { | 
| slot_count);                                                  // parameter | 
| } | 
|  | 
| - | 
| const Operator* JSOperatorBuilder::CreateCatchContext( | 
| -    const Handle<String>& name) { | 
| -  return new (zone()) Operator1<Handle<String>>(                 // -- | 
| +    const Handle<String>& name, const Handle<ScopeInfo>& scope_info) { | 
| +  CreateCatchContextParameters parameters(name, scope_info); | 
| +  return new (zone()) Operator1<CreateCatchContextParameters>( | 
| IrOpcode::kJSCreateCatchContext, Operator::kNoProperties,  // opcode | 
| "JSCreateCatchContext",                                    // name | 
| 2, 1, 1, 1, 1, 2,                                          // counts | 
| -      name);                                                     // parameter | 
| +      parameters);                                               // parameter | 
| } | 
|  | 
|  | 
|  |