| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 "src/bootstrapper.h" | 7 #include "src/bootstrapper.h" | 
| 8 #include "src/disasm.h" | 8 #include "src/disasm.h" | 
| 9 #include "src/disassembler.h" | 9 #include "src/disassembler.h" | 
| 10 #include "src/field-type.h" | 10 #include "src/field-type.h" | 
| (...skipping 767 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 778   if (!length()->IsNumber()) return; | 778   if (!length()->IsNumber()) return; | 
| 779   // Verify that the length and the elements backing store are in sync. | 779   // Verify that the length and the elements backing store are in sync. | 
| 780   if (length()->IsSmi() && HasFastElements()) { | 780   if (length()->IsSmi() && HasFastElements()) { | 
| 781     int size = Smi::cast(length())->value(); | 781     int size = Smi::cast(length())->value(); | 
| 782     // Holey / Packed backing stores might have slack or might have not been | 782     // Holey / Packed backing stores might have slack or might have not been | 
| 783     // properly initialized yet. | 783     // properly initialized yet. | 
| 784     CHECK(size <= elements()->length() || | 784     CHECK(size <= elements()->length() || | 
| 785           elements() == isolate->heap()->empty_fixed_array()); | 785           elements() == isolate->heap()->empty_fixed_array()); | 
| 786   } else { | 786   } else { | 
| 787     CHECK(HasDictionaryElements()); | 787     CHECK(HasDictionaryElements()); | 
| 788     uint32_t size; | 788     uint32_t array_length; | 
| 789     CHECK(length()->ToArrayLength(&size)); | 789     CHECK(length()->ToArrayLength(&array_length)); | 
| 790     if (size != 0) { | 790     if (array_length == 0xffffffff) { | 
|  | 791       CHECK(length()->ToArrayLength(&array_length)); | 
|  | 792     } | 
|  | 793     if (array_length != 0) { | 
| 791       SeededNumberDictionary* dict = SeededNumberDictionary::cast(elements()); | 794       SeededNumberDictionary* dict = SeededNumberDictionary::cast(elements()); | 
| 792       // The dictionary can never have more elements than the array length. | 795       // The dictionary can never have more elements than the array length + 1. | 
| 793       CHECK(static_cast<uint32_t>(dict->NumberOfElements()) <= size); | 796       // If the backing store grows the verification might be triggered with | 
|  | 797       // the old length in place. | 
|  | 798       uint32_t nof_elements = static_cast<uint32_t>(dict->NumberOfElements()); | 
|  | 799       if (nof_elements != 0) nof_elements--; | 
|  | 800       CHECK_LE(nof_elements, array_length); | 
| 794     } | 801     } | 
| 795   } | 802   } | 
| 796 } | 803 } | 
| 797 | 804 | 
| 798 | 805 | 
| 799 void JSSet::JSSetVerify() { | 806 void JSSet::JSSetVerify() { | 
| 800   CHECK(IsJSSet()); | 807   CHECK(IsJSSet()); | 
| 801   JSObjectVerify(); | 808   JSObjectVerify(); | 
| 802   VerifyHeapPointer(table()); | 809   VerifyHeapPointer(table()); | 
| 803   CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(GetIsolate())); | 810   CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(GetIsolate())); | 
| (...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1500 | 1507 | 
| 1501   // Both are done at the same time. | 1508   // Both are done at the same time. | 
| 1502   CHECK_EQ(new_it.done(), old_it.done()); | 1509   CHECK_EQ(new_it.done(), old_it.done()); | 
| 1503 } | 1510 } | 
| 1504 | 1511 | 
| 1505 | 1512 | 
| 1506 #endif  // DEBUG | 1513 #endif  // DEBUG | 
| 1507 | 1514 | 
| 1508 }  // namespace internal | 1515 }  // namespace internal | 
| 1509 }  // namespace v8 | 1516 }  // namespace v8 | 
| OLD | NEW | 
|---|