OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <iomanip> | 8 #include <iomanip> |
9 #include <sstream> | 9 #include <sstream> |
10 | 10 |
(...skipping 9961 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9972 Handle<AccessorPair> pair = Handle<AccessorPair>::cast(maybe_pair); | 9972 Handle<AccessorPair> pair = Handle<AccessorPair>::cast(maybe_pair); |
9973 if (pair->get(component) != *accessor) { | 9973 if (pair->get(component) != *accessor) { |
9974 return Map::Normalize(map, mode, "TransitionToDifferentAccessor"); | 9974 return Map::Normalize(map, mode, "TransitionToDifferentAccessor"); |
9975 } | 9975 } |
9976 | 9976 |
9977 return transition; | 9977 return transition; |
9978 } | 9978 } |
9979 | 9979 |
9980 Handle<AccessorPair> pair; | 9980 Handle<AccessorPair> pair; |
9981 DescriptorArray* old_descriptors = map->instance_descriptors(); | 9981 DescriptorArray* old_descriptors = map->instance_descriptors(); |
9982 int descriptor = old_descriptors->SearchWithCache(*name, *map); | 9982 int descriptor = old_descriptors->SearchWithCache(isolate, *name, *map); |
9983 if (descriptor != DescriptorArray::kNotFound) { | 9983 if (descriptor != DescriptorArray::kNotFound) { |
9984 if (descriptor != map->LastAdded()) { | 9984 if (descriptor != map->LastAdded()) { |
9985 return Map::Normalize(map, mode, "AccessorsOverwritingNonLast"); | 9985 return Map::Normalize(map, mode, "AccessorsOverwritingNonLast"); |
9986 } | 9986 } |
9987 PropertyDetails old_details = old_descriptors->GetDetails(descriptor); | 9987 PropertyDetails old_details = old_descriptors->GetDetails(descriptor); |
9988 if (old_details.type() != ACCESSOR_CONSTANT) { | 9988 if (old_details.type() != ACCESSOR_CONSTANT) { |
9989 return Map::Normalize(map, mode, "AccessorsOverwritingNonAccessors"); | 9989 return Map::Normalize(map, mode, "AccessorsOverwritingNonAccessors"); |
9990 } | 9990 } |
9991 | 9991 |
9992 if (old_details.attributes() != attributes) { | 9992 if (old_details.attributes() != attributes) { |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10053 | 10053 |
10054 Handle<Map> Map::CopyInsertDescriptor(Handle<Map> map, | 10054 Handle<Map> Map::CopyInsertDescriptor(Handle<Map> map, |
10055 Descriptor* descriptor, | 10055 Descriptor* descriptor, |
10056 TransitionFlag flag) { | 10056 TransitionFlag flag) { |
10057 Handle<DescriptorArray> old_descriptors(map->instance_descriptors()); | 10057 Handle<DescriptorArray> old_descriptors(map->instance_descriptors()); |
10058 | 10058 |
10059 // Ensure the key is unique. | 10059 // Ensure the key is unique. |
10060 descriptor->KeyToUniqueName(); | 10060 descriptor->KeyToUniqueName(); |
10061 | 10061 |
10062 // We replace the key if it is already present. | 10062 // We replace the key if it is already present. |
10063 int index = old_descriptors->SearchWithCache(*descriptor->GetKey(), *map); | 10063 int index = old_descriptors->SearchWithCache(map->GetIsolate(), |
| 10064 *descriptor->GetKey(), *map); |
10064 if (index != DescriptorArray::kNotFound) { | 10065 if (index != DescriptorArray::kNotFound) { |
10065 return CopyReplaceDescriptor(map, old_descriptors, descriptor, index, flag); | 10066 return CopyReplaceDescriptor(map, old_descriptors, descriptor, index, flag); |
10066 } | 10067 } |
10067 return CopyAddDescriptor(map, descriptor, flag); | 10068 return CopyAddDescriptor(map, descriptor, flag); |
10068 } | 10069 } |
10069 | 10070 |
10070 | 10071 |
10071 Handle<DescriptorArray> DescriptorArray::CopyUpTo( | 10072 Handle<DescriptorArray> DescriptorArray::CopyUpTo( |
10072 Handle<DescriptorArray> desc, | 10073 Handle<DescriptorArray> desc, |
10073 int enumeration_index, | 10074 int enumeration_index, |
(...skipping 9810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19884 if (cell->value() != *new_value) { | 19885 if (cell->value() != *new_value) { |
19885 cell->set_value(*new_value); | 19886 cell->set_value(*new_value); |
19886 Isolate* isolate = cell->GetIsolate(); | 19887 Isolate* isolate = cell->GetIsolate(); |
19887 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 19888 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
19888 isolate, DependentCode::kPropertyCellChangedGroup); | 19889 isolate, DependentCode::kPropertyCellChangedGroup); |
19889 } | 19890 } |
19890 } | 19891 } |
19891 | 19892 |
19892 } // namespace internal | 19893 } // namespace internal |
19893 } // namespace v8 | 19894 } // namespace v8 |
OLD | NEW |