| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 50e3b2124df60ddc29331f0d9d4feb8f753c6a54..f666b8a984594ad5de0796428c65a1f45eaf7a7a 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -5970,7 +5970,7 @@ bool HOptimizedGraphBuilder::PropertyAccessInfo::IsCompatible(
|
|
|
| bool HOptimizedGraphBuilder::PropertyAccessInfo::LookupDescriptor() {
|
| if (!map_->IsJSObjectMap()) return true;
|
| - lookup_.LookupDescriptor(*map_, *name_);
|
| + LookupDescriptor(*map_, *name_);
|
| return LoadResult(map_);
|
| }
|
|
|
| @@ -6059,13 +6059,13 @@ bool HOptimizedGraphBuilder::PropertyAccessInfo::LookupInPrototypes() {
|
| }
|
| map = Handle<Map>(holder_->map());
|
| if (!CanInlinePropertyAccess(map)) {
|
| - lookup_.NotFound();
|
| + NotFound();
|
| return false;
|
| }
|
| - lookup_.LookupDescriptor(*map, *name_);
|
| + LookupDescriptor(*map, *name_);
|
| if (IsFound()) return LoadResult(map);
|
| }
|
| - lookup_.NotFound();
|
| + NotFound();
|
| return true;
|
| }
|
|
|
| @@ -6083,8 +6083,8 @@ bool HOptimizedGraphBuilder::PropertyAccessInfo::CanAccessMonomorphic() {
|
| if (IsLoad()) return true;
|
|
|
| if (IsAccessorConstant()) return true;
|
| - lookup_.LookupTransition(*map_, *name_, NONE);
|
| - if (lookup_.IsTransitionToData() && map_->unused_property_fields() > 0) {
|
| + LookupTransition(*map_, *name_, NONE);
|
| + if (IsTransitionToData() && map_->unused_property_fields() > 0) {
|
| // Construct the object field access.
|
| int descriptor = transition()->LastAdded();
|
| int index =
|
| @@ -8174,11 +8174,12 @@ bool HOptimizedGraphBuilder::TryInlineBuiltinFunctionCall(Call* expr) {
|
| bool HOptimizedGraphBuilder::IsReadOnlyLengthDescriptor(
|
| Handle<Map> jsarray_map) {
|
| DCHECK(!jsarray_map->is_dictionary_map());
|
| - LookupResult lookup;
|
| Isolate* isolate = jsarray_map->GetIsolate();
|
| Handle<Name> length_string = isolate->factory()->length_string();
|
| - lookup.LookupDescriptor(*jsarray_map, *length_string);
|
| - return lookup.IsReadOnly();
|
| + DescriptorArray* descriptors = jsarray_map->instance_descriptors();
|
| + int number = descriptors->SearchWithCache(*length_string, *jsarray_map);
|
| + DCHECK_NE(DescriptorArray::kNotFound, number);
|
| + return descriptors->GetDetails(number).IsReadOnly();
|
| }
|
|
|
|
|
|
|