Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Side by Side Diff: src/objects-debug.cc

Issue 1810483002: Introduce "optimized_out" oddball marker for compilers. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix debugger. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/objects.h ('k') | src/runtime/runtime-debug.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 601 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 CHECK(IsOddball()); 612 CHECK(IsOddball());
613 Heap* heap = GetHeap(); 613 Heap* heap = GetHeap();
614 VerifyHeapPointer(to_string()); 614 VerifyHeapPointer(to_string());
615 Object* number = to_number(); 615 Object* number = to_number();
616 if (number->IsHeapObject()) { 616 if (number->IsHeapObject()) {
617 CHECK(number == heap->nan_value()); 617 CHECK(number == heap->nan_value());
618 } else { 618 } else {
619 CHECK(number->IsSmi()); 619 CHECK(number->IsSmi());
620 int value = Smi::cast(number)->value(); 620 int value = Smi::cast(number)->value();
621 // Hidden oddballs have negative smis. 621 // Hidden oddballs have negative smis.
622 const int kLeastHiddenOddballNumber = -5; 622 const int kLeastHiddenOddballNumber = -6;
623 CHECK_LE(value, 1); 623 CHECK_LE(value, 1);
624 CHECK(value >= kLeastHiddenOddballNumber); 624 CHECK(value >= kLeastHiddenOddballNumber);
625 } 625 }
626 if (map() == heap->undefined_map()) { 626 if (map() == heap->undefined_map()) {
627 CHECK(this == heap->undefined_value()); 627 CHECK(this == heap->undefined_value());
628 } else if (map() == heap->the_hole_map()) { 628 } else if (map() == heap->the_hole_map()) {
629 CHECK(this == heap->the_hole_value()); 629 CHECK(this == heap->the_hole_value());
630 } else if (map() == heap->null_map()) { 630 } else if (map() == heap->null_map()) {
631 CHECK(this == heap->null_value()); 631 CHECK(this == heap->null_value());
632 } else if (map() == heap->boolean_map()) { 632 } else if (map() == heap->boolean_map()) {
633 CHECK(this == heap->true_value() || 633 CHECK(this == heap->true_value() ||
634 this == heap->false_value()); 634 this == heap->false_value());
635 } else if (map() == heap->uninitialized_map()) { 635 } else if (map() == heap->uninitialized_map()) {
636 CHECK(this == heap->uninitialized_value()); 636 CHECK(this == heap->uninitialized_value());
637 } else if (map() == heap->no_interceptor_result_sentinel_map()) { 637 } else if (map() == heap->no_interceptor_result_sentinel_map()) {
638 CHECK(this == heap->no_interceptor_result_sentinel()); 638 CHECK(this == heap->no_interceptor_result_sentinel());
639 } else if (map() == heap->arguments_marker_map()) { 639 } else if (map() == heap->arguments_marker_map()) {
640 CHECK(this == heap->arguments_marker()); 640 CHECK(this == heap->arguments_marker());
641 } else if (map() == heap->termination_exception_map()) { 641 } else if (map() == heap->termination_exception_map()) {
642 CHECK(this == heap->termination_exception()); 642 CHECK(this == heap->termination_exception());
643 } else if (map() == heap->exception_map()) { 643 } else if (map() == heap->exception_map()) {
644 CHECK(this == heap->exception()); 644 CHECK(this == heap->exception());
645 } else if (map() == heap->optimized_out_map()) {
646 CHECK(this == heap->optimized_out());
645 } else { 647 } else {
646 UNREACHABLE(); 648 UNREACHABLE();
647 } 649 }
648 } 650 }
649 651
650 652
651 void Cell::CellVerify() { 653 void Cell::CellVerify() {
652 CHECK(IsCell()); 654 CHECK(IsCell());
653 VerifyObjectField(kValueOffset); 655 VerifyObjectField(kValueOffset);
654 } 656 }
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after
1321 1323
1322 // Both are done at the same time. 1324 // Both are done at the same time.
1323 CHECK_EQ(new_it.done(), old_it.done()); 1325 CHECK_EQ(new_it.done(), old_it.done());
1324 } 1326 }
1325 1327
1326 1328
1327 #endif // DEBUG 1329 #endif // DEBUG
1328 1330
1329 } // namespace internal 1331 } // namespace internal
1330 } // namespace v8 1332 } // namespace v8
OLDNEW
« no previous file with comments | « src/objects.h ('k') | src/runtime/runtime-debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698