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

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

Issue 2537093002: Check some more invariants on SFIs. (Closed)
Patch Set: Created 4 years 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/ast/scopeinfo.cc ('k') | no next file » | 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 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 CHECK(code()->IsCode()); 597 CHECK(code()->IsCode());
598 CHECK(next_function_link() == NULL || 598 CHECK(next_function_link() == NULL ||
599 next_function_link()->IsUndefined(GetIsolate()) || 599 next_function_link()->IsUndefined(GetIsolate()) ||
600 next_function_link()->IsJSFunction()); 600 next_function_link()->IsJSFunction());
601 CHECK(map()->is_callable()); 601 CHECK(map()->is_callable());
602 } 602 }
603 603
604 604
605 void SharedFunctionInfo::SharedFunctionInfoVerify() { 605 void SharedFunctionInfo::SharedFunctionInfoVerify() {
606 CHECK(IsSharedFunctionInfo()); 606 CHECK(IsSharedFunctionInfo());
607
608 VerifyObjectField(kCodeOffset);
609 VerifyObjectField(kDebugInfoOffset);
610 VerifyObjectField(kFeedbackMetadataOffset);
611 VerifyObjectField(kFunctionDataOffset);
612 VerifyObjectField(kFunctionIdentifierOffset);
613 VerifyObjectField(kInstanceClassNameOffset);
607 VerifyObjectField(kNameOffset); 614 VerifyObjectField(kNameOffset);
608 VerifyObjectField(kCodeOffset);
609 VerifyObjectField(kOptimizedCodeMapOffset); 615 VerifyObjectField(kOptimizedCodeMapOffset);
610 VerifyObjectField(kFeedbackMetadataOffset); 616 VerifyObjectField(kOuterScopeInfoOffset);
611 VerifyObjectField(kScopeInfoOffset); 617 VerifyObjectField(kScopeInfoOffset);
612 VerifyObjectField(kOuterScopeInfoOffset); 618 VerifyObjectField(kScriptOffset);
613 VerifyObjectField(kInstanceClassNameOffset); 619
614 CHECK(function_data()->IsUndefined(GetIsolate()) || IsApiFunction() || 620 CHECK(function_data()->IsUndefined(GetIsolate()) || IsApiFunction() ||
615 HasBytecodeArray() || HasAsmWasmData()); 621 HasBytecodeArray() || HasAsmWasmData());
616 VerifyObjectField(kFunctionDataOffset); 622
617 VerifyObjectField(kScriptOffset);
618 VerifyObjectField(kDebugInfoOffset);
619 CHECK(function_identifier()->IsUndefined(GetIsolate()) || 623 CHECK(function_identifier()->IsUndefined(GetIsolate()) ||
620 HasBuiltinFunctionId() || HasInferredName()); 624 HasBuiltinFunctionId() || HasInferredName());
621 VerifyObjectField(kFunctionIdentifierOffset); 625
626 if (scope_info()->length() > 0) {
627 CHECK(kind() == scope_info()->function_kind());
628 CHECK_EQ(kind() == kModule, scope_info()->scope_type() == MODULE_SCOPE);
629 }
622 } 630 }
623 631
624 632
625 void JSGlobalProxy::JSGlobalProxyVerify() { 633 void JSGlobalProxy::JSGlobalProxyVerify() {
626 CHECK(IsJSGlobalProxy()); 634 CHECK(IsJSGlobalProxy());
627 JSObjectVerify(); 635 JSObjectVerify();
628 VerifyObjectField(JSGlobalProxy::kNativeContextOffset); 636 VerifyObjectField(JSGlobalProxy::kNativeContextOffset);
629 // Make sure that this object has no properties, elements. 637 // Make sure that this object has no properties, elements.
630 CHECK_EQ(0, properties()->length()); 638 CHECK_EQ(0, properties()->length());
631 CHECK_EQ(0, FixedArray::cast(elements())->length()); 639 CHECK_EQ(0, FixedArray::cast(elements())->length());
(...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after
1507 1515
1508 // Both are done at the same time. 1516 // Both are done at the same time.
1509 CHECK_EQ(new_it.done(), old_it.done()); 1517 CHECK_EQ(new_it.done(), old_it.done());
1510 } 1518 }
1511 1519
1512 1520
1513 #endif // DEBUG 1521 #endif // DEBUG
1514 1522
1515 } // namespace internal 1523 } // namespace internal
1516 } // namespace v8 1524 } // namespace v8
OLDNEW
« no previous file with comments | « src/ast/scopeinfo.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698