| 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 |