Refactor TypeFeedbackOracle to accept Handle<Name> instead of Handle<String>.
authorBen L. Titzer <titzer@chromium.org>
Tue, 10 Mar 2015 15:06:10 +0000 (16:06 +0100)
committerBen L. Titzer <titzer@chromium.org>
Tue, 10 Mar 2015 15:06:24 +0000 (15:06 +0000)
R=verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/979323005

Cr-Commit-Position: refs/heads/master@{#27111}

src/type-info.cc
src/type-info.h

index 51885d5efa82be9b8bc0964c1ef5553c09e6fda0..48d516019911b6aaffdba9fe9ce4204f82499dd0 100644 (file)
@@ -313,7 +313,7 @@ Type* TypeFeedbackOracle::CountType(TypeFeedbackId id) {
 
 
 void TypeFeedbackOracle::PropertyReceiverTypes(TypeFeedbackId id,
-                                               Handle<String> name,
+                                               Handle<Name> name,
                                                SmallMapList* receiver_types) {
   receiver_types->Clear();
   Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC);
@@ -343,7 +343,7 @@ void TypeFeedbackOracle::KeyedPropertyReceiverTypes(
 
 
 void TypeFeedbackOracle::PropertyReceiverTypes(FeedbackVectorICSlot slot,
-                                               Handle<String> name,
+                                               Handle<Name> name,
                                                SmallMapList* receiver_types) {
   receiver_types->Clear();
   LoadICNexus nexus(feedback_vector_, slot);
@@ -363,8 +363,9 @@ void TypeFeedbackOracle::KeyedPropertyReceiverTypes(
 }
 
 
-void TypeFeedbackOracle::AssignmentReceiverTypes(
-    TypeFeedbackId id, Handle<String> name, SmallMapList* receiver_types) {
+void TypeFeedbackOracle::AssignmentReceiverTypes(TypeFeedbackId id,
+                                                 Handle<Name> name,
+                                                 SmallMapList* receiver_types) {
   receiver_types->Clear();
   Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC);
   CollectReceiverTypes(id, name, flags, receiver_types);
@@ -388,7 +389,7 @@ void TypeFeedbackOracle::CountReceiverTypes(TypeFeedbackId id,
 
 
 void TypeFeedbackOracle::CollectReceiverTypes(TypeFeedbackId ast_id,
-                                              Handle<String> name,
+                                              Handle<Name> name,
                                               Code::Flags flags,
                                               SmallMapList* types) {
   Handle<Object> object = GetInfo(ast_id);
@@ -401,7 +402,7 @@ void TypeFeedbackOracle::CollectReceiverTypes(TypeFeedbackId ast_id,
 
 
 template <class T>
-void TypeFeedbackOracle::CollectReceiverTypes(T* obj, Handle<String> name,
+void TypeFeedbackOracle::CollectReceiverTypes(T* obj, Handle<Name> name,
                                               Code::Flags flags,
                                               SmallMapList* types) {
   if (FLAG_collect_megamorphic_maps_from_stub_cache &&
index 65af76865e2b0cf7d0221d7d77c80f0c908cbc30..6866da2d1abb4eec433121777dec18cee63c859b 100644 (file)
@@ -42,9 +42,9 @@ class TypeFeedbackOracle: public ZoneObject {
                               IcCheckType* key_type);
   void GetLoadKeyType(TypeFeedbackId id, IcCheckType* key_type);
 
-  void PropertyReceiverTypes(TypeFeedbackId id, Handle<String> name,
+  void PropertyReceiverTypes(TypeFeedbackId id, Handle<Name> name,
                              SmallMapList* receiver_types);
-  void PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle<String> name,
+  void PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle<Name> name,
                              SmallMapList* receiver_types);
   void KeyedPropertyReceiverTypes(TypeFeedbackId id,
                                   SmallMapList* receiver_types,
@@ -53,8 +53,7 @@ class TypeFeedbackOracle: public ZoneObject {
   void KeyedPropertyReceiverTypes(FeedbackVectorICSlot slot,
                                   SmallMapList* receiver_types, bool* is_string,
                                   IcCheckType* key_type);
-  void AssignmentReceiverTypes(TypeFeedbackId id,
-                               Handle<String> name,
+  void AssignmentReceiverTypes(TypeFeedbackId id, Handle<Name> name,
                                SmallMapList* receiver_types);
   void KeyedAssignmentReceiverTypes(TypeFeedbackId id,
                                     SmallMapList* receiver_types,
@@ -104,12 +103,10 @@ class TypeFeedbackOracle: public ZoneObject {
   Isolate* isolate() const { return isolate_; }
 
  private:
-  void CollectReceiverTypes(TypeFeedbackId id,
-                            Handle<String> name,
-                            Code::Flags flags,
-                            SmallMapList* types);
+  void CollectReceiverTypes(TypeFeedbackId id, Handle<Name> name,
+                            Code::Flags flags, SmallMapList* types);
   template <class T>
-  void CollectReceiverTypes(T* obj, Handle<String> name, Code::Flags flags,
+  void CollectReceiverTypes(T* obj, Handle<Name> name, Code::Flags flags,
                             SmallMapList* types);
 
   // Returns true if there is at least one string map and if