OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_RAW_OBJECT_H_ | 5 #ifndef VM_RAW_OBJECT_H_ |
6 #define VM_RAW_OBJECT_H_ | 6 #define VM_RAW_OBJECT_H_ |
7 | 7 |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/globals.h" | 9 #include "vm/globals.h" |
10 #include "vm/token.h" | 10 #include "vm/token.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 V(Error) \ | 45 V(Error) \ |
46 V(ApiError) \ | 46 V(ApiError) \ |
47 V(LanguageError) \ | 47 V(LanguageError) \ |
48 V(UnhandledException) \ | 48 V(UnhandledException) \ |
49 V(UnwindError) \ | 49 V(UnwindError) \ |
50 V(Instance) \ | 50 V(Instance) \ |
51 V(AbstractType) \ | 51 V(AbstractType) \ |
52 V(Type) \ | 52 V(Type) \ |
53 V(TypeParameter) \ | 53 V(TypeParameter) \ |
54 V(BoundedType) \ | 54 V(BoundedType) \ |
| 55 V(MixinAppType) \ |
55 V(Number) \ | 56 V(Number) \ |
56 V(Integer) \ | 57 V(Integer) \ |
57 V(Smi) \ | 58 V(Smi) \ |
58 V(Mint) \ | 59 V(Mint) \ |
59 V(Bigint) \ | 60 V(Bigint) \ |
60 V(Double) \ | 61 V(Double) \ |
61 V(Bool) \ | 62 V(Bool) \ |
62 V(Array) \ | 63 V(Array) \ |
63 V(ImmutableArray) \ | 64 V(ImmutableArray) \ |
64 V(GrowableObjectArray) \ | 65 V(GrowableObjectArray) \ |
(...skipping 1102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1167 RawAbstractType* type_; | 1168 RawAbstractType* type_; |
1168 RawAbstractType* bound_; | 1169 RawAbstractType* bound_; |
1169 RawTypeParameter* type_parameter_; // For more detailed error reporting. | 1170 RawTypeParameter* type_parameter_; // For more detailed error reporting. |
1170 RawObject** to() { | 1171 RawObject** to() { |
1171 return reinterpret_cast<RawObject**>(&ptr()->type_parameter_); | 1172 return reinterpret_cast<RawObject**>(&ptr()->type_parameter_); |
1172 } | 1173 } |
1173 bool is_being_checked_; | 1174 bool is_being_checked_; |
1174 }; | 1175 }; |
1175 | 1176 |
1176 | 1177 |
| 1178 class RawMixinAppType : public RawAbstractType { |
| 1179 private: |
| 1180 RAW_HEAP_OBJECT_IMPLEMENTATION(MixinAppType); |
| 1181 |
| 1182 RawObject** from() { |
| 1183 return reinterpret_cast<RawObject**>(&ptr()->super_type_); |
| 1184 } |
| 1185 RawAbstractType* super_type_; |
| 1186 RawArray* mixin_types_; |
| 1187 RawObject** to() { |
| 1188 return reinterpret_cast<RawObject**>(&ptr()->mixin_types_); |
| 1189 } |
| 1190 }; |
| 1191 |
| 1192 |
1177 class RawNumber : public RawInstance { | 1193 class RawNumber : public RawInstance { |
1178 RAW_OBJECT_IMPLEMENTATION(Number); | 1194 RAW_OBJECT_IMPLEMENTATION(Number); |
1179 }; | 1195 }; |
1180 | 1196 |
1181 | 1197 |
1182 class RawInteger : public RawNumber { | 1198 class RawInteger : public RawNumber { |
1183 RAW_OBJECT_IMPLEMENTATION(Integer); | 1199 RAW_OBJECT_IMPLEMENTATION(Integer); |
1184 }; | 1200 }; |
1185 | 1201 |
1186 | 1202 |
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1879 inline intptr_t RawObject::NumberOfTypedDataClasses() { | 1895 inline intptr_t RawObject::NumberOfTypedDataClasses() { |
1880 // Make sure this is updated when new TypedData types are added. | 1896 // Make sure this is updated when new TypedData types are added. |
1881 ASSERT(kExternalTypedDataInt8ArrayCid == kTypedDataInt8ArrayCid + 11); | 1897 ASSERT(kExternalTypedDataInt8ArrayCid == kTypedDataInt8ArrayCid + 11); |
1882 ASSERT(kNullCid == kExternalTypedDataInt8ArrayCid + 11); | 1898 ASSERT(kNullCid == kExternalTypedDataInt8ArrayCid + 11); |
1883 return (kNullCid - kTypedDataInt8ArrayCid); | 1899 return (kNullCid - kTypedDataInt8ArrayCid); |
1884 } | 1900 } |
1885 | 1901 |
1886 } // namespace dart | 1902 } // namespace dart |
1887 | 1903 |
1888 #endif // VM_RAW_OBJECT_H_ | 1904 #endif // VM_RAW_OBJECT_H_ |
OLD | NEW |