Index: src/ic/ic.h |
diff --git a/src/ic/ic.h b/src/ic/ic.h |
index 68be8e5a8a6927dd3df82762b6f20afc07f42552..88bd6defa4c181abd01a205dfb360a25785e892b 100644 |
--- a/src/ic/ic.h |
+++ b/src/ic/ic.h |
@@ -107,10 +107,10 @@ class IC { |
void ConfigureVectorState(IC::State new_state, Handle<Object> key); |
// Configure the vector for MONOMORPHIC. |
void ConfigureVectorState(Handle<Name> name, Handle<Map> map, |
- Handle<Code> handler); |
+ Handle<Object> handler); |
// Configure the vector for POLYMORPHIC. |
void ConfigureVectorState(Handle<Name> name, MapHandleList* maps, |
- CodeHandleList* handlers); |
+ List<Handle<Object>>* handlers); |
// Configure the vector for POLYMORPHIC with transitions (only for element |
// keyed stores). |
void ConfigureVectorState(MapHandleList* maps, |
@@ -136,9 +136,9 @@ class IC { |
static void PostPatching(Address address, Code* target, Code* old_target); |
// Compute the handler either by compiling or by retrieving a cached version. |
- Handle<Code> ComputeHandler(LookupIterator* lookup, |
- Handle<Object> value = Handle<Code>::null()); |
- virtual Handle<Code> GetMapIndependentHandler(LookupIterator* lookup) { |
+ Handle<Object> ComputeHandler(LookupIterator* lookup, |
+ Handle<Object> value = Handle<Code>::null()); |
+ virtual Handle<Object> GetMapIndependentHandler(LookupIterator* lookup) { |
UNREACHABLE(); |
return Handle<Code>::null(); |
} |
@@ -149,15 +149,15 @@ class IC { |
return Handle<Code>::null(); |
} |
- void UpdateMonomorphicIC(Handle<Code> handler, Handle<Name> name); |
- bool UpdatePolymorphicIC(Handle<Name> name, Handle<Code> code); |
- void UpdateMegamorphicCache(Map* map, Name* name, Code* code); |
+ void UpdateMonomorphicIC(Handle<Object> handler, Handle<Name> name); |
+ bool UpdatePolymorphicIC(Handle<Name> name, Handle<Object> code); |
+ void UpdateMegamorphicCache(Map* map, Name* name, Object* code); |
StubCache* stub_cache(); |
void CopyICToMegamorphicCache(Handle<Name> name); |
bool IsTransitionOfMonomorphicTarget(Map* source_map, Map* target_map); |
- void PatchCache(Handle<Name> name, Handle<Code> code); |
+ void PatchCache(Handle<Name> name, Handle<Object> code); |
Code::Kind kind() const { return kind_; } |
bool is_keyed() const { |
return kind_ == Code::KEYED_LOAD_IC || kind_ == Code::KEYED_STORE_IC; |
@@ -239,7 +239,7 @@ class IC { |
State state_; |
Code::Kind kind_; |
Handle<Map> receiver_map_; |
- MaybeHandle<Code> maybe_handler_; |
+ MaybeHandle<Object> maybe_handler_; |
ExtraICState extra_ic_state_; |
MapHandleList target_maps_; |
@@ -305,13 +305,13 @@ class LoadIC : public IC { |
// lookup result. |
void UpdateCaches(LookupIterator* lookup); |
- Handle<Code> GetMapIndependentHandler(LookupIterator* lookup) override; |
+ Handle<Object> GetMapIndependentHandler(LookupIterator* lookup) override; |
Handle<Code> CompileHandler(LookupIterator* lookup, Handle<Object> unused, |
CacheHolderFlag cache_holder) override; |
private: |
- Handle<Code> SimpleFieldLoad(FieldIndex index); |
+ Handle<Object> SimpleFieldLoad(FieldIndex index); |
friend class IC; |
}; |
@@ -418,7 +418,7 @@ class StoreIC : public IC { |
// lookup result. |
void UpdateCaches(LookupIterator* lookup, Handle<Object> value, |
JSReceiver::StoreFromKeyed store_mode); |
- Handle<Code> GetMapIndependentHandler(LookupIterator* lookup) override; |
+ Handle<Object> GetMapIndependentHandler(LookupIterator* lookup) override; |
Handle<Code> CompileHandler(LookupIterator* lookup, Handle<Object> value, |
CacheHolderFlag cache_holder) override; |