| Index: src/ast.cc
|
| diff --git a/src/ast.cc b/src/ast.cc
|
| index 9deb71d0afeb9667a586c0600756d01be9db983c..adf0fb8703dc68800cf8b34fbf1624d71a70383f 100644
|
| --- a/src/ast.cc
|
| +++ b/src/ast.cc
|
| @@ -776,7 +776,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());
|
| @@ -803,6 +803,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);
|
| + }
|
| }
|
| }
|
|
|
|
|