| Index: src/ic.cc | 
| diff --git a/src/ic.cc b/src/ic.cc | 
| index a6ffb13ad40a84b16073b7d6b8a4bbb43ab7e702..da6e9c69eafcb6fb5712f73ed5f4d9580e70049a 100644 | 
| --- a/src/ic.cc | 
| +++ b/src/ic.cc | 
| @@ -2257,9 +2257,14 @@ RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss) { | 
| ASSERT(args.length() == 4); | 
| KeyedStoreIC ic(IC::EXTRA_CALL_FRAME, isolate); | 
| Handle<Object> value = args.at<Object>(0); | 
| +  Handle<Map> map = args.at<Map>(1); | 
| Handle<Object> key = args.at<Object>(2); | 
| Handle<Object> object = args.at<Object>(3); | 
| StrictModeFlag strict_mode = ic.strict_mode(); | 
| +  if (object->IsJSObject()) { | 
| +    JSObject::TransitionElementsKind(Handle<JSObject>::cast(object), | 
| +                                     map->elements_kind()); | 
| +  } | 
| return Runtime::SetObjectProperty(isolate, | 
| object, | 
| key, | 
|  |