Index: src/typing.cc |
diff --git a/src/typing.cc b/src/typing.cc |
index a94cf623ed69201f78ca0e2caa4ca7088dc2ccef..1cfaf64f64a403e4a44b035c889c091625ac0592 100644 |
--- a/src/typing.cc |
+++ b/src/typing.cc |
@@ -444,9 +444,11 @@ void AstTyper::VisitAssignment(Assignment* expr) { |
oracle()->AssignmentReceiverTypes(id, name, expr->GetReceiverTypes()); |
} else { |
KeyedAccessStoreMode store_mode; |
- oracle()->KeyedAssignmentReceiverTypes( |
- id, expr->GetReceiverTypes(), &store_mode); |
+ IcCheckType key_type; |
+ oracle()->KeyedAssignmentReceiverTypes(id, expr->GetReceiverTypes(), |
+ &store_mode, &key_type); |
expr->set_store_mode(store_mode); |
+ expr->set_key_type(key_type); |
} |
} |
} |
@@ -587,7 +589,11 @@ void AstTyper::VisitUnaryOperation(UnaryOperation* expr) { |
void AstTyper::VisitCountOperation(CountOperation* expr) { |
// Collect type feedback. |
TypeFeedbackId store_id = expr->CountStoreFeedbackId(); |
- expr->set_store_mode(oracle()->GetStoreMode(store_id)); |
+ KeyedAccessStoreMode store_mode; |
+ IcCheckType key_type; |
+ oracle()->GetStoreModeAndKeyType(store_id, &store_mode, &key_type); |
+ expr->set_store_mode(store_mode); |
+ expr->set_key_type(key_type); |
oracle()->CountReceiverTypes(store_id, expr->GetReceiverTypes()); |
expr->set_type(oracle()->CountType(expr->CountBinOpFeedbackId())); |
// TODO(rossberg): merge the count type with the generic expression type. |