| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index 4361ba2ee0b80e02a11391b76ad25887b1064fcd..eb845347c4b0e76e3ff12ffb9a1d5fe0c20e6cdd 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -1206,10 +1206,12 @@ void KeyedLoadIC::UpdateCaches(LookupResult* lookup,
|
|
|
| static bool StoreICableLookup(LookupResult* lookup) {
|
| // Bail out if we didn't find a result.
|
| - if (!lookup->IsPropertyOrTransition() || !lookup->IsCacheable()) return false;
|
| + if (!lookup->IsFound() || lookup->type() == NULL_DESCRIPTOR) return false;
|
|
|
| - // If the property is read-only, we leave the IC in its current
|
| - // state.
|
| + // Bail out if inline caching is not allowed.
|
| + if (!lookup->IsCacheable()) return false;
|
| +
|
| + // If the property is read-only, we leave the IC in its current state.
|
| if (lookup->IsReadOnly()) return false;
|
|
|
| return true;
|
|
|