| Index: src/ic.cc | 
| diff --git a/src/ic.cc b/src/ic.cc | 
| index a6b7a1df8c7a3a98535cb835ebf91cda33c5e912..69a3f2a65f2e9a459a01c33f9fac488c9151c4f6 100644 | 
| --- a/src/ic.cc | 
| +++ b/src/ic.cc | 
| @@ -989,6 +989,7 @@ void LoadIC::UpdateCaches(LookupResult* lookup, | 
| if (callback->IsAccessorInfo()) { | 
| Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(callback); | 
| if (v8::ToCData<Address>(info->getter()) == 0) return; | 
| +          if (!receiver->HasFastProperties()) return; | 
| if (!info->IsCompatibleReceiver(*receiver)) return; | 
| code = isolate()->stub_cache()->ComputeLoadCallback( | 
| name, receiver, holder, info); | 
| @@ -1265,6 +1266,7 @@ void KeyedLoadIC::UpdateCaches(LookupResult* lookup, | 
| Handle<AccessorInfo> callback = | 
| Handle<AccessorInfo>::cast(callback_object); | 
| if (v8::ToCData<Address>(callback->getter()) == 0) return; | 
| +        if (!receiver->HasFastProperties()) return; | 
| if (!callback->IsCompatibleReceiver(*receiver)) return; | 
| code = isolate()->stub_cache()->ComputeKeyedLoadCallback( | 
| name, receiver, holder, callback); | 
| @@ -1484,6 +1486,7 @@ void StoreIC::UpdateCaches(LookupResult* lookup, | 
| if (callback->IsAccessorInfo()) { | 
| Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(callback); | 
| if (v8::ToCData<Address>(info->setter()) == 0) return; | 
| +        if (!receiver->HasFastProperties()) return; | 
| ASSERT(info->IsCompatibleReceiver(*receiver)); | 
| code = isolate()->stub_cache()->ComputeStoreCallback( | 
| name, receiver, info, strict_mode); | 
|  |