| Index: src/code-stubs-hydrogen.cc
 | 
| diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc
 | 
| index 643df2bd407eee70336664f753e66dd565887cfc..3f3b2c157f8d144d237be64194e0d78c601b0a8f 100644
 | 
| --- a/src/code-stubs-hydrogen.cc
 | 
| +++ b/src/code-stubs-hydrogen.cc
 | 
| @@ -207,7 +207,7 @@ class CodeStubGraphBuilder: public CodeStubGraphBuilderBase {
 | 
|      IfBuilder builder(this);
 | 
|      builder.IfNot<HCompareObjectEqAndBranch, HValue*>(undefined, undefined);
 | 
|      builder.Then();
 | 
| -    builder.ElseDeopt(Deoptimizer::kForcedDeoptToRuntime);
 | 
| +    builder.ElseDeopt(DeoptimizeReason::kForcedDeoptToRuntime);
 | 
|      return undefined;
 | 
|    }
 | 
|  
 | 
| @@ -447,7 +447,8 @@ HValue* CodeStubGraphBuilder<FastCloneRegExpStub>::BuildCodeStub() {
 | 
|      }
 | 
|      Push(result);
 | 
|    }
 | 
| -  if_notundefined.ElseDeopt(Deoptimizer::kUninitializedBoilerplateInFastClone);
 | 
| +  if_notundefined.ElseDeopt(
 | 
| +      DeoptimizeReason::kUninitializedBoilerplateInFastClone);
 | 
|    if_notundefined.End();
 | 
|  
 | 
|    return Pop();
 | 
| @@ -526,7 +527,7 @@ HValue* CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub() {
 | 
|    if_fixed_cow.End();
 | 
|    zero_capacity.End();
 | 
|  
 | 
| -  checker.ElseDeopt(Deoptimizer::kUninitializedBoilerplateLiterals);
 | 
| +  checker.ElseDeopt(DeoptimizeReason::kUninitializedBoilerplateLiterals);
 | 
|    checker.End();
 | 
|  
 | 
|    return environment()->Pop();
 | 
| @@ -699,7 +700,7 @@ HValue* CodeStubGraphBuilderBase::BuildPushElement(HValue* object, HValue* argc,
 | 
|          can_store.IfNot<HCompareMap>(argument,
 | 
|                                       isolate()->factory()->heap_number_map());
 | 
|        }
 | 
| -      can_store.ThenDeopt(Deoptimizer::kFastPathFailed);
 | 
| +      can_store.ThenDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|        can_store.End();
 | 
|      }
 | 
|      builder.EndBody();
 | 
| @@ -750,7 +751,7 @@ HValue* CodeStubGraphBuilder<FastArrayPushStub>::BuildCodeStub() {
 | 
|      IfBuilder check(this);
 | 
|      check.If<HCompareNumericAndBranch>(
 | 
|          bits, Add<HConstant>(1 << Map::kIsExtensible), Token::NE);
 | 
| -    check.ThenDeopt(Deoptimizer::kFastPathFailed);
 | 
| +    check.ThenDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|      check.End();
 | 
|    }
 | 
|  
 | 
| @@ -763,7 +764,7 @@ HValue* CodeStubGraphBuilder<FastArrayPushStub>::BuildCodeStub() {
 | 
|      HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, bit_field3, mask);
 | 
|      IfBuilder check(this);
 | 
|      check.If<HCompareNumericAndBranch>(bit, mask, Token::EQ);
 | 
| -    check.ThenDeopt(Deoptimizer::kFastPathFailed);
 | 
| +    check.ThenDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|      check.End();
 | 
|    }
 | 
|  
 | 
| @@ -781,7 +782,7 @@ HValue* CodeStubGraphBuilder<FastArrayPushStub>::BuildCodeStub() {
 | 
|      HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, details, mask);
 | 
|      IfBuilder readonly(this);
 | 
|      readonly.If<HCompareNumericAndBranch>(bit, mask, Token::EQ);
 | 
| -    readonly.ThenDeopt(Deoptimizer::kFastPathFailed);
 | 
| +    readonly.ThenDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|      readonly.End();
 | 
|    }
 | 
|  
 | 
| @@ -809,14 +810,14 @@ HValue* CodeStubGraphBuilder<FastArrayPushStub>::BuildCodeStub() {
 | 
|      check_instance_type.If<HCompareNumericAndBranch>(
 | 
|          instance_type, Add<HConstant>(LAST_CUSTOM_ELEMENTS_RECEIVER),
 | 
|          Token::LTE);
 | 
| -    check_instance_type.ThenDeopt(Deoptimizer::kFastPathFailed);
 | 
| +    check_instance_type.ThenDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|      check_instance_type.End();
 | 
|  
 | 
|      HValue* elements = Add<HLoadNamedField>(
 | 
|          prototype, nullptr, HObjectAccess::ForElementsPointer());
 | 
|      IfBuilder no_elements(this);
 | 
|      no_elements.IfNot<HCompareObjectEqAndBranch>(elements, empty);
 | 
| -    no_elements.ThenDeopt(Deoptimizer::kFastPathFailed);
 | 
| +    no_elements.ThenDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|      no_elements.End();
 | 
|  
 | 
|      environment()->Push(prototype_map);
 | 
| @@ -866,7 +867,7 @@ HValue* CodeStubGraphBuilder<FastArrayPushStub>::BuildCodeStub() {
 | 
|                                                FAST_HOLEY_DOUBLE_ELEMENTS);
 | 
|          environment()->Push(new_length);
 | 
|        }
 | 
| -      has_double_elements.ElseDeopt(Deoptimizer::kFastPathFailed);
 | 
| +      has_double_elements.ElseDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|        has_double_elements.End();
 | 
|      }
 | 
|      has_object_elements.End();
 | 
| @@ -898,7 +899,7 @@ HValue* CodeStubGraphBuilder<FastFunctionBindStub>::BuildCodeStub() {
 | 
|      HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, bit_field3, mask);
 | 
|      IfBuilder check(this);
 | 
|      check.If<HCompareNumericAndBranch>(bit, mask, Token::EQ);
 | 
| -    check.ThenDeopt(Deoptimizer::kFastPathFailed);
 | 
| +    check.ThenDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|      check.End();
 | 
|    }
 | 
|  
 | 
| @@ -914,7 +915,7 @@ HValue* CodeStubGraphBuilder<FastFunctionBindStub>::BuildCodeStub() {
 | 
|      IfBuilder range(this);
 | 
|      range.If<HCompareNumericAndBranch>(descriptors_length,
 | 
|                                         graph()->GetConstant1(), Token::LTE);
 | 
| -    range.ThenDeopt(Deoptimizer::kFastPathFailed);
 | 
| +    range.ThenDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|      range.End();
 | 
|  
 | 
|      // Verify .length.
 | 
| @@ -991,7 +992,7 @@ HValue* CodeStubGraphBuilder<FastFunctionBindStub>::BuildCodeStub() {
 | 
|      IfBuilder equal_prototype(this);
 | 
|      equal_prototype.IfNot<HCompareObjectEqAndBranch>(prototype,
 | 
|                                                       expected_prototype);
 | 
| -    equal_prototype.ThenDeopt(Deoptimizer::kFastPathFailed);
 | 
| +    equal_prototype.ThenDeopt(DeoptimizeReason::kFastPathFailed);
 | 
|      equal_prototype.End();
 | 
|    }
 | 
|  
 | 
| @@ -1181,7 +1182,7 @@ HValue* CodeStubGraphBuilderBase::UnmappedCase(HValue* elements, HValue* key,
 | 
|        Add<HStoreKeyed>(backing_store, key, value, nullptr, FAST_HOLEY_ELEMENTS);
 | 
|      }
 | 
|    }
 | 
| -  in_unmapped_range.ElseDeopt(Deoptimizer::kOutsideOfRange);
 | 
| +  in_unmapped_range.ElseDeopt(DeoptimizeReason::kOutsideOfRange);
 | 
|    in_unmapped_range.End();
 | 
|    return result;
 | 
|  }
 | 
| @@ -1222,7 +1223,7 @@ HValue* CodeStubGraphBuilderBase::EmitKeyedSloppyArguments(HValue* receiver,
 | 
|    IfBuilder positive_smi(this);
 | 
|    positive_smi.If<HCompareNumericAndBranch>(key, graph()->GetConstant0(),
 | 
|                                              Token::LT);
 | 
| -  positive_smi.ThenDeopt(Deoptimizer::kKeyIsNegative);
 | 
| +  positive_smi.ThenDeopt(DeoptimizeReason::kKeyIsNegative);
 | 
|    positive_smi.End();
 | 
|  
 | 
|    HValue* constant_two = Add<HConstant>(2);
 | 
| @@ -1807,7 +1808,7 @@ HValue* CodeStubGraphBuilder<StoreGlobalStub>::BuildCodeInitializedStub() {
 | 
|          Add<HLoadNamedField>(global, nullptr, HObjectAccess::ForMap());
 | 
|      IfBuilder map_check(this);
 | 
|      map_check.IfNot<HCompareObjectEqAndBranch>(expected_map, map);
 | 
| -    map_check.ThenDeopt(Deoptimizer::kUnknownMap);
 | 
| +    map_check.ThenDeopt(DeoptimizeReason::kUnknownMap);
 | 
|      map_check.End();
 | 
|    }
 | 
|  
 | 
| @@ -1830,14 +1831,14 @@ HValue* CodeStubGraphBuilder<StoreGlobalStub>::BuildCodeInitializedStub() {
 | 
|      builder.If<HCompareObjectEqAndBranch>(cell_contents, value);
 | 
|      builder.Then();
 | 
|      builder.ElseDeopt(
 | 
| -        Deoptimizer::kUnexpectedCellContentsInConstantGlobalStore);
 | 
| +        DeoptimizeReason::kUnexpectedCellContentsInConstantGlobalStore);
 | 
|      builder.End();
 | 
|    } else {
 | 
|      IfBuilder builder(this);
 | 
|      HValue* hole_value = graph()->GetConstantHole();
 | 
|      builder.If<HCompareObjectEqAndBranch>(cell_contents, hole_value);
 | 
|      builder.Then();
 | 
| -    builder.Deopt(Deoptimizer::kUnexpectedCellContentsInGlobalStore);
 | 
| +    builder.Deopt(DeoptimizeReason::kUnexpectedCellContentsInGlobalStore);
 | 
|      builder.Else();
 | 
|      // When dealing with constant types, the type may be allowed to change, as
 | 
|      // long as optimized code remains valid.
 | 
| @@ -1860,7 +1861,7 @@ HValue* CodeStubGraphBuilder<StoreGlobalStub>::BuildCodeInitializedStub() {
 | 
|                Add<HLoadNamedField>(value, nullptr, HObjectAccess::ForMap());
 | 
|            IfBuilder map_check(this);
 | 
|            map_check.IfNot<HCompareObjectEqAndBranch>(expected_map, map);
 | 
| -          map_check.ThenDeopt(Deoptimizer::kUnknownMap);
 | 
| +          map_check.ThenDeopt(DeoptimizeReason::kUnknownMap);
 | 
|            map_check.End();
 | 
|            access = access.WithRepresentation(Representation::HeapObject());
 | 
|            break;
 | 
| @@ -1889,7 +1890,7 @@ HValue* CodeStubGraphBuilder<ElementsTransitionAndStoreStub>::BuildCodeStub() {
 | 
|  
 | 
|    if (FLAG_trace_elements_transitions) {
 | 
|      // Tracing elements transitions is the job of the runtime.
 | 
| -    Add<HDeoptimize>(Deoptimizer::kTracingElementsTransitions,
 | 
| +    Add<HDeoptimize>(DeoptimizeReason::kTracingElementsTransitions,
 | 
|                       Deoptimizer::EAGER);
 | 
|    } else {
 | 
|      info()->MarkAsSavesCallerDoubles();
 | 
| @@ -2084,12 +2085,12 @@ HValue* CodeStubGraphBuilder<KeyedLoadGenericStub>::BuildCodeStub() {
 | 
|      BuildElementsKindLimitCheck(&kind_if, bit_field2,
 | 
|                                  SLOW_SLOPPY_ARGUMENTS_ELEMENTS);
 | 
|      // Non-strict elements are not handled.
 | 
| -    Add<HDeoptimize>(Deoptimizer::kNonStrictElementsInKeyedLoadGenericStub,
 | 
| +    Add<HDeoptimize>(DeoptimizeReason::kNonStrictElementsInKeyedLoadGenericStub,
 | 
|                       Deoptimizer::EAGER);
 | 
|      Push(graph()->GetConstant0());
 | 
|  
 | 
|      kind_if.ElseDeopt(
 | 
| -        Deoptimizer::kElementsKindUnhandledInKeyedLoadGenericStub);
 | 
| +        DeoptimizeReason::kElementsKindUnhandledInKeyedLoadGenericStub);
 | 
|  
 | 
|      kind_if.End();
 | 
|    }
 | 
| 
 |