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); |
{ |