Chromium Code Reviews| 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 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 190 // hierarchy level, depending on its isTypeLevel flag. | 190 // hierarchy level, depending on its isTypeLevel flag. |
| 191 // If the enclosing library is not external, a class is always at body level. | 191 // If the enclosing library is not external, a class is always at body level. |
| 192 // | 192 // |
| 193 // See ClassLevel in ast.dart for the details of each loading level. | 193 // See ClassLevel in ast.dart for the details of each loading level. |
| 194 | 194 |
| 195 abstract type Class extends Node {} | 195 abstract type Class extends Node {} |
| 196 | 196 |
| 197 type NormalClass extends Class { | 197 type NormalClass extends Class { |
| 198 Byte tag = 2; | 198 Byte tag = 2; |
| 199 FileOffset fileOffset; | 199 FileOffset fileOffset; |
| 200 Byte flags (isAbstract, isTypeLevel); | 200 Byte flags (isAbstract, xx); // where xx is index of class level |
|
Kevin Millikin (Google)
2017/02/09 10:44:34
This should be spelled out explicitly here, even i
asgerf
2017/02/13 12:43:35
Done.
| |
| 201 StringReference name; | 201 StringReference name; |
| 202 // An absolute path URI to the .dart file from which the class was created. | 202 // An absolute path URI to the .dart file from which the class was created. |
| 203 UriReference fileUri; | 203 UriReference fileUri; |
| 204 List<Expression> annotations; | 204 List<Expression> annotations; |
| 205 List<TypeParameter> typeParameters; | 205 List<TypeParameter> typeParameters; |
| 206 Option<InterfaceType> superClass; | 206 Option<InterfaceType> superClass; |
| 207 List<InterfaceType> implementedClasses; | 207 List<InterfaceType> implementedClasses; |
| 208 List<Field> fields; | 208 List<Field> fields; |
| 209 List<Constructor> constructors; | 209 List<Constructor> constructors; |
| 210 List<Procedure> procedures; | 210 List<Procedure> procedures; |
| (...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 917 | 917 |
| 918 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */ | 918 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */ |
| 919 | 919 |
| 920 type InferredValue { | 920 type InferredValue { |
| 921 ClassReference baseClass; // May be NullReference if kind = None. | 921 ClassReference baseClass; // May be NullReference if kind = None. |
| 922 Byte kind; // Index into BaseClassKind. | 922 Byte kind; // Index into BaseClassKind. |
| 923 Byte valueBits; // See lib/type_propagation/type_propagation.dart | 923 Byte valueBits; // See lib/type_propagation/type_propagation.dart |
| 924 } | 924 } |
| 925 | 925 |
| 926 ``` | 926 ``` |
| OLD | NEW |