Index: src/ic.cc |
=================================================================== |
--- src/ic.cc (revision 4833) |
+++ src/ic.cc (working copy) |
@@ -58,7 +58,7 @@ |
} |
void IC::TraceIC(const char* type, |
- Handle<String> name, |
+ Handle<Object> name, |
State old_state, |
Code* new_target, |
const char* extra_info) { |
@@ -610,15 +610,19 @@ |
if (object->IsString() || object->IsNumber() || object->IsBoolean()) { |
ReceiverToObject(object); |
- } else { |
- if (FLAG_use_ic && state != MEGAMORPHIC && !object->IsAccessCheckNeeded()) { |
- int argc = target()->arguments_count(); |
- InLoopFlag in_loop = target()->ic_in_loop(); |
- Object* code = StubCache::ComputeCallMegamorphic( |
- argc, in_loop, Code::KEYED_CALL_IC); |
- if (!code->IsFailure()) { |
- set_target(Code::cast(code)); |
- } |
+ } |
+ |
+ if (FLAG_use_ic && state != MEGAMORPHIC && !object->IsAccessCheckNeeded()) { |
+ int argc = target()->arguments_count(); |
+ InLoopFlag in_loop = target()->ic_in_loop(); |
+ Object* code = StubCache::ComputeCallMegamorphic( |
+ argc, in_loop, Code::KEYED_CALL_IC); |
+ if (!code->IsFailure()) { |
+ set_target(Code::cast(code)); |
+#ifdef DEBUG |
+ TraceIC( |
+ "KeyedCallIC", key, state, target(), in_loop ? " (in-loop)" : ""); |
+#endif |
} |
} |
Object* result = Runtime::GetObjectProperty(object, key); |