Index: src/type-info.cc |
=================================================================== |
--- src/type-info.cc (revision 11076) |
+++ src/type-info.cc (working copy) |
@@ -77,6 +77,17 @@ |
} |
+bool TypeFeedbackOracle::LoadIsUninitialized(Property* expr) { |
+ Handle<Object> map_or_code = GetInfo(expr->id()); |
+ if (map_or_code->IsMap()) return false; |
+ if (map_or_code->IsCode()) { |
+ Handle<Code> code = Handle<Code>::cast(map_or_code); |
+ return code->is_inline_cache_stub() && code->ic_state() == UNINITIALIZED; |
+ } |
+ return false; |
+} |
+ |
+ |
bool TypeFeedbackOracle::LoadIsMonomorphicNormal(Property* expr) { |
Handle<Object> map_or_code = GetInfo(expr->id()); |
if (map_or_code->IsMap()) return true; |
@@ -649,7 +660,7 @@ |
SetInfo(ast_id, map); |
} |
} |
- } else if (target->ic_state() == MEGAMORPHIC) { |
+ } else { |
SetInfo(ast_id, target); |
} |
break; |