Index: src/ic.h |
diff --git a/src/ic.h b/src/ic.h |
index a383039d150c78497e0eed1b4f7397298e9f82b7..78c364229ffcf67a0d78306698138b7c95e8e9f5 100644 |
--- a/src/ic.h |
+++ b/src/ic.h |
@@ -165,6 +165,16 @@ class IC { |
static inline void SetTargetAtAddress(Address address, Code* target); |
static void PostPatching(Address address, Code* target, Code* old_target); |
+ virtual void UpdateMonomorphicIC(Handle<JSObject> receiver, |
+ Handle<Code> handler, |
+ Handle<String> name) { |
+ set_target(*handler); |
+ } |
+ bool UpdatePolymorphicIC(State state, |
+ StrictModeFlag strict_mode, |
+ Handle<JSObject> receiver, |
+ Handle<String> name, |
+ Handle<Code> code); |
void PatchCache(State state, |
StrictModeFlag strict_mode, |
Handle<JSObject> receiver, |
@@ -377,9 +387,12 @@ class LoadIC: public IC { |
State state, |
Handle<Object> object, |
Handle<String> name); |
- virtual Handle<Code> ComputeLoadMonomorphic(LookupResult* lookup, |
- Handle<JSObject> receiver, |
- Handle<String> name); |
+ virtual void UpdateMonomorphicIC(Handle<JSObject> receiver, |
+ Handle<Code> handler, |
+ Handle<String> name); |
+ virtual Handle<Code> ComputeLoadHandler(LookupResult* lookup, |
+ Handle<JSObject> receiver, |
+ Handle<String> name); |
private: |
// Stub accessors. |
@@ -448,9 +461,12 @@ class KeyedLoadIC: public LoadIC { |
} |
// Update the inline cache. |
- virtual Handle<Code> ComputeLoadMonomorphic(LookupResult* lookup, |
- Handle<JSObject> receiver, |
- Handle<String> name); |
+ virtual void UpdateMonomorphicIC(Handle<JSObject> receiver, |
+ Handle<Code> handler, |
+ Handle<String> name); |
+ virtual Handle<Code> ComputeLoadHandler(LookupResult* lookup, |
+ Handle<JSObject> receiver, |
+ Handle<String> name); |
virtual void UpdateMegamorphicCache(Map* map, String* name, Code* code) { } |
private: |