| 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 |