Index: src/typing.cc |
diff --git a/src/typing.cc b/src/typing.cc |
index 596ea2c612ca0cbe4daeee72f5e41d9e6f9cfe7a..c7bea40ac686c662529df81b2cee779473ca6d60 100644 |
--- a/src/typing.cc |
+++ b/src/typing.cc |
@@ -455,7 +455,6 @@ void AstTyper::VisitAssignment(Assignment* expr) { |
TypeFeedbackId id = expr->AssignmentFeedbackId(); |
expr->set_is_uninitialized(oracle()->StoreIsUninitialized(id)); |
if (!expr->IsUninitialized()) { |
- expr->set_is_pre_monomorphic(oracle()->StoreIsPreMonomorphic(id)); |
if (prop->key()->IsPropertyName()) { |
Literal* lit_key = prop->key()->AsLiteral(); |
ASSERT(lit_key != NULL && lit_key->value()->IsString()); |
@@ -467,7 +466,6 @@ void AstTyper::VisitAssignment(Assignment* expr) { |
id, expr->GetReceiverTypes(), &store_mode); |
expr->set_store_mode(store_mode); |
} |
- ASSERT(!expr->IsPreMonomorphic() || !expr->IsMonomorphic()); |
} |
} |
@@ -505,7 +503,6 @@ void AstTyper::VisitProperty(Property* expr) { |
TypeFeedbackId id = expr->PropertyFeedbackId(); |
expr->set_is_uninitialized(oracle()->LoadIsUninitialized(id)); |
if (!expr->IsUninitialized()) { |
- expr->set_is_pre_monomorphic(oracle()->LoadIsPreMonomorphic(id)); |
if (expr->key()->IsPropertyName()) { |
Literal* lit_key = expr->key()->AsLiteral(); |
ASSERT(lit_key != NULL && lit_key->value()->IsString()); |
@@ -520,7 +517,6 @@ void AstTyper::VisitProperty(Property* expr) { |
id, expr->GetReceiverTypes(), &is_string); |
expr->set_is_string_access(is_string); |
} |
- ASSERT(!expr->IsPreMonomorphic() || !expr->IsMonomorphic()); |
} |
RECURSE(Visit(expr->obj())); |
@@ -532,9 +528,12 @@ void AstTyper::VisitProperty(Property* expr) { |
void AstTyper::VisitCall(Call* expr) { |
// Collect type feedback. |
- expr->RecordTypeFeedback(oracle()); |
- |
RECURSE(Visit(expr->expression())); |
+ if (!expr->expression()->IsProperty() && |
+ oracle()->CallIsMonomorphic(expr->CallFeedbackId())) { |
+ expr->set_target(oracle()->GetCallTarget(expr->CallFeedbackId())); |
+ } |
+ |
ZoneList<Expression*>* args = expr->arguments(); |
for (int i = 0; i < args->length(); ++i) { |
Expression* arg = args->at(i); |