| Index: src/ic.h
|
| diff --git a/src/ic.h b/src/ic.h
|
| index 213a48182635badf5c833729e0d8d143e999b6c8..fce585f6d72743780d7d0ceca8d446d84474b557 100644
|
| --- a/src/ic.h
|
| +++ b/src/ic.h
|
| @@ -150,6 +150,19 @@ class IC {
|
| // Get the call-site target; used for determining the state.
|
| Handle<Code> target() const { return target_; }
|
|
|
| + TypeHandleList* types() { return &types_; }
|
| + CodeHandleList* handlers() { return &handlers_; }
|
| + Map* first_map() {
|
| + return types_.length() == 0 ? NULL : *TypeToMap(*types_.at(0), isolate_);
|
| + }
|
| + Code* first_handler() {
|
| + return handlers_.length() == 0 ? NULL : *handlers_.at(0);
|
| + }
|
| + void GetMapsFromTypes(MapHandleList* maps) {
|
| + for (int i = 0; i < types_.length(); ++i) {
|
| + maps->Add(TypeToMap(*types_.at(i), isolate_));
|
| + }
|
| + }
|
| Address fp() const { return fp_; }
|
| Address pc() const { return *pc_address_; }
|
| Isolate* isolate() const { return isolate_; }
|
| @@ -209,7 +222,7 @@ class IC {
|
| virtual void UpdateMegamorphicCache(HeapType* type, Name* name, Code* code);
|
|
|
| void CopyICToMegamorphicCache(Handle<String> name);
|
| - bool IsTransitionOfMonomorphicTarget(Handle<HeapType> type);
|
| + bool IsTransitionOfMonomorphicTarget(Map* source_map, Map* target_map);
|
| void PatchCache(Handle<HeapType> type,
|
| Handle<String> name,
|
| Handle<Code> code);
|
| @@ -260,6 +273,9 @@ class IC {
|
|
|
| ExtraICState extra_ic_state_;
|
|
|
| + TypeHandleList types_;
|
| + CodeHandleList handlers_;
|
| +
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(IC);
|
| };
|
|
|
|
|