Index: src/ast.cc |
diff --git a/src/ast.cc b/src/ast.cc |
index e7f70c5010c2014ad7c196c23b63fffa8fa6b8b2..1cfa9a73c3b0618cf38673a9cc00f6c9c5ffe306 100644 |
--- a/src/ast.cc |
+++ b/src/ast.cc |
@@ -434,7 +434,7 @@ void Property::RecordTypeFeedback(TypeFeedbackOracle* oracle, |
zone); |
} else if (oracle->LoadIsMegamorphicWithTypeInfo(this)) { |
receiver_types_.Reserve(kMaxKeyedPolymorphism, zone); |
- oracle->CollectKeyedReceiverTypes(this->id(), &receiver_types_); |
+ oracle->CollectKeyedReceiverTypes(PropertyFeedbackId(), &receiver_types_); |
} |
} |
@@ -443,7 +443,8 @@ void Assignment::RecordTypeFeedback(TypeFeedbackOracle* oracle, |
Zone* zone) { |
Property* prop = target()->AsProperty(); |
ASSERT(prop != NULL); |
- is_monomorphic_ = oracle->StoreIsMonomorphicNormal(this); |
+ TypeFeedbackId id = AssignmentFeedbackId(); |
+ is_monomorphic_ = oracle->StoreIsMonomorphicNormal(id); |
receiver_types_.Clear(); |
if (prop->key()->IsPropertyName()) { |
Literal* lit_key = prop->key()->AsLiteral(); |
@@ -452,24 +453,26 @@ void Assignment::RecordTypeFeedback(TypeFeedbackOracle* oracle, |
oracle->StoreReceiverTypes(this, name, &receiver_types_); |
} else if (is_monomorphic_) { |
// Record receiver type for monomorphic keyed stores. |
- receiver_types_.Add(oracle->StoreMonomorphicReceiverType(this), zone); |
- } else if (oracle->StoreIsMegamorphicWithTypeInfo(this)) { |
+ receiver_types_.Add(oracle->StoreMonomorphicReceiverType(id), zone); |
+ } else if (oracle->StoreIsMegamorphicWithTypeInfo(id)) { |
receiver_types_.Reserve(kMaxKeyedPolymorphism, zone); |
- oracle->CollectKeyedReceiverTypes(this->id(), &receiver_types_); |
+ oracle->CollectKeyedReceiverTypes(id, &receiver_types_); |
} |
} |
void CountOperation::RecordTypeFeedback(TypeFeedbackOracle* oracle, |
Zone* zone) { |
- is_monomorphic_ = oracle->StoreIsMonomorphicNormal(this); |
+ TypeFeedbackId id = CountStoreFeedbackId(); |
+ is_monomorphic_ = oracle->StoreIsMonomorphicNormal(id); |
receiver_types_.Clear(); |
if (is_monomorphic_) { |
// Record receiver type for monomorphic keyed stores. |
- receiver_types_.Add(oracle->StoreMonomorphicReceiverType(this), zone); |
- } else if (oracle->StoreIsMegamorphicWithTypeInfo(this)) { |
+ receiver_types_.Add( |
+ oracle->StoreMonomorphicReceiverType(id), zone); |
+ } else if (oracle->StoreIsMegamorphicWithTypeInfo(id)) { |
receiver_types_.Reserve(kMaxKeyedPolymorphism, zone); |
- oracle->CollectKeyedReceiverTypes(this->id(), &receiver_types_); |
+ oracle->CollectKeyedReceiverTypes(id, &receiver_types_); |
} |
} |