Index: src/hydrogen-instructions.cc |
diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc |
index d44e90ac04101799d3a6aa3b37178b430140f4fe..70ed782da37305593cb44167e98d9b72d34a2ce6 100644 |
--- a/src/hydrogen-instructions.cc |
+++ b/src/hydrogen-instructions.cc |
@@ -1638,9 +1638,10 @@ static bool PrototypeChainCanNeverResolve( |
} |
LookupResult lookup(isolate); |
- JSObject::cast(current)->map()->LookupInDescriptors(NULL, *name, &lookup); |
+ Map* map = JSObject::cast(current)->map(); |
+ map->LookupTransitionOrDescriptor(NULL, *name, &lookup); |
if (lookup.IsFound()) { |
- if (lookup.type() != MAP_TRANSITION) return false; |
+ if (!lookup.IsTransition()) return false; |
} else if (!lookup.IsCacheable()) { |
return false; |
} |
@@ -1669,7 +1670,7 @@ HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context, |
++i) { |
Handle<Map> map = types->at(i); |
LookupResult lookup(map->GetIsolate()); |
- map->LookupInDescriptors(NULL, *name, &lookup); |
+ map->LookupTransitionOrDescriptor(NULL, *name, &lookup); |
if (lookup.IsFound()) { |
switch (lookup.type()) { |
case FIELD: { |
@@ -1685,12 +1686,18 @@ HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context, |
case CONSTANT_FUNCTION: |
types_.Add(types->at(i), zone); |
break; |
- case MAP_TRANSITION: |
+ case CALLBACKS: |
+ break; |
+ case TRANSITION: |
if (PrototypeChainCanNeverResolve(map, name)) { |
negative_lookups.Add(types->at(i), zone); |
} |
break; |
- default: |
+ case INTERCEPTOR: |
+ case NONEXISTENT: |
+ case NORMAL: |
+ case HANDLER: |
+ UNREACHABLE(); |
break; |
} |
} else if (lookup.IsCacheable()) { |