| Index: src/ic/accessor-assembler.cc
|
| diff --git a/src/ic/accessor-assembler.cc b/src/ic/accessor-assembler.cc
|
| index 209727d5808f3bdeb793df9debe090aedf1fa0f2..538c00fbfae6c4d3119687fffe55a80fee621ecc 100644
|
| --- a/src/ic/accessor-assembler.cc
|
| +++ b/src/ic/accessor-assembler.cc
|
| @@ -1169,21 +1169,13 @@ void AccessorAssembler::GenericPropertyLoad(Node* receiver, Node* receiver_map,
|
|
|
| // Try looking up the property on the receiver; if unsuccessful, look
|
| // for a handler in the stub cache.
|
| - Comment("DescriptorArray lookup");
|
| -
|
| - // Skip linear search if there are too many descriptors.
|
| - // TODO(jkummerow): Consider implementing binary search.
|
| - // See also TryLookupProperty() which has the same limitation.
|
| - const int32_t kMaxLinear = 210;
|
| - Label stub_cache(this);
|
| Node* bitfield3 = LoadMapBitField3(receiver_map);
|
| - Node* nof = DecodeWordFromWord32<Map::NumberOfOwnDescriptorsBits>(bitfield3);
|
| - GotoIf(UintPtrLessThan(IntPtrConstant(kMaxLinear), nof), &stub_cache);
|
| Node* descriptors = LoadMapDescriptors(receiver_map);
|
| +
|
| + Label if_descriptor_found(this), stub_cache(this);
|
| Variable var_name_index(this, MachineType::PointerRepresentation());
|
| - Label if_descriptor_found(this);
|
| - DescriptorLookupLinear(key, descriptors, nof, &if_descriptor_found,
|
| - &var_name_index, &stub_cache);
|
| + DescriptorLookup(key, descriptors, bitfield3, &if_descriptor_found,
|
| + &var_name_index, &stub_cache);
|
|
|
| Bind(&if_descriptor_found);
|
| {
|
|
|