| 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);
|
|
|