| Index: src/ic.h | 
| diff --git a/src/ic.h b/src/ic.h | 
| index 3472ca9aec02566b67ff00af7b019ee23b86f90a..afa3e1ec94d2457cc205440bb56064fe71db3f71 100644 | 
| --- a/src/ic.h | 
| +++ b/src/ic.h | 
| @@ -242,17 +242,14 @@ class CallICBase: public IC { | 
| class StringStubState: public BitField<StringStubFeedback, 1, 1> {}; | 
|  | 
| // Returns a JSFunction or a Failure. | 
| -  MUST_USE_RESULT MaybeObject* LoadFunction(Code::ExtraICState extra_ic_state, | 
| -                                            Handle<Object> object, | 
| +  MUST_USE_RESULT MaybeObject* LoadFunction(Handle<Object> object, | 
| Handle<String> name); | 
|  | 
| protected: | 
| CallICBase(Code::Kind kind, Isolate* isolate) | 
| : IC(EXTRA_CALL_FRAME, isolate), kind_(kind) {} | 
|  | 
| -  bool TryUpdateExtraICState(LookupResult* lookup, | 
| -                             Handle<Object> object, | 
| -                             Code::ExtraICState* extra_ic_state); | 
| +  virtual Code::ExtraICState extra_ic_state() { return Code::kNoExtraICState; } | 
|  | 
| // Compute a monomorphic stub if possible, otherwise return a null handle. | 
| Handle<Code> ComputeMonomorphicStub(LookupResult* lookup, | 
| @@ -263,7 +260,6 @@ class CallICBase: public IC { | 
| // Update the inline cache and the global stub cache based on the lookup | 
| // result. | 
| void UpdateCaches(LookupResult* lookup, | 
| -                    Code::ExtraICState extra_ic_state, | 
| Handle<Object> object, | 
| Handle<String> name); | 
|  | 
| @@ -298,7 +294,9 @@ class CallICBase: public IC { | 
|  | 
| class CallIC: public CallICBase { | 
| public: | 
| -  explicit CallIC(Isolate* isolate) : CallICBase(Code::CALL_IC, isolate) { | 
| +  explicit CallIC(Isolate* isolate) | 
| +      : CallICBase(Code::CALL_IC, isolate), | 
| +        extra_ic_state_(target()->extra_ic_state()) { | 
| ASSERT(target()->is_call_stub()); | 
| } | 
|  | 
| @@ -323,6 +321,13 @@ class CallIC: public CallICBase { | 
| CallICBase::GenerateNormal(masm, argc); | 
| GenerateMiss(masm, argc, Code::kNoExtraICState); | 
| } | 
| +  bool TryUpdateExtraICState(LookupResult* lookup, Handle<Object> object); | 
| + | 
| + protected: | 
| +  virtual Code::ExtraICState extra_ic_state() { return extra_ic_state_; } | 
| + | 
| + private: | 
| +  Code::ExtraICState extra_ic_state_; | 
| }; | 
|  | 
|  | 
|  |