| Index: src/ic/ic.cc
|
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
|
| index 41f2a334aabc709a3c2451efe9cfe3e274822559..f8c3b0669f09272ee32f029a5dc4c1fb08448b81 100644
|
| --- a/src/ic/ic.cc
|
| +++ b/src/ic/ic.cc
|
| @@ -262,6 +262,7 @@ static void LookupForRead(LookupIterator* it) {
|
| }
|
| return;
|
| case LookupIterator::ACCESSOR:
|
| + case LookupIterator::INTEGER_INDEXED_EXOTIC:
|
| case LookupIterator::DATA:
|
| return;
|
| }
|
| @@ -1316,6 +1317,8 @@ Handle<Code> LoadIC::CompileHandler(LookupIterator* lookup,
|
| lookup->GetConstantIndex());
|
| }
|
|
|
| + case LookupIterator::INTEGER_INDEXED_EXOTIC:
|
| + return slow_stub();
|
| case LookupIterator::ACCESS_CHECK:
|
| case LookupIterator::JSPROXY:
|
| case LookupIterator::NOT_FOUND:
|
| @@ -1506,6 +1509,8 @@ bool StoreIC::LookupForWrite(LookupIterator* it, Handle<Object> value,
|
| break;
|
| case LookupIterator::ACCESSOR:
|
| return !it->IsReadOnly();
|
| + case LookupIterator::INTEGER_INDEXED_EXOTIC:
|
| + return false;
|
| case LookupIterator::DATA: {
|
| if (it->IsReadOnly()) return false;
|
| Handle<JSObject> holder = it->GetHolder<JSObject>();
|
| @@ -1530,7 +1535,6 @@ bool StoreIC::LookupForWrite(LookupIterator* it, Handle<Object> value,
|
| }
|
| }
|
|
|
| - if (it->IsSpecialNumericIndex()) return false;
|
| it->PrepareTransitionToDataProperty(value, NONE, store_mode);
|
| return it->IsCacheableTransition();
|
| }
|
| @@ -1835,6 +1839,7 @@ Handle<Code> StoreIC::CompileHandler(LookupIterator* lookup,
|
| break;
|
| }
|
|
|
| + case LookupIterator::INTEGER_INDEXED_EXOTIC:
|
| case LookupIterator::ACCESS_CHECK:
|
| case LookupIterator::JSPROXY:
|
| case LookupIterator::NOT_FOUND:
|
|
|