| Index: src/ic/ic.cc
|
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
|
| index 387c1cfc567495f0e731301e63e5800a67cdb70e..c73398f5a5716a92fcc52658253941e758a3b5bc 100644
|
| --- a/src/ic/ic.cc
|
| +++ b/src/ic/ic.cc
|
| @@ -1671,6 +1671,12 @@ Handle<Code> StoreIC::CompileHandler(LookupIterator* lookup,
|
| TRACE_GENERIC_IC(isolate(), "StoreIC", "setter == 0");
|
| break;
|
| }
|
| + if (AccessorInfo::cast(*accessors)->is_special_data_property() &&
|
| + !lookup->HolderIsReceiverOrHiddenPrototype()) {
|
| + TRACE_GENERIC_IC(isolate(), "StoreIC",
|
| + "special data property in prototype chain");
|
| + break;
|
| + }
|
| if (!ExecutableAccessorInfo::IsCompatibleReceiverMap(isolate(), info,
|
| receiver_map())) {
|
| TRACE_GENERIC_IC(isolate(), "StoreIC", "incompatible receiver type");
|
|
|