diff options
author | isaacs <i@izs.me> | 2012-07-24 14:18:47 -0700 |
---|---|---|
committer | isaacs <i@izs.me> | 2012-07-24 14:18:47 -0700 |
commit | f4f0daa44d57b93135bbaad3e81b8d199f42938b (patch) | |
tree | 5f9fa5f673969315f061066f7c45b3bd462489fa /deps/v8/src/ic.cc | |
parent | 0a0002b480dc40ecd94c542d1101e87404a47692 (diff) | |
download | node-new-f4f0daa44d57b93135bbaad3e81b8d199f42938b.tar.gz |
V8: Upgrade to 3.11.10.17
Diffstat (limited to 'deps/v8/src/ic.cc')
-rw-r--r-- | deps/v8/src/ic.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/deps/v8/src/ic.cc b/deps/v8/src/ic.cc index 47a72b4956..0ad0670c36 100644 --- a/deps/v8/src/ic.cc +++ b/deps/v8/src/ic.cc @@ -992,6 +992,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); @@ -1268,6 +1269,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); @@ -1487,6 +1489,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); |