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 642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
653 type LoadLibrary extends Expression { | 653 type LoadLibrary extends Expression { |
654 Byte tag = 14; | 654 Byte tag = 14; |
655 DeferredImportReference import; | 655 DeferredImportReference import; |
656 } | 656 } |
657 | 657 |
658 type CheckLibraryIsLoaded extends Expression { | 658 type CheckLibraryIsLoaded extends Expression { |
659 Byte tag = 13; | 659 Byte tag = 13; |
660 DeferredImportReference import; | 660 DeferredImportReference import; |
661 } | 661 } |
662 | 662 |
| 663 type VectorCreation extends Expression { |
| 664 Byte tag = 102; |
| 665 UInt length; |
| 666 } |
| 667 |
| 668 type VectorGet extends Expression { |
| 669 Byte tag = 103; |
| 670 Expression vectorExpression; |
| 671 UInt index; |
| 672 } |
| 673 |
| 674 type VectorSet extends Expression { |
| 675 Byte tag = 104; |
| 676 Expression vectorExpression; |
| 677 UInt index; |
| 678 Expression value; |
| 679 } |
| 680 |
| 681 type VectorCopy extends Expression { |
| 682 Byte tag = 105; |
| 683 Expression vectorExpression; |
| 684 } |
| 685 |
663 abstract type Statement extends Node {} | 686 abstract type Statement extends Node {} |
664 | 687 |
665 type InvalidStatement extends Statement { | 688 type InvalidStatement extends Statement { |
666 Byte tag = 60; | 689 Byte tag = 60; |
667 } | 690 } |
668 | 691 |
669 type ExpressionStatement extends Statement { | 692 type ExpressionStatement extends Statement { |
670 Byte tag = 61; | 693 Byte tag = 61; |
671 Expression expression; | 694 Expression expression; |
672 } | 695 } |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
909 // scope there. | 932 // scope there. |
910 // | 933 // |
911 // The type parameter can be bound by a Class, FunctionNode, or FunctionType. | 934 // The type parameter can be bound by a Class, FunctionNode, or FunctionType. |
912 // | 935 // |
913 // Note that constructors currently do not declare type parameters. Uses of | 936 // Note that constructors currently do not declare type parameters. Uses of |
914 // the class type parameters in a constructor refer to those declared on the | 937 // the class type parameters in a constructor refer to those declared on the |
915 // class. | 938 // class. |
916 UInt index; | 939 UInt index; |
917 } | 940 } |
918 | 941 |
| 942 type VectorType extends DartType { |
| 943 Byte tag = 88; |
| 944 } |
| 945 |
919 type TypeParameter { | 946 type TypeParameter { |
920 // Note: there is no tag on TypeParameter | 947 // Note: there is no tag on TypeParameter |
921 StringReference name; // Cosmetic, may be empty, not unique. | 948 StringReference name; // Cosmetic, may be empty, not unique. |
922 DartType bound; // 'dynamic' if no explicit bound was given. | 949 DartType bound; // 'dynamic' if no explicit bound was given. |
923 } | 950 } |
924 | 951 |
925 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */ | 952 /* enum BaseClassKind { None, Exact, Subclass, Subtype, } */ |
926 | 953 |
927 type InferredValue { | 954 type InferredValue { |
928 ClassReference baseClass; // May be NullReference if kind = None. | 955 ClassReference baseClass; // May be NullReference if kind = None. |
929 Byte kind; // Index into BaseClassKind. | 956 Byte kind; // Index into BaseClassKind. |
930 Byte valueBits; // See lib/type_propagation/type_propagation.dart | 957 Byte valueBits; // See lib/type_propagation/type_propagation.dart |
931 } | 958 } |
932 | 959 |
933 ``` | 960 ``` |
OLD | NEW |