| Index: src/ast.cc
|
| ===================================================================
|
| --- src/ast.cc (revision 7180)
|
| +++ src/ast.cc (working copy)
|
| @@ -540,8 +540,13 @@
|
| ZoneMapList* types = oracle->LoadReceiverTypes(this, name);
|
| receiver_types_ = types;
|
| }
|
| + } else if (oracle->LoadIsBuiltin(this, Builtins::KeyedLoadIC_String)) {
|
| + is_string_access_ = true;
|
| } else if (is_monomorphic_) {
|
| monomorphic_receiver_type_ = oracle->LoadMonomorphicReceiverType(this);
|
| + if (monomorphic_receiver_type_->has_external_array_elements()) {
|
| + SetExternalArrayType(oracle->GetKeyedLoadExternalArrayType(this));
|
| + }
|
| }
|
| }
|
|
|
| @@ -559,6 +564,9 @@
|
| } else if (is_monomorphic_) {
|
| // Record receiver type for monomorphic keyed loads.
|
| monomorphic_receiver_type_ = oracle->StoreMonomorphicReceiverType(this);
|
| + if (monomorphic_receiver_type_->has_external_array_elements()) {
|
| + SetExternalArrayType(oracle->GetKeyedStoreExternalArrayType(this));
|
| + }
|
| }
|
| }
|
|
|
| @@ -1062,6 +1070,8 @@
|
| : label_(label),
|
| statements_(statements),
|
| position_(pos),
|
| - compare_type_(NONE) {}
|
| + compare_type_(NONE),
|
| + entry_id_(AstNode::GetNextId()) {
|
| +}
|
|
|
| } } // namespace v8::internal
|
|
|