| Index: src/ast.cc
|
| diff --git a/src/ast.cc b/src/ast.cc
|
| index 5f085d358812bde87e35eb8411ff9d0f76d06979..25893b8683bbe7d747f5c3ddcf65fced47ec4651 100644
|
| --- a/src/ast.cc
|
| +++ b/src/ast.cc
|
| @@ -638,7 +638,7 @@ void Call::RecordTypeFeedback(TypeFeedbackOracle* oracle,
|
| if (property == NULL) {
|
| // Function call. Specialize for monomorphic calls.
|
| if (is_monomorphic_) target_ = oracle->GetCallTarget(this);
|
| - } else {
|
| + } else if (property->key()->IsPropertyName()) {
|
| // Method call. Specialize for the receiver types seen at runtime.
|
| Literal* key = property->key()->AsLiteral();
|
| ASSERT(key != NULL && key->value()->IsString());
|
| @@ -665,6 +665,10 @@ void Call::RecordTypeFeedback(TypeFeedbackOracle* oracle,
|
| Handle<Map> map = receiver_types_.first();
|
| is_monomorphic_ = ComputeTarget(map, name);
|
| }
|
| + } else {
|
| + if (is_monomorphic_) {
|
| + keyed_array_call_is_holey_ = oracle->KeyedArrayCallIsHoley(this);
|
| + }
|
| }
|
| }
|
|
|
|
|