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: |