| 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 8422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8433 Handle<FixedArray> array, int length) { | 8433 Handle<FixedArray> array, int length) { |
| 8434 DCHECK_LE(length, array->length()); | 8434 DCHECK_LE(length, array->length()); |
| 8435 if (array->length() == length) return array; | 8435 if (array->length() == length) return array; |
| 8436 return array->GetIsolate()->factory()->CopyFixedArrayUpTo(array, length); | 8436 return array->GetIsolate()->factory()->CopyFixedArrayUpTo(array, length); |
| 8437 } | 8437 } |
| 8438 | 8438 |
| 8439 bool Map::OnlyHasSimpleProperties() { | 8439 bool Map::OnlyHasSimpleProperties() { |
| 8440 // Wrapped string elements aren't explicitly stored in the elements backing | 8440 // Wrapped string elements aren't explicitly stored in the elements backing |
| 8441 // store, but are loaded indirectly from the underlying string. | 8441 // store, but are loaded indirectly from the underlying string. |
| 8442 return !IsStringWrapperElementsKind(elements_kind()) && | 8442 return !IsStringWrapperElementsKind(elements_kind()) && |
| 8443 !is_access_check_needed() && !has_named_interceptor() && | 8443 instance_type() > LAST_SPECIAL_RECEIVER_TYPE && |
| 8444 !has_indexed_interceptor() && !has_hidden_prototype() && | 8444 !has_hidden_prototype() && !is_dictionary_map(); |
| 8445 !is_dictionary_map(); | |
| 8446 } | 8445 } |
| 8447 | 8446 |
| 8448 namespace { | 8447 namespace { |
| 8449 | 8448 |
| 8450 Handle<FixedArray> GetFastEnumPropertyKeys(Isolate* isolate, | 8449 Handle<FixedArray> GetFastEnumPropertyKeys(Isolate* isolate, |
| 8451 Handle<JSObject> object) { | 8450 Handle<JSObject> object) { |
| 8452 Handle<Map> map(object->map()); | 8451 Handle<Map> map(object->map()); |
| 8453 bool cache_enum_length = map->OnlyHasSimpleProperties(); | 8452 bool cache_enum_length = map->OnlyHasSimpleProperties(); |
| 8454 | 8453 |
| 8455 Handle<DescriptorArray> descs = | 8454 Handle<DescriptorArray> descs = |
| (...skipping 11402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 19858 if (cell->value() != *new_value) { | 19857 if (cell->value() != *new_value) { |
| 19859 cell->set_value(*new_value); | 19858 cell->set_value(*new_value); |
| 19860 Isolate* isolate = cell->GetIsolate(); | 19859 Isolate* isolate = cell->GetIsolate(); |
| 19861 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 19860 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
| 19862 isolate, DependentCode::kPropertyCellChangedGroup); | 19861 isolate, DependentCode::kPropertyCellChangedGroup); |
| 19863 } | 19862 } |
| 19864 } | 19863 } |
| 19865 | 19864 |
| 19866 } // namespace internal | 19865 } // namespace internal |
| 19867 } // namespace v8 | 19866 } // namespace v8 |
| OLD | NEW |