Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 41f9d0d5ccdecae37ed1cf08206f09136a6f8476..ad18cd49d4ddcd1084d0a57c490cc810b48fab2d 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -2605,6 +2605,7 @@ class HCheckMaps: public HTemplateInstruction<2> { |
omit_ = true; |
for (int i = 0; i < map_set_.length(); i++) { |
Handle<Map> map = map_set_.at(i); |
+ if (!map->CanTransition()) continue; |
map->AddDependentCompilationInfo(DependentCode::kPrototypeCheckGroup, |
info); |
} |
@@ -3229,10 +3230,10 @@ class HConstant: public HTemplateInstruction<0> { |
return handle_; |
} |
- bool InstanceOf(Handle<Map> map) { |
+ bool HasMap(Handle<Map> map) { |
Handle<Object> constant_object = handle(); |
- return constant_object->IsJSObject() && |
- Handle<JSObject>::cast(constant_object)->map() == *map; |
+ return constant_object->IsHeapObject() && |
+ Handle<HeapObject>::cast(constant_object)->map() == *map; |
} |
bool IsSpecialDouble() const { |