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 772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
783 | 783 |
784 // Reference to the Nth LabeledStatement in scope, with 0 being the | 784 // Reference to the Nth LabeledStatement in scope, with 0 being the |
785 // outermost enclosing labeled statement within the same FunctionNode. | 785 // outermost enclosing labeled statement within the same FunctionNode. |
786 // | 786 // |
787 // Labels are not in scope across function boundaries. | 787 // Labels are not in scope across function boundaries. |
788 UInt labelIndex; | 788 UInt labelIndex; |
789 } | 789 } |
790 | 790 |
791 type WhileStatement extends Statement { | 791 type WhileStatement extends Statement { |
792 Byte tag = 67; | 792 Byte tag = 67; |
| 793 FileOffset fileOffset; |
793 Expression condition; | 794 Expression condition; |
794 Statement body; | 795 Statement body; |
795 } | 796 } |
796 | 797 |
797 type DoStatement extends Statement { | 798 type DoStatement extends Statement { |
798 Byte tag = 68; | 799 Byte tag = 68; |
| 800 FileOffset fileOffset; |
799 Statement body; | 801 Statement body; |
800 Expression condition; | 802 Expression condition; |
801 } | 803 } |
802 | 804 |
803 type ForStatement extends Statement { | 805 type ForStatement extends Statement { |
804 Byte tag = 69; | 806 Byte tag = 69; |
| 807 FileOffset fileOffset; |
805 List<VariableDeclaration> variables; | 808 List<VariableDeclaration> variables; |
806 Option<Expression> condition; | 809 Option<Expression> condition; |
807 List<Expression> updates; | 810 List<Expression> updates; |
808 Statement body; | 811 Statement body; |
809 } | 812 } |
810 | 813 |
811 type ForInStatement extends Statement { | 814 type ForInStatement extends Statement { |
812 Byte tag = 70; | 815 Byte tag = 70; |
813 FileOffset fileOffset; // note that this is actually the body offset | 816 FileOffset fileOffset; |
| 817 FileOffset bodyOffset; |
814 VariableDeclaration variable; | 818 VariableDeclaration variable; |
815 Expression iterable; | 819 Expression iterable; |
816 Statement body; | 820 Statement body; |
817 } | 821 } |
818 | 822 |
819 type AsyncForInStatement extends Statement { | 823 type AsyncForInStatement extends Statement { |
820 Byte tag = 80; // Note: tag is out of order. | 824 Byte tag = 80; // Note: tag is out of order. |
821 FileOffset fileOffset; // note that this is actually the body offset | 825 FileOffset fileOffset; |
| 826 FileOffset bodyOffset; |
822 VariableDeclaration variable; | 827 VariableDeclaration variable; |
823 Expression iterable; | 828 Expression iterable; |
824 Statement body; | 829 Statement body; |
825 } | 830 } |
826 | 831 |
827 type SwitchStatement extends Statement { | 832 type SwitchStatement extends Statement { |
828 Byte tag = 71; | 833 Byte tag = 71; |
829 Expression expression; | 834 Expression expression; |
830 List<SwitchCase> cases; | 835 List<SwitchCase> cases; |
831 } | 836 } |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1015 Option<DartType> bound; | 1020 Option<DartType> bound; |
1016 } | 1021 } |
1017 | 1022 |
1018 type TypeParameter { | 1023 type TypeParameter { |
1019 // Note: there is no tag on TypeParameter | 1024 // Note: there is no tag on TypeParameter |
1020 StringReference name; // Cosmetic, may be empty, not unique. | 1025 StringReference name; // Cosmetic, may be empty, not unique. |
1021 DartType bound; // 'dynamic' if no explicit bound was given. | 1026 DartType bound; // 'dynamic' if no explicit bound was given. |
1022 } | 1027 } |
1023 | 1028 |
1024 ``` | 1029 ``` |
OLD | NEW |