Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index f09af327a192fa7b7305928baa1a11b44642a047..cd44f8831bbb941641e4e88640d0589698b744a5 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -554,6 +554,23 @@ void CompareIC::Clear(Isolate* isolate, |
} |
+Handle<Code> KeyedLoadIC::megamorphic_stub() { |
+ if (FLAG_compiled_keyed_generic_loads) { |
+ return KeyedLoadGenericElementStub(isolate()).GetCode(); |
+ } else { |
+ return isolate()->builtins()->KeyedLoadIC_Generic(); |
+ } |
+} |
+ |
+Handle<Code> KeyedLoadIC::generic_stub() const { |
+ if (FLAG_compiled_keyed_generic_loads) { |
+ return KeyedLoadGenericElementStub(isolate()).GetCode(); |
+ } else { |
+ return isolate()->builtins()->KeyedLoadIC_Generic(); |
+ } |
+} |
+ |
+ |
static bool MigrateDeprecated(Handle<Object> object) { |
if (!object->IsJSObject()) return false; |
Handle<JSObject> receiver = Handle<JSObject>::cast(object); |
@@ -1154,7 +1171,8 @@ MaybeHandle<Object> KeyedLoadIC::Load(Handle<Object> object, |
} |
if (!is_target_set()) { |
- if (*stub == *generic_stub()) { |
+ Code* generic = *generic_stub(); |
+ if (*stub == generic) { |
TRACE_GENERIC_IC(isolate(), "KeyedLoadIC", "set generic"); |
} |
set_target(*stub); |
@@ -1799,7 +1817,8 @@ MaybeHandle<Object> KeyedStoreIC::Store(Handle<Object> object, |
} |
if (!is_target_set()) { |
- if (*stub == *generic_stub()) { |
+ Code* generic = *generic_stub(); |
+ if (*stub == generic) { |
TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "set generic"); |
} |
ASSERT(!stub.is_null()); |