| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index 8dbe9094abe130b63c00a8049058e3feb487dcbd..25bed5944273b22c3df27b6108be3e1b784874a9 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -43,9 +43,10 @@ namespace internal {
|
| char IC::TransitionMarkFromState(IC::State state) {
|
| switch (state) {
|
| case UNINITIALIZED: return '0';
|
| - case PREMONOMORPHIC: return 'P';
|
| + case PREMONOMORPHIC: return '.';
|
| case MONOMORPHIC: return '1';
|
| case MONOMORPHIC_PROTOTYPE_FAILURE: return '^';
|
| + case POLYMORPHIC: return 'P';
|
| case MEGAMORPHIC: return IsGeneric() ? 'G' : 'N';
|
|
|
| // We never see the debugger states here, because the state is
|
| @@ -772,6 +773,9 @@ void CallICBase::UpdateCaches(LookupResult* lookup,
|
| case DEBUG_BREAK:
|
| case DEBUG_PREPARE_STEP_IN:
|
| break;
|
| + case POLYMORPHIC:
|
| + UNREACHABLE();
|
| + break;
|
| }
|
|
|
| TRACE_IC(kind_ == Code::CALL_IC ? "CallIC" : "KeyedCallIC",
|
| @@ -1064,6 +1068,9 @@ void LoadIC::UpdateCaches(LookupResult* lookup,
|
| case DEBUG_BREAK:
|
| case DEBUG_PREPARE_STEP_IN:
|
| break;
|
| + case POLYMORPHIC:
|
| + UNREACHABLE();
|
| + break;
|
| }
|
|
|
| TRACE_IC("LoadIC", name, state, target());
|
| @@ -1333,6 +1340,7 @@ void KeyedLoadIC::UpdateCaches(LookupResult* lookup,
|
| case DEBUG_PREPARE_STEP_IN:
|
| break;
|
| case MONOMORPHIC_PROTOTYPE_FAILURE:
|
| + case POLYMORPHIC:
|
| UNREACHABLE();
|
| break;
|
| }
|
| @@ -1605,6 +1613,9 @@ void StoreIC::UpdateCaches(LookupResult* lookup,
|
| case DEBUG_BREAK:
|
| case DEBUG_PREPARE_STEP_IN:
|
| break;
|
| + case POLYMORPHIC:
|
| + UNREACHABLE();
|
| + break;
|
| }
|
|
|
| TRACE_IC("StoreIC", name, state, target());
|
| @@ -1649,6 +1660,7 @@ void KeyedIC::GetReceiverMapsForStub(Handle<Code> stub,
|
| case UNINITIALIZED:
|
| case PREMONOMORPHIC:
|
| case MONOMORPHIC_PROTOTYPE_FAILURE:
|
| + case POLYMORPHIC:
|
| case DEBUG_BREAK:
|
| case DEBUG_PREPARE_STEP_IN:
|
| UNREACHABLE();
|
| @@ -1742,7 +1754,7 @@ Handle<Code> KeyedIC::ComputeStub(Handle<JSObject> receiver,
|
| isolate()->factory()->polymorphic_code_cache();
|
| Code::ExtraICState extra_state = Code::ComputeExtraICState(grow_mode,
|
| strict_mode);
|
| - Code::Flags flags = Code::ComputeFlags(kind(), MEGAMORPHIC, extra_state);
|
| + Code::Flags flags = Code::ComputeFlags(kind(), POLYMORPHIC, extra_state);
|
| Handle<Object> probe = cache->Lookup(&target_receiver_maps, flags);
|
| if (probe->IsCode()) return Handle<Code>::cast(probe);
|
|
|
| @@ -2099,6 +2111,7 @@ void KeyedStoreIC::UpdateCaches(LookupResult* lookup,
|
| case DEBUG_PREPARE_STEP_IN:
|
| break;
|
| case MONOMORPHIC_PROTOTYPE_FAILURE:
|
| + case POLYMORPHIC:
|
| UNREACHABLE();
|
| break;
|
| }
|
|
|