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 12308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12319 void JSObject::ValidateElements(Handle<JSObject> object) { | 12319 void JSObject::ValidateElements(Handle<JSObject> object) { |
12320 #ifdef ENABLE_SLOW_DCHECKS | 12320 #ifdef ENABLE_SLOW_DCHECKS |
12321 if (FLAG_enable_slow_asserts) { | 12321 if (FLAG_enable_slow_asserts) { |
12322 ElementsAccessor* accessor = object->GetElementsAccessor(); | 12322 ElementsAccessor* accessor = object->GetElementsAccessor(); |
12323 accessor->Validate(object); | 12323 accessor->Validate(object); |
12324 } | 12324 } |
12325 #endif | 12325 #endif |
12326 } | 12326 } |
12327 | 12327 |
12328 | 12328 |
12329 // static | |
12330 MaybeHandle<Object> JSReceiver::SetElement(Handle<JSReceiver> object, | |
12331 uint32_t index, Handle<Object> value, | |
12332 LanguageMode language_mode) { | |
12333 Isolate* isolate = object->GetIsolate(); | |
12334 LookupIterator it(isolate, object, index); | |
12335 return SetProperty(&it, value, language_mode, MAY_BE_STORE_FROM_KEYED); | |
12336 } | |
12337 | |
12338 | |
12339 static bool ShouldConvertToSlowElements(JSObject* object, uint32_t capacity, | 12329 static bool ShouldConvertToSlowElements(JSObject* object, uint32_t capacity, |
12340 uint32_t index, | 12330 uint32_t index, |
12341 uint32_t* new_capacity) { | 12331 uint32_t* new_capacity) { |
12342 STATIC_ASSERT(JSObject::kMaxUncheckedOldFastElementsLength <= | 12332 STATIC_ASSERT(JSObject::kMaxUncheckedOldFastElementsLength <= |
12343 JSObject::kMaxUncheckedFastElementsLength); | 12333 JSObject::kMaxUncheckedFastElementsLength); |
12344 if (index < capacity) { | 12334 if (index < capacity) { |
12345 *new_capacity = capacity; | 12335 *new_capacity = capacity; |
12346 return false; | 12336 return false; |
12347 } | 12337 } |
12348 if (index - capacity >= JSObject::kMaxGap) return true; | 12338 if (index - capacity >= JSObject::kMaxGap) return true; |
(...skipping 3777 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
16126 Handle<Object> new_value) { | 16116 Handle<Object> new_value) { |
16127 if (cell->value() != *new_value) { | 16117 if (cell->value() != *new_value) { |
16128 cell->set_value(*new_value); | 16118 cell->set_value(*new_value); |
16129 Isolate* isolate = cell->GetIsolate(); | 16119 Isolate* isolate = cell->GetIsolate(); |
16130 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 16120 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
16131 isolate, DependentCode::kPropertyCellChangedGroup); | 16121 isolate, DependentCode::kPropertyCellChangedGroup); |
16132 } | 16122 } |
16133 } | 16123 } |
16134 } // namespace internal | 16124 } // namespace internal |
16135 } // namespace v8 | 16125 } // namespace v8 |
OLD | NEW |