| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index ee46961769695b62b3e572c2274412748ecb97b0..c15b76fcea188878a42ae7f502790daa0929dde3 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -174,16 +174,17 @@ static bool TryRemoveInvalidPrototypeDependentStub(Code* target,
|
| InlineCacheHolderFlag cache_holder =
|
| Code::ExtractCacheHolderFromFlags(target->flags());
|
|
|
| + Isolate* isolate = target->GetIsolate();
|
| if (cache_holder == OWN_MAP && !receiver->IsJSObject()) {
|
| // The stub was generated for JSObject but called for non-JSObject.
|
| // IC::GetCodeCacheHolder is not applicable.
|
| return false;
|
| } else if (cache_holder == PROTOTYPE_MAP &&
|
| - receiver->GetPrototype()->IsNull()) {
|
| + receiver->GetPrototype(isolate)->IsNull()) {
|
| // IC::GetCodeCacheHolder is not applicable.
|
| return false;
|
| }
|
| - Map* map = IC::GetCodeCacheHolder(receiver, cache_holder)->map();
|
| + Map* map = IC::GetCodeCacheHolder(isolate, receiver, cache_holder)->map();
|
|
|
| // Decide whether the inline cache failed because of changes to the
|
| // receiver itself or changes to one of its prototypes.
|
| @@ -734,7 +735,7 @@ void CallICBase::UpdateCaches(LookupResult* lookup,
|
| // GenerateMonomorphicCacheProbe. It is not the map which holds the stub.
|
| Handle<JSObject> cache_object = object->IsJSObject()
|
| ? Handle<JSObject>::cast(object)
|
| - : Handle<JSObject>(JSObject::cast(object->GetPrototype()));
|
| + : Handle<JSObject>(JSObject::cast(object->GetPrototype(isolate())));
|
| // Update the stub cache.
|
| UpdateMegamorphicCache(cache_object->map(), *name, *code);
|
| break;
|
|
|