OLD | NEW |
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 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
738 | 738 |
739 type SwitchStatement extends Statement { | 739 type SwitchStatement extends Statement { |
740 Byte tag = 71; | 740 Byte tag = 71; |
741 Expression expression; | 741 Expression expression; |
742 List<SwitchCase> cases; | 742 List<SwitchCase> cases; |
743 } | 743 } |
744 | 744 |
745 type SwitchCase { | 745 type SwitchCase { |
746 // Note: there is no tag on SwitchCase | 746 // Note: there is no tag on SwitchCase |
747 List<Expression> expressions; | 747 List<Expression> expressions; |
| 748 FileOffset[expressions.length] expressionOffsets; // 1-to-1 with expressions. |
748 Byte isDefault; // 1 if default, 0 is not default. | 749 Byte isDefault; // 1 if default, 0 is not default. |
749 Statement body; | 750 Statement body; |
750 } | 751 } |
751 | 752 |
752 type ContinueSwitchStatement extends Statement { | 753 type ContinueSwitchStatement extends Statement { |
753 Byte tag = 72; | 754 Byte tag = 72; |
754 | 755 |
755 // Reference to the Nth SwitchCase in scope. | 756 // Reference to the Nth SwitchCase in scope. |
756 // | 757 // |
757 // A SwitchCase is in scope everywhere within its enclosing switch, | 758 // A SwitchCase is in scope everywhere within its enclosing switch, |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 | 922 |
922 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */ | 923 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */ |
923 | 924 |
924 type InferredValue { | 925 type InferredValue { |
925 ClassReference baseClass; // May be NullReference if kind = None. | 926 ClassReference baseClass; // May be NullReference if kind = None. |
926 Byte kind; // Index into BaseClassKind. | 927 Byte kind; // Index into BaseClassKind. |
927 Byte valueBits; // See lib/type_propagation/type_propagation.dart | 928 Byte valueBits; // See lib/type_propagation/type_propagation.dart |
928 } | 929 } |
929 | 930 |
930 ``` | 931 ``` |
OLD | NEW |