Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index 5b71e40c6f5ea2e4b98fda254c9bafc017587bba..038933001bfe910f5a299b6f0e3bedd7c7bffc2c 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -1516,10 +1516,10 @@ void StoreIC::UpdateCaches(LookupResult* lookup, |
case CONSTANT_FUNCTION: |
return; |
case TRANSITION: { |
- Map* value = lookup->GetTransitionTarget(); |
- Handle<Map> transition(Map::cast(value)); |
+ Handle<Map> transition(lookup->GetTransitionTarget()); |
+ int descriptor = transition->LastAdded(); |
+ |
DescriptorArray* target_descriptors = transition->instance_descriptors(); |
- int descriptor = target_descriptors->LastAdded(); |
PropertyDetails details = target_descriptors->GetDetails(descriptor); |
if (details.type() != FIELD || details.attributes() != NONE) return; |
@@ -1980,9 +1980,9 @@ void KeyedStoreIC::UpdateCaches(LookupResult* lookup, |
break; |
case TRANSITION: { |
Handle<Map> transition(lookup->GetTransitionTarget()); |
+ int descriptor = transition->LastAdded(); |
DescriptorArray* target_descriptors = transition->instance_descriptors(); |
- int descriptor = target_descriptors->LastAdded(); |
PropertyDetails details = target_descriptors->GetDetails(descriptor); |
if (details.type() == FIELD && details.attributes() == NONE) { |