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/disasm.h" | 7 #include "src/disasm.h" |
8 #include "src/disassembler.h" | 8 #include "src/disassembler.h" |
9 #include "src/jsregexp.h" | 9 #include "src/jsregexp.h" |
10 #include "src/macro-assembler.h" | 10 #include "src/macro-assembler.h" |
(...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
632 Address last_gc_pc = NULL; | 632 Address last_gc_pc = NULL; |
633 Isolate* isolate = GetIsolate(); | 633 Isolate* isolate = GetIsolate(); |
634 for (RelocIterator it(this); !it.done(); it.next()) { | 634 for (RelocIterator it(this); !it.done(); it.next()) { |
635 it.rinfo()->Verify(isolate); | 635 it.rinfo()->Verify(isolate); |
636 // Ensure that GC will not iterate twice over the same pointer. | 636 // Ensure that GC will not iterate twice over the same pointer. |
637 if (RelocInfo::IsGCRelocMode(it.rinfo()->rmode())) { | 637 if (RelocInfo::IsGCRelocMode(it.rinfo()->rmode())) { |
638 CHECK(it.rinfo()->pc() != last_gc_pc); | 638 CHECK(it.rinfo()->pc() != last_gc_pc); |
639 last_gc_pc = it.rinfo()->pc(); | 639 last_gc_pc = it.rinfo()->pc(); |
640 } | 640 } |
641 } | 641 } |
| 642 CHECK(raw_type_feedback_info()->IsUndefined() || |
| 643 raw_type_feedback_info()->IsSmi() == IsCodeStubOrIC()); |
642 } | 644 } |
643 | 645 |
644 | 646 |
645 void Code::VerifyEmbeddedObjectsDependency() { | 647 void Code::VerifyEmbeddedObjectsDependency() { |
646 if (!CanContainWeakObjects()) return; | 648 if (!CanContainWeakObjects()) return; |
647 DisallowHeapAllocation no_gc; | 649 DisallowHeapAllocation no_gc; |
648 Isolate* isolate = GetIsolate(); | 650 Isolate* isolate = GetIsolate(); |
649 HandleScope scope(isolate); | 651 HandleScope scope(isolate); |
650 int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT); | 652 int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT); |
651 for (RelocIterator it(this, mode_mask); !it.done(); it.next()) { | 653 for (RelocIterator it(this, mode_mask); !it.done(); it.next()) { |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1190 for (int i = 0; i < number_of_transitions(); ++i) { | 1192 for (int i = 0; i < number_of_transitions(); ++i) { |
1191 if (!CheckOneBackPointer(current_map, GetTarget(i))) return false; | 1193 if (!CheckOneBackPointer(current_map, GetTarget(i))) return false; |
1192 } | 1194 } |
1193 return true; | 1195 return true; |
1194 } | 1196 } |
1195 | 1197 |
1196 | 1198 |
1197 #endif // DEBUG | 1199 #endif // DEBUG |
1198 | 1200 |
1199 } } // namespace v8::internal | 1201 } } // namespace v8::internal |
OLD | NEW |