| Index: src/type-feedback-vector.h
|
| diff --git a/src/type-feedback-vector.h b/src/type-feedback-vector.h
|
| index 38d5695a537dbea157005e9fcef5b3406410374c..cfcb6dbd699be22a2fd8d52d18668f7a6a508ff9 100644
|
| --- a/src/type-feedback-vector.h
|
| +++ b/src/type-feedback-vector.h
|
| @@ -412,8 +412,9 @@ class FeedbackNexus {
|
|
|
| virtual InlineCacheState StateFromFeedback() const = 0;
|
| virtual int ExtractMaps(MapHandleList* maps) const;
|
| - virtual MaybeHandle<Code> FindHandlerForMap(Handle<Map> map) const;
|
| - virtual bool FindHandlers(CodeHandleList* code_list, int length = -1) const;
|
| + virtual MaybeHandle<Object> FindHandlerForMap(Handle<Map> map) const;
|
| + virtual bool FindHandlers(List<Handle<Object>>* code_list,
|
| + int length = -1) const;
|
| virtual Name* FindFirstName() const { return NULL; }
|
|
|
| virtual void ConfigureUninitialized();
|
| @@ -434,7 +435,7 @@ class FeedbackNexus {
|
| Handle<FixedArray> EnsureArrayOfSize(int length);
|
| Handle<FixedArray> EnsureExtraArrayOfSize(int length);
|
| void InstallHandlers(Handle<FixedArray> array, MapHandleList* maps,
|
| - CodeHandleList* handlers);
|
| + List<Handle<Object>>* handlers);
|
|
|
| private:
|
| // The reason for having a vector handle and a raw pointer is that we can and
|
| @@ -471,10 +472,11 @@ class CallICNexus final : public FeedbackNexus {
|
| // CallICs don't record map feedback.
|
| return 0;
|
| }
|
| - MaybeHandle<Code> FindHandlerForMap(Handle<Map> map) const final {
|
| + MaybeHandle<Object> FindHandlerForMap(Handle<Map> map) const final {
|
| return MaybeHandle<Code>();
|
| }
|
| - bool FindHandlers(CodeHandleList* code_list, int length = -1) const final {
|
| + bool FindHandlers(List<Handle<Object>>* code_list,
|
| + int length = -1) const final {
|
| return length == 0;
|
| }
|
|
|
| @@ -499,9 +501,10 @@ class LoadICNexus : public FeedbackNexus {
|
|
|
| void Clear(Code* host);
|
|
|
| - void ConfigureMonomorphic(Handle<Map> receiver_map, Handle<Code> handler);
|
| + void ConfigureMonomorphic(Handle<Map> receiver_map, Handle<Object> handler);
|
|
|
| - void ConfigurePolymorphic(MapHandleList* maps, CodeHandleList* handlers);
|
| + void ConfigurePolymorphic(MapHandleList* maps,
|
| + List<Handle<Object>>* handlers);
|
|
|
| InlineCacheState StateFromFeedback() const override;
|
| };
|
| @@ -521,10 +524,11 @@ class LoadGlobalICNexus : public FeedbackNexus {
|
| // LoadGlobalICs don't record map feedback.
|
| return 0;
|
| }
|
| - MaybeHandle<Code> FindHandlerForMap(Handle<Map> map) const final {
|
| + MaybeHandle<Object> FindHandlerForMap(Handle<Map> map) const final {
|
| return MaybeHandle<Code>();
|
| }
|
| - bool FindHandlers(CodeHandleList* code_list, int length = -1) const final {
|
| + bool FindHandlers(List<Handle<Object>>* code_list,
|
| + int length = -1) const final {
|
| return length == 0;
|
| }
|
|
|
| @@ -556,7 +560,7 @@ class KeyedLoadICNexus : public FeedbackNexus {
|
| Handle<Code> handler);
|
| // name can be null.
|
| void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps,
|
| - CodeHandleList* handlers);
|
| + List<Handle<Object>>* handlers);
|
|
|
| void ConfigureMegamorphicKeyed(IcCheckType property_type);
|
|
|
| @@ -585,7 +589,8 @@ class StoreICNexus : public FeedbackNexus {
|
|
|
| void ConfigureMonomorphic(Handle<Map> receiver_map, Handle<Code> handler);
|
|
|
| - void ConfigurePolymorphic(MapHandleList* maps, CodeHandleList* handlers);
|
| + void ConfigurePolymorphic(MapHandleList* maps,
|
| + List<Handle<Object>>* handlers);
|
|
|
| InlineCacheState StateFromFeedback() const override;
|
| };
|
| @@ -613,7 +618,7 @@ class KeyedStoreICNexus : public FeedbackNexus {
|
| Handle<Code> handler);
|
| // name can be null.
|
| void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps,
|
| - CodeHandleList* handlers);
|
| + List<Handle<Object>>* handlers);
|
| void ConfigurePolymorphic(MapHandleList* maps,
|
| MapHandleList* transitioned_maps,
|
| CodeHandleList* handlers);
|
|
|