Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index 11cd7ecd705385d9e37ca8783ed602f48ca47cc7..55d7ba936fb3068d105d2af10673aa31b4d1896c 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -370,18 +370,6 @@ void IC::TryRemoveInvalidHandlers(Handle<Map> map, Handle<String> name) { |
void IC::UpdateState(Handle<Object> receiver, Handle<Object> name) { |
if (!name->IsString()) return; |
- |
- // The builtins object is special. It only changes when JavaScript |
- // builtins are loaded lazily. It is important to keep inline |
- // caches for the builtins object monomorphic. Therefore, if we get |
- // an inline cache miss for the builtins object after lazily loading |
- // JavaScript builtins, we return uninitialized as the state to |
- // force the inline cache back to monomorphic state. |
- if (receiver->IsJSBuiltinsObject()) { |
- state_ = UNINITIALIZED; |
- return; |
- } |
- |
if (state() != MONOMORPHIC) { |
if (state() == POLYMORPHIC && receiver->IsHeapObject()) { |
TryRemoveInvalidHandlers( |
@@ -399,6 +387,14 @@ void IC::UpdateState(Handle<Object> receiver, Handle<Object> name) { |
receiver, Handle<String>::cast(name))) { |
return MarkMonomorphicPrototypeFailure(); |
} |
+ |
+ // The builtins object is special. It only changes when JavaScript |
+ // builtins are loaded lazily. It is important to keep inline |
+ // caches for the builtins object monomorphic. Therefore, if we get |
+ // an inline cache miss for the builtins object after lazily loading |
+ // JavaScript builtins, we return uninitialized as the state to |
+ // force the inline cache back to monomorphic state. |
+ if (receiver->IsJSBuiltinsObject()) state_ = UNINITIALIZED; |
} |