Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index 6cd1641ade3f3d15f7898ed611f154ddae0e94db..0baba966a4b27681eb94336b4f6e9fb172e12e7e 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -1396,6 +1396,7 @@ Handle<Object> LoadIC::GetMapIndependentHandler(LookupIterator* lookup) { |
} |
case LookupIterator::DATA: { |
+ DCHECK_EQ(kData, lookup->property_details().kind()); |
if (lookup->is_dictionary_holder()) { |
if (kind() != Code::LOAD_IC && kind() != Code::LOAD_GLOBAL_IC) { |
TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub); |
@@ -1417,7 +1418,7 @@ Handle<Object> LoadIC::GetMapIndependentHandler(LookupIterator* lookup) { |
} |
// -------------- Fields -------------- |
- if (lookup->property_details().type() == DATA) { |
+ if (lookup->property_details().location() == kField) { |
FieldIndex field = lookup->GetFieldIndex(); |
Handle<Object> smi_handler = SimpleFieldLoad(isolate(), field); |
if (receiver_is_holder) { |
@@ -1428,7 +1429,7 @@ Handle<Object> LoadIC::GetMapIndependentHandler(LookupIterator* lookup) { |
} |
// -------------- Constant properties -------------- |
- DCHECK(lookup->property_details().type() == DATA_CONSTANT); |
+ DCHECK_EQ(kDescriptor, lookup->property_details().location()); |
Handle<Object> smi_handler = |
LoadHandler::LoadConstant(isolate(), lookup->GetConstantIndex()); |
if (receiver_is_holder) { |
@@ -1878,11 +1879,12 @@ Handle<Object> StoreIC::StoreTransition(Handle<Map> receiver_map, |
DCHECK(!transition->is_access_check_needed()); |
Handle<Object> smi_handler; |
- if (details.type() == DATA_CONSTANT) { |
+ DCHECK_EQ(kData, details.kind()); |
+ if (details.location() == kDescriptor) { |
smi_handler = StoreHandler::TransitionToConstant(isolate(), descriptor); |
} else { |
- DCHECK_EQ(DATA, details.type()); |
+ DCHECK_EQ(kField, details.location()); |
bool extend_storage = |
Map::cast(transition->GetBackPointer())->unused_property_fields() == 0; |
@@ -2029,6 +2031,7 @@ Handle<Object> StoreIC::GetMapIndependentHandler(LookupIterator* lookup) { |
} |
case LookupIterator::DATA: { |
+ DCHECK_EQ(kData, lookup->property_details().kind()); |
if (lookup->is_dictionary_holder()) { |
if (holder->IsJSGlobalObject()) { |
break; // Custom-compiled handler. |
@@ -2039,7 +2042,7 @@ Handle<Object> StoreIC::GetMapIndependentHandler(LookupIterator* lookup) { |
} |
// -------------- Fields -------------- |
- if (lookup->property_details().type() == DATA) { |
+ if (lookup->property_details().location() == kField) { |
TRACE_HANDLER_STATS(isolate(), StoreIC_StoreFieldDH); |
int descriptor = lookup->GetFieldDescriptorIndex(); |
FieldIndex index = lookup->GetFieldIndex(); |
@@ -2048,7 +2051,7 @@ Handle<Object> StoreIC::GetMapIndependentHandler(LookupIterator* lookup) { |
} |
// -------------- Constant properties -------------- |
- DCHECK(lookup->property_details().type() == DATA_CONSTANT); |
+ DCHECK_EQ(kDescriptor, lookup->property_details().location()); |
TRACE_GENERIC_IC(isolate(), "StoreIC", "constant property"); |
TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub); |
return slow_stub(); |