| 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());
|
|
|