Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index 387c1cfc567495f0e731301e63e5800a67cdb70e..b275394be89192113a7b89de87a51af8c41f6ccd 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -1664,7 +1664,9 @@ Handle<Code> StoreIC::CompileHandler(LookupIterator* lookup, |
break; |
} |
Handle<Object> accessors = lookup->GetAccessors(); |
- if (accessors->IsExecutableAccessorInfo()) { |
+ if (accessors->IsExecutableAccessorInfo() && |
+ (!AccessorInfo::cast(*accessors)->is_special_data_property() || |
Igor Sheludko
2015/05/18 11:53:15
Maybe it's better to handle special data property
|
+ lookup->HolderIsReceiverOrHiddenPrototype())) { |
Handle<ExecutableAccessorInfo> info = |
Handle<ExecutableAccessorInfo>::cast(accessors); |
if (v8::ToCData<Address>(info->setter()) == 0) { |