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

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

Issue 2972343002: [kernel] Insert kernel bodies into VM heap (Closed)
Patch Set: Review comments Created 3 years, 4 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
« no previous file with comments | « no previous file | pkg/kernel/lib/ast.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 } 239 }
240 240
241 abstract type Member extends Node {} 241 abstract type Member extends Node {}
242 242
243 type Field extends Member { 243 type Field extends Member {
244 Byte tag = 4; 244 Byte tag = 4;
245 CanonicalNameReference canonicalName; 245 CanonicalNameReference canonicalName;
246 FileOffset fileOffset; 246 FileOffset fileOffset;
247 FileOffset fileEndOffset; 247 FileOffset fileEndOffset;
248 Byte flags (isFinal, isConst, isStatic); 248 Byte flags (isFinal, isConst, isStatic);
249 // Byte offset in the binary for the parent class,
250 // or 0 if parent is not a class
251 UInt parentPosition;
252 Name name; 249 Name name;
253 // An absolute path URI to the .dart file from which the field was created. 250 // An absolute path URI to the .dart file from which the field was created.
254 UriReference fileUri; 251 UriReference fileUri;
255 List<Expression> annotations; 252 List<Expression> annotations;
256 DartType type; 253 DartType type;
257 Option<Expression> initializer; 254 Option<Expression> initializer;
258 } 255 }
259 256
260 type Constructor extends Member { 257 type Constructor extends Member {
261 Byte tag = 5; 258 Byte tag = 5;
262 CanonicalNameReference canonicalName; 259 CanonicalNameReference canonicalName;
263 FileOffset fileOffset; 260 FileOffset fileOffset;
264 FileOffset fileEndOffset; 261 FileOffset fileEndOffset;
265 Byte flags (isConst, isExternal); 262 Byte flags (isConst, isExternal);
266 UInt parentPosition; // Byte offset in the binary for the parent class.
267 Name name; 263 Name name;
268 List<Expression> annotations; 264 List<Expression> annotations;
269 FunctionNode function; 265 FunctionNode function;
270 List<Initializer> initializers; 266 List<Initializer> initializers;
271 } 267 }
272 268
273 /* 269 /*
274 enum ProcedureKind { 270 enum ProcedureKind {
275 Method, 271 Method,
276 Getter, 272 Getter,
277 Setter, 273 Setter,
278 Operator, 274 Operator,
279 Factory, 275 Factory,
280 } 276 }
281 */ 277 */
282 278
283 type Procedure extends Member { 279 type Procedure extends Member {
284 Byte tag = 6; 280 Byte tag = 6;
285 CanonicalNameReference canonicalName; 281 CanonicalNameReference canonicalName;
286 FileOffset fileOffset; 282 FileOffset fileOffset;
287 FileOffset fileEndOffset; 283 FileOffset fileEndOffset;
288 Byte kind; // Index into the ProcedureKind enum above. 284 Byte kind; // Index into the ProcedureKind enum above.
289 Byte flags (isStatic, isAbstract, isExternal, isConst); 285 Byte flags (isStatic, isAbstract, isExternal, isConst);
290 // Byte offset in the binary for the parent class,
291 // or 0 if parent is not a class.
292 UInt parentPosition;
293 Name name; 286 Name name;
294 // An absolute path URI to the .dart file from which the class was created. 287 // An absolute path URI to the .dart file from which the class was created.
295 UriReference fileUri; 288 UriReference fileUri;
296 List<Expression> annotations; 289 List<Expression> annotations;
297 // Can only be absent if abstract, but tag is there anyway. 290 // Can only be absent if abstract, but tag is there anyway.
298 Option<FunctionNode> function; 291 Option<FunctionNode> function;
299 } 292 }
300 293
301 abstract type Initializer extends Node {} 294 abstract type Initializer extends Node {}
302 295
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 Option<DartType> bound; 1007 Option<DartType> bound;
1015 } 1008 }
1016 1009
1017 type TypeParameter { 1010 type TypeParameter {
1018 // Note: there is no tag on TypeParameter 1011 // Note: there is no tag on TypeParameter
1019 StringReference name; // Cosmetic, may be empty, not unique. 1012 StringReference name; // Cosmetic, may be empty, not unique.
1020 DartType bound; // 'dynamic' if no explicit bound was given. 1013 DartType bound; // 'dynamic' if no explicit bound was given.
1021 } 1014 }
1022 1015
1023 ``` 1016 ```
OLDNEW
« no previous file with comments | « no previous file | pkg/kernel/lib/ast.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698