| 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 <memory> | 9 #include <memory> | 
| 10 #include <sstream> | 10 #include <sstream> | 
| (...skipping 15481 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 15492 | 15492 | 
| 15493   ElementsKind to = value->OptimalElementsKind(); | 15493   ElementsKind to = value->OptimalElementsKind(); | 
| 15494   if (IsHoleyElementsKind(kind) || !object->IsJSArray() || index > old_length) { | 15494   if (IsHoleyElementsKind(kind) || !object->IsJSArray() || index > old_length) { | 
| 15495     to = GetHoleyElementsKind(to); | 15495     to = GetHoleyElementsKind(to); | 
| 15496     kind = GetHoleyElementsKind(kind); | 15496     kind = GetHoleyElementsKind(kind); | 
| 15497   } | 15497   } | 
| 15498   to = GetMoreGeneralElementsKind(kind, to); | 15498   to = GetMoreGeneralElementsKind(kind, to); | 
| 15499   ElementsAccessor* accessor = ElementsAccessor::ForKind(to); | 15499   ElementsAccessor* accessor = ElementsAccessor::ForKind(to); | 
| 15500   accessor->Add(object, index, value, attributes, new_capacity); | 15500   accessor->Add(object, index, value, attributes, new_capacity); | 
| 15501 | 15501 | 
| 15502   uint32_t new_length = old_length; |  | 
| 15503   Handle<Object> new_length_handle; |  | 
| 15504   if (object->IsJSArray() && index >= old_length) { | 15502   if (object->IsJSArray() && index >= old_length) { | 
| 15505     new_length = index + 1; | 15503     Handle<Object> new_length = | 
| 15506     new_length_handle = isolate->factory()->NewNumberFromUint(new_length); | 15504         isolate->factory()->NewNumberFromUint(index + 1); | 
| 15507     JSArray::cast(*object)->set_length(*new_length_handle); | 15505     JSArray::cast(*object)->set_length(*new_length); | 
| 15508   } | 15506   } | 
| 15509 | 15507 | 
| 15510   return Just(true); | 15508   return Just(true); | 
| 15511 } | 15509 } | 
| 15512 | 15510 | 
| 15513 | 15511 | 
| 15514 bool JSArray::SetLengthWouldNormalize(uint32_t new_length) { | 15512 bool JSArray::SetLengthWouldNormalize(uint32_t new_length) { | 
| 15515   if (!HasFastElements()) return false; | 15513   if (!HasFastElements()) return false; | 
| 15516   uint32_t capacity = static_cast<uint32_t>(elements()->length()); | 15514   uint32_t capacity = static_cast<uint32_t>(elements()->length()); | 
| 15517   uint32_t new_capacity; | 15515   uint32_t new_capacity; | 
| (...skipping 4507 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 20025       // depend on this. | 20023       // depend on this. | 
| 20026       return DICTIONARY_ELEMENTS; | 20024       return DICTIONARY_ELEMENTS; | 
| 20027     } | 20025     } | 
| 20028     DCHECK_LE(kind, LAST_ELEMENTS_KIND); | 20026     DCHECK_LE(kind, LAST_ELEMENTS_KIND); | 
| 20029     return kind; | 20027     return kind; | 
| 20030   } | 20028   } | 
| 20031 } | 20029 } | 
| 20032 | 20030 | 
| 20033 }  // namespace internal | 20031 }  // namespace internal | 
| 20034 }  // namespace v8 | 20032 }  // namespace v8 | 
| OLD | NEW | 
|---|