| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 <iomanip> | 5 #include <iomanip> |
| 6 #include <sstream> | 6 #include <sstream> |
| 7 | 7 |
| 8 #include "src/v8.h" | 8 #include "src/v8.h" |
| 9 | 9 |
| 10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
| (...skipping 11768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11779 : JSReceiver::GetDataProperty(&it); | 11779 : JSReceiver::GetDataProperty(&it); |
| 11780 old_values->Add(value); | 11780 old_values->Add(value); |
| 11781 indices->Add(index); | 11781 indices->Add(index); |
| 11782 return true; | 11782 return true; |
| 11783 } | 11783 } |
| 11784 | 11784 |
| 11785 | 11785 |
| 11786 void JSArray::SetLength(Handle<JSArray> array, uint32_t new_length) { | 11786 void JSArray::SetLength(Handle<JSArray> array, uint32_t new_length) { |
| 11787 // We should never end in here with a pixel or external array. | 11787 // We should never end in here with a pixel or external array. |
| 11788 DCHECK(array->AllowsSetLength()); | 11788 DCHECK(array->AllowsSetLength()); |
| 11789 if (JSArray::SetLengthWouldNormalize(array->GetHeap(), new_length)) { | 11789 if (array->SetLengthWouldNormalize(new_length)) { |
| 11790 JSObject::NormalizeElements(array); | 11790 JSObject::NormalizeElements(array); |
| 11791 } | 11791 } |
| 11792 array->GetElementsAccessor()->SetLength(array, new_length); | 11792 array->GetElementsAccessor()->SetLength(array, new_length); |
| 11793 } | 11793 } |
| 11794 | 11794 |
| 11795 | 11795 |
| 11796 MaybeHandle<Object> JSArray::ObservableSetLength(Handle<JSArray> array, | 11796 MaybeHandle<Object> JSArray::ObservableSetLength(Handle<JSArray> array, |
| 11797 uint32_t new_length) { | 11797 uint32_t new_length) { |
| 11798 if (!array->map()->is_observed()) { | 11798 if (!array->map()->is_observed()) { |
| 11799 SetLength(array, new_length); | 11799 SetLength(array, new_length); |
| (...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12512 RETURN_ON_EXCEPTION( | 12512 RETURN_ON_EXCEPTION( |
| 12513 isolate, EnqueueChangeRecord(object, "add", name, | 12513 isolate, EnqueueChangeRecord(object, "add", name, |
| 12514 isolate->factory()->the_hole_value()), | 12514 isolate->factory()->the_hole_value()), |
| 12515 Object); | 12515 Object); |
| 12516 } | 12516 } |
| 12517 | 12517 |
| 12518 return value; | 12518 return value; |
| 12519 } | 12519 } |
| 12520 | 12520 |
| 12521 | 12521 |
| 12522 bool JSArray::SetLengthWouldNormalize(uint32_t new_length) { |
| 12523 if (!HasFastElements()) return false; |
| 12524 uint32_t capacity = static_cast<uint32_t>(elements()->length()); |
| 12525 uint32_t new_capacity; |
| 12526 return JSArray::SetLengthWouldNormalize(GetHeap(), new_length) && |
| 12527 ShouldConvertToSlowElements(this, capacity, new_length - 1, |
| 12528 &new_capacity); |
| 12529 } |
| 12530 |
| 12531 |
| 12522 const double AllocationSite::kPretenureRatio = 0.85; | 12532 const double AllocationSite::kPretenureRatio = 0.85; |
| 12523 | 12533 |
| 12524 | 12534 |
| 12525 void AllocationSite::ResetPretenureDecision() { | 12535 void AllocationSite::ResetPretenureDecision() { |
| 12526 set_pretenure_decision(kUndecided); | 12536 set_pretenure_decision(kUndecided); |
| 12527 set_memento_found_count(0); | 12537 set_memento_found_count(0); |
| 12528 set_memento_create_count(0); | 12538 set_memento_create_count(0); |
| 12529 } | 12539 } |
| 12530 | 12540 |
| 12531 | 12541 |
| (...skipping 3577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16109 Handle<Object> new_value) { | 16119 Handle<Object> new_value) { |
| 16110 if (cell->value() != *new_value) { | 16120 if (cell->value() != *new_value) { |
| 16111 cell->set_value(*new_value); | 16121 cell->set_value(*new_value); |
| 16112 Isolate* isolate = cell->GetIsolate(); | 16122 Isolate* isolate = cell->GetIsolate(); |
| 16113 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 16123 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
| 16114 isolate, DependentCode::kPropertyCellChangedGroup); | 16124 isolate, DependentCode::kPropertyCellChangedGroup); |
| 16115 } | 16125 } |
| 16116 } | 16126 } |
| 16117 } // namespace internal | 16127 } // namespace internal |
| 16118 } // namespace v8 | 16128 } // namespace v8 |
| OLD | NEW |