| Index: src/ic/ic.cc
 | 
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
 | 
| index c59fa5da6b4cd4b756b18c7ae918f300987399f3..7771b05c64c50481f2a373e068870f7d89b48f99 100644
 | 
| --- a/src/ic/ic.cc
 | 
| +++ b/src/ic/ic.cc
 | 
| @@ -549,7 +549,7 @@ void KeyedStoreIC::Clear(Isolate* isolate, Address address, Code* target,
 | 
|  void CompareIC::Clear(Isolate* isolate, Address address, Code* target,
 | 
|                        ConstantPoolArray* constant_pool) {
 | 
|    DCHECK(CodeStub::GetMajorKey(target) == CodeStub::CompareIC);
 | 
| -  CompareICStub stub(target->stub_key());
 | 
| +  CompareICStub stub(target->stub_key(), isolate);
 | 
|    // Only clear CompareICs that can retain objects.
 | 
|    if (stub.state() != KNOWN_OBJECT) return;
 | 
|    SetTargetAtAddress(address, GetRawUninitialized(isolate, stub.op()),
 | 
| @@ -2746,7 +2746,7 @@ Type* CompareIC::StateToType(Zone* zone, CompareIC::State state,
 | 
|  void CompareIC::StubInfoToType(uint32_t stub_key, Type** left_type,
 | 
|                                 Type** right_type, Type** overall_type,
 | 
|                                 Handle<Map> map, Zone* zone) {
 | 
| -  CompareICStub stub(stub_key);
 | 
| +  CompareICStub stub(stub_key, map->GetIsolate());
 | 
|    *left_type = StateToType(zone, stub.left());
 | 
|    *right_type = StateToType(zone, stub.right());
 | 
|    *overall_type = StateToType(zone, stub.state(), map);
 | 
| @@ -2859,7 +2859,7 @@ CompareIC::State CompareIC::TargetState(State old_state, State old_left,
 | 
|  
 | 
|  Code* CompareIC::UpdateCaches(Handle<Object> x, Handle<Object> y) {
 | 
|    HandleScope scope(isolate());
 | 
| -  CompareICStub old_stub(target()->stub_key());
 | 
| +  CompareICStub old_stub(target()->stub_key(), isolate());
 | 
|    State new_left = NewInputState(old_stub.left(), x);
 | 
|    State new_right = NewInputState(old_stub.right(), y);
 | 
|    State state = TargetState(old_stub.state(), old_stub.left(), old_stub.right(),
 | 
| 
 |