Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index 43ee60232fd300120b1ce895aae180569b575205..5de1a2a4bce778f8bbc204e96280301a934229cc 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -996,6 +996,7 @@ void LoadIC::UpdateCaches(LookupResult* lookup, |
Handle<Object> getter(Handle<AccessorPair>::cast(callback)->getter()); |
if (!getter->IsJSFunction()) return; |
if (holder->IsGlobalObject()) return; |
+ if (!holder->HasFastProperties()) return; |
code = isolate()->stub_cache()->ComputeLoadViaGetter( |
name, receiver, holder, Handle<JSFunction>::cast(getter)); |
} else { |
@@ -1264,7 +1265,6 @@ void KeyedLoadIC::UpdateCaches(LookupResult* lookup, |
Handle<AccessorInfo> callback = |
Handle<AccessorInfo>::cast(callback_object); |
if (v8::ToCData<Address>(callback->getter()) == 0) return; |
- if (!holder->HasFastProperties()) return; |
if (!callback->IsCompatibleReceiver(*receiver)) return; |
code = isolate()->stub_cache()->ComputeKeyedLoadCallback( |
name, receiver, holder, callback); |