| Index: src/objects.cc | 
| diff --git a/src/objects.cc b/src/objects.cc | 
| index 17d9dc6abfb5fe1fe96ab56af228ae953f138b6c..faf933f6835434380a69c7d33799fb0d1cf7891b 100644 | 
| --- a/src/objects.cc | 
| +++ b/src/objects.cc | 
| @@ -3764,8 +3764,6 @@ void Map::TraverseTransitionTree(TraverseCallback callback, void* data) { | 
|  | 
|  | 
| MaybeObject* CodeCache::Update(String* name, Code* code) { | 
| -  ASSERT(code->ic_state() == MONOMORPHIC); | 
| - | 
| // The number of monomorphic stubs for normal load/store/call IC's can grow to | 
| // a large number and therefore they need to go into a hash table. They are | 
| // used to load global properties from cells. | 
| @@ -6348,6 +6346,20 @@ Map* Code::FindFirstMap() { | 
| } | 
|  | 
|  | 
| +int Code::GetMapCount() { | 
| +  ASSERT(is_inline_cache_stub()); | 
| +  AssertNoAllocation no_allocation; | 
| +  int mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT); | 
| +  int count = 0; | 
| +  for (RelocIterator it(this, mask); !it.done(); it.next()) { | 
| +    RelocInfo* info = it.rinfo(); | 
| +    Object* object = info->target_object(); | 
| +    if (object->IsMap()) ++count; | 
| +  } | 
| +  return count; | 
| +} | 
| + | 
| + | 
| #ifdef ENABLE_DISASSEMBLER | 
|  | 
| #ifdef OBJECT_PRINT | 
| @@ -6510,10 +6522,8 @@ const char* Code::Kind2String(Kind kind) { | 
| case BUILTIN: return "BUILTIN"; | 
| case LOAD_IC: return "LOAD_IC"; | 
| case KEYED_LOAD_IC: return "KEYED_LOAD_IC"; | 
| -    case KEYED_EXTERNAL_ARRAY_LOAD_IC: return "KEYED_EXTERNAL_ARRAY_LOAD_IC"; | 
| case STORE_IC: return "STORE_IC"; | 
| case KEYED_STORE_IC: return "KEYED_STORE_IC"; | 
| -    case KEYED_EXTERNAL_ARRAY_STORE_IC: return "KEYED_EXTERNAL_ARRAY_STORE_IC"; | 
| case CALL_IC: return "CALL_IC"; | 
| case KEYED_CALL_IC: return "KEYED_CALL_IC"; | 
| case TYPE_RECORDING_BINARY_OP_IC: return "TYPE_RECORDING_BINARY_OP_IC"; | 
|  |