| Index: src/type-info.cc
|
| diff --git a/src/type-info.cc b/src/type-info.cc
|
| index cf3950f4f01b2af65111bb10c5e02b93a33bc796..a6bc0730805e741b24c2d0c0887b6a9fa7cc4272 100644
|
| --- a/src/type-info.cc
|
| +++ b/src/type-info.cc
|
| @@ -266,12 +266,14 @@ void TypeFeedbackOracle::PropertyReceiverTypes(TypeFeedbackId id,
|
| void TypeFeedbackOracle::KeyedPropertyReceiverTypes(
|
| TypeFeedbackId id, SmallMapList* receiver_types, bool* is_string) {
|
| receiver_types->Clear();
|
| - *is_string = false;
|
| - if (LoadIsBuiltin(id, Builtins::kKeyedLoadIC_String)) {
|
| - *is_string = true;
|
| - } else {
|
| - CollectReceiverTypes(id, receiver_types);
|
| + CollectReceiverTypes(id, receiver_types);
|
| +
|
| + // Are all the receiver maps string maps?
|
| + bool all_strings = receiver_types->length() > 0;
|
| + for (int i = 0; i < receiver_types->length(); i++) {
|
| + all_strings &= receiver_types->at(i)->IsStringMap();
|
| }
|
| + *is_string = all_strings;
|
| }
|
|
|
|
|
|
|