Index: src/ast.cc |
diff --git a/src/ast.cc b/src/ast.cc |
index 712bfd1b9d4569ae901ed6f19eea8fa73f9b9330..a6984ddb28ad6c037372435312fbd63203b9eec6 100644 |
--- a/src/ast.cc |
+++ b/src/ast.cc |
@@ -128,7 +128,8 @@ Assignment::Assignment(Isolate* isolate, |
pos_(pos), |
binary_operation_(NULL), |
assignment_id_(GetNextId(isolate)), |
- is_monomorphic_(false) { } |
+ is_monomorphic_(false), |
+ store_mode_(STANDARD_STORE) { } |
Token::Value Assignment::binary_op() const { |
@@ -455,9 +456,11 @@ void Assignment::RecordTypeFeedback(TypeFeedbackOracle* oracle, |
} else if (is_monomorphic_) { |
// Record receiver type for monomorphic keyed stores. |
receiver_types_.Add(oracle->StoreMonomorphicReceiverType(id), zone); |
+ store_mode_ = oracle->GetStoreMode(id); |
} else if (oracle->StoreIsPolymorphic(id)) { |
receiver_types_.Reserve(kMaxKeyedPolymorphism, zone); |
oracle->CollectKeyedReceiverTypes(id, &receiver_types_); |
+ store_mode_ = oracle->GetStoreMode(id); |
} |
} |
@@ -475,6 +478,7 @@ void CountOperation::RecordTypeFeedback(TypeFeedbackOracle* oracle, |
receiver_types_.Reserve(kMaxKeyedPolymorphism, zone); |
oracle->CollectKeyedReceiverTypes(id, &receiver_types_); |
} |
+ store_mode_ = oracle->GetStoreMode(id); |
} |