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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/disassembler.h" | 7 #include "src/disassembler.h" |
8 #include "src/disasm.h" | 8 #include "src/disasm.h" |
9 #include "src/jsregexp.h" | 9 #include "src/jsregexp.h" |
10 #include "src/macro-assembler.h" | 10 #include "src/macro-assembler.h" |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
371 (BitCast<uint64_t>(value) == | 371 (BitCast<uint64_t>(value) == |
372 BitCast<uint64_t>(canonical_not_the_hole_nan_as_double())) || | 372 BitCast<uint64_t>(canonical_not_the_hole_nan_as_double())) || |
373 ((BitCast<uint64_t>(value) & Double::kSignMask) != 0)); | 373 ((BitCast<uint64_t>(value) & Double::kSignMask) != 0)); |
374 } | 374 } |
375 } | 375 } |
376 } | 376 } |
377 | 377 |
378 | 378 |
379 void ConstantPoolArray::ConstantPoolArrayVerify() { | 379 void ConstantPoolArray::ConstantPoolArrayVerify() { |
380 CHECK(IsConstantPoolArray()); | 380 CHECK(IsConstantPoolArray()); |
381 for (int i = 0; i < count_of_code_ptr_entries(); i++) { | 381 ConstantPoolArray::Iterator code_iter(this, ConstantPoolArray::CODE_PTR); |
382 Address code_entry = get_code_ptr_entry(first_code_ptr_index() + i); | 382 while (!code_iter.is_finished()) { |
| 383 Address code_entry = get_code_ptr_entry(code_iter.next_index()); |
383 VerifyPointer(Code::GetCodeFromTargetAddress(code_entry)); | 384 VerifyPointer(Code::GetCodeFromTargetAddress(code_entry)); |
384 } | 385 } |
385 for (int i = 0; i < count_of_heap_ptr_entries(); i++) { | 386 ConstantPoolArray::Iterator heap_iter(this, ConstantPoolArray::HEAP_PTR); |
386 VerifyObjectField(OffsetOfElementAt(first_heap_ptr_index() + i)); | 387 while (!heap_iter.is_finished()) { |
| 388 VerifyObjectField(OffsetOfElementAt(heap_iter.next_index())); |
387 } | 389 } |
388 } | 390 } |
389 | 391 |
390 | 392 |
391 void JSGeneratorObject::JSGeneratorObjectVerify() { | 393 void JSGeneratorObject::JSGeneratorObjectVerify() { |
392 // In an expression like "new g()", there can be a point where a generator | 394 // In an expression like "new g()", there can be a point where a generator |
393 // object is allocated but its fields are all undefined, as it hasn't yet been | 395 // object is allocated but its fields are all undefined, as it hasn't yet been |
394 // initialized by the generator. Hence these weak checks. | 396 // initialized by the generator. Hence these weak checks. |
395 VerifyObjectField(kFunctionOffset); | 397 VerifyObjectField(kFunctionOffset); |
396 VerifyObjectField(kContextOffset); | 398 VerifyObjectField(kContextOffset); |
(...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1184 for (int i = 0; i < number_of_transitions(); ++i) { | 1186 for (int i = 0; i < number_of_transitions(); ++i) { |
1185 if (!CheckOneBackPointer(current_map, GetTarget(i))) return false; | 1187 if (!CheckOneBackPointer(current_map, GetTarget(i))) return false; |
1186 } | 1188 } |
1187 return true; | 1189 return true; |
1188 } | 1190 } |
1189 | 1191 |
1190 | 1192 |
1191 #endif // DEBUG | 1193 #endif // DEBUG |
1192 | 1194 |
1193 } } // namespace v8::internal | 1195 } } // namespace v8::internal |
OLD | NEW |