| 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_;
|
| };
|
|
|
|
|
|
|