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

Unified Diff: pkg/kernel/binary.md

Issue 2854393002: [kernel] [partial] Streaming of kernel binary without AST nodes (Closed)
Patch Set: Address comments; small fixes; rebased. Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/kernel/lib/ast.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/kernel/binary.md
diff --git a/pkg/kernel/binary.md b/pkg/kernel/binary.md
index a8fa1409fe911658d668282eb3e117e2371a6b04..5f3d560e2364238198ac61ac0bdee458ccfdcede 100644
--- a/pkg/kernel/binary.md
+++ b/pkg/kernel/binary.md
@@ -46,6 +46,12 @@ type List<T> {
UInt length;
T[length] items;
}
+
+// Untagged pairs.
+type Pair<T0, T1> {
+ T0 first;
+ T1 second;
+}
```
A string table consists of an array of end offsets and a payload array of
@@ -346,6 +352,7 @@ type InvalidExpression extends Expression {
type VariableGet extends Expression {
Byte tag = 20;
FileOffset fileOffset;
+ UInt variableDeclarationPosition; // Byte offset in the binary for the variable declaration.
VariableReference variable;
}
@@ -353,11 +360,13 @@ type SpecializedVariableGet extends Expression {
Byte tag = 128 + N; // Where 0 <= N < 8.
// Equivalent to a VariableGet with index N.
FileOffset fileOffset;
+ UInt variableDeclarationPosition; // Byte offset in the binary for the variable declaration.
}
type VariableSet extends Expression {
Byte tag = 21;
FileOffset fileOffset;
+ UInt variableDeclarationPosition; // Byte offset in the binary for the variable declaration.
VariableReference variable;
Expression value;
}
@@ -365,6 +374,7 @@ type VariableSet extends Expression {
type SpecializedVariableSet extends Expression {
Byte tag = 136 + N; // Where 0 <= N < 8.
FileOffset fileOffset;
+ UInt variableDeclarationPosition; // Byte offset in the binary for the variable declaration.
Expression value;
// Equivalent to VariableSet with index N.
}
@@ -429,6 +439,7 @@ type StaticSet extends Expression {
type Arguments {
// Note: there is no tag on Arguments.
+ UInt numArguments; // equals positional.length + named.length
List<DartType> types;
List<Expression> positional;
List<NamedExpression> named;
@@ -782,8 +793,7 @@ type SwitchStatement extends Statement {
type SwitchCase {
// Note: there is no tag on SwitchCase
- List<Expression> expressions;
- FileOffset[expressions.length] expressionOffsets; // 1-to-1 with expressions.
+ List<Pair<FileOffset, Expression>> expressions;
Byte isDefault; // 1 if default, 0 is not default.
Statement body;
}
@@ -819,6 +829,7 @@ type ReturnStatement extends Statement {
type TryCatch extends Statement {
Byte tag = 75;
Statement body;
+ Byte anyCatchNeedsStackTrace; // 1 if any catch needs a stacktrace (have a stacktrace variable).
List<Catch> catches;
}
@@ -910,6 +921,7 @@ type FunctionType extends DartType {
Byte tag = 94;
List<TypeParameter> typeParameters;
UInt requiredParameterCount;
+ UInt totalParameterCount; // positionalParameters.length + namedParameters.length
List<DartType> positionalParameters;
List<NamedDartType> namedParameters;
DartType returnType;
@@ -949,7 +961,10 @@ type TypeParameterType extends DartType {
// the class type parameters in a constructor refer to those declared on the
// class.
UInt index;
-
+
+ // Byte offset in the binary for the type declaration.
+ // Note: This can also be 0, which is a 'forward reference' and is not to be used.
+ UInt typeParameterPosition;
Option<DartType> bound;
}
« 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