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

Side by Side Diff: pkg/kernel/binary.md

Issue 2750013002: [kernel] Debugging of switch statement (Closed)
Patch Set: Take #2: Update switch case to include list of positions Created 3 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
OLDNEW
1 This file describes the binary format of Dart Kernel. 1 This file describes the binary format of Dart Kernel.
2 2
3 Notation 3 Notation
4 -------- 4 --------
5 Bitmasks are described with the syntax: 5 Bitmasks are described with the syntax:
6 ```scala 6 ```scala
7 Byte flags (flag1, flag2, ..., flagN) 7 Byte flags (flag1, flag2, ..., flagN)
8 ``` 8 ```
9 where 'flag<N>' is the N-th least significant bit, 9 where 'flag<N>' is the N-th least significant bit,
10 (so flag1 is the least significant bit). 10 (so flag1 is the least significant bit).
(...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 736
737 type SwitchStatement extends Statement { 737 type SwitchStatement extends Statement {
738 Byte tag = 71; 738 Byte tag = 71;
739 Expression expression; 739 Expression expression;
740 List<SwitchCase> cases; 740 List<SwitchCase> cases;
741 } 741 }
742 742
743 type SwitchCase { 743 type SwitchCase {
744 // Note: there is no tag on SwitchCase 744 // Note: there is no tag on SwitchCase
745 List<Expression> expressions; 745 List<Expression> expressions;
746 List<FileOffset> expressionsOffsets; // 1-to-1 with expressions.
Kevin Millikin (Google) 2017/03/20 12:29:47 expressionsOffsets ==> expressionOffsets Since th
jensj 2017/03/21 10:06:19 Done.
746 Byte isDefault; // 1 if default, 0 is not default. 747 Byte isDefault; // 1 if default, 0 is not default.
747 Statement body; 748 Statement body;
748 } 749 }
749 750
750 type ContinueSwitchStatement extends Statement { 751 type ContinueSwitchStatement extends Statement {
751 Byte tag = 72; 752 Byte tag = 72;
752 753
753 // Reference to the Nth SwitchCase in scope. 754 // Reference to the Nth SwitchCase in scope.
754 // 755 //
755 // A SwitchCase is in scope everywhere within its enclosing switch, 756 // A SwitchCase is in scope everywhere within its enclosing switch,
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
919 920
920 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */ 921 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */
921 922
922 type InferredValue { 923 type InferredValue {
923 ClassReference baseClass; // May be NullReference if kind = None. 924 ClassReference baseClass; // May be NullReference if kind = None.
924 Byte kind; // Index into BaseClassKind. 925 Byte kind; // Index into BaseClassKind.
925 Byte valueBits; // See lib/type_propagation/type_propagation.dart 926 Byte valueBits; // See lib/type_propagation/type_propagation.dart
926 } 927 }
927 928
928 ``` 929 ```
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698