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 RUNTIME_VM_RAW_OBJECT_H_ | 5 #ifndef RUNTIME_VM_RAW_OBJECT_H_ |
6 #define RUNTIME_VM_RAW_OBJECT_H_ | 6 #define RUNTIME_VM_RAW_OBJECT_H_ |
7 | 7 |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/atomic.h" | 9 #include "vm/atomic.h" |
10 #include "vm/exceptions.h" | 10 #include "vm/exceptions.h" |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 | 178 |
179 kByteDataViewCid, | 179 kByteDataViewCid, |
180 | 180 |
181 #define DEFINE_OBJECT_KIND(clazz) kExternalTypedData##clazz##Cid, | 181 #define DEFINE_OBJECT_KIND(clazz) kExternalTypedData##clazz##Cid, |
182 CLASS_LIST_TYPED_DATA(DEFINE_OBJECT_KIND) | 182 CLASS_LIST_TYPED_DATA(DEFINE_OBJECT_KIND) |
183 #undef DEFINE_OBJECT_KIND | 183 #undef DEFINE_OBJECT_KIND |
184 | 184 |
185 kByteBufferCid, | 185 kByteBufferCid, |
186 | 186 |
187 // The following entries do not describe a predefined class, but instead | 187 // The following entries do not describe a predefined class, but instead |
188 // are class indexes for pre-allocated instances (Null, dynamic and Void). | 188 // are class indexes for pre-allocated instances (Null, dynamic, Void and |
| 189 // Vector). |
189 kNullCid, | 190 kNullCid, |
190 kDynamicCid, | 191 kDynamicCid, |
191 kVoidCid, | 192 kVoidCid, |
| 193 kVectorCid, |
192 | 194 |
193 kNumPredefinedCids, | 195 kNumPredefinedCids, |
194 }; | 196 }; |
195 | 197 |
196 enum ObjectAlignment { | 198 enum ObjectAlignment { |
197 // Alignment offsets are used to determine object age. | 199 // Alignment offsets are used to determine object age. |
198 kNewObjectAlignmentOffset = kWordSize, | 200 kNewObjectAlignmentOffset = kWordSize, |
199 kOldObjectAlignmentOffset = 0, | 201 kOldObjectAlignmentOffset = 0, |
200 // Object sizes are aligned to kObjectAlignment. | 202 // Object sizes are aligned to kObjectAlignment. |
201 kObjectAlignment = 2 * kWordSize, | 203 kObjectAlignment = 2 * kWordSize, |
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 | 776 |
775 friend class Function; | 777 friend class Function; |
776 }; | 778 }; |
777 | 779 |
778 | 780 |
779 class RawFunction : public RawObject { | 781 class RawFunction : public RawObject { |
780 public: | 782 public: |
781 enum Kind { | 783 enum Kind { |
782 kRegularFunction, | 784 kRegularFunction, |
783 kClosureFunction, | 785 kClosureFunction, |
| 786 kConvertedClosureFunction, |
784 kSignatureFunction, // represents a signature only without actual code. | 787 kSignatureFunction, // represents a signature only without actual code. |
785 kGetterFunction, // represents getter functions e.g: get foo() { .. }. | 788 kGetterFunction, // represents getter functions e.g: get foo() { .. }. |
786 kSetterFunction, // represents setter functions e.g: set foo(..) { .. }. | 789 kSetterFunction, // represents setter functions e.g: set foo(..) { .. }. |
787 kConstructor, | 790 kConstructor, |
788 kImplicitGetter, // represents an implicit getter for fields. | 791 kImplicitGetter, // represents an implicit getter for fields. |
789 kImplicitSetter, // represents an implicit setter for fields. | 792 kImplicitSetter, // represents an implicit setter for fields. |
790 kImplicitStaticFinalGetter, // represents an implicit getter for static | 793 kImplicitStaticFinalGetter, // represents an implicit getter for static |
791 // final fields (incl. static const fields). | 794 // final fields (incl. static const fields). |
792 kMethodExtractor, // converts method into implicit closure on the receiver. | 795 kMethodExtractor, // converts method into implicit closure on the receiver. |
793 kNoSuchMethodDispatcher, // invokes noSuchMethod. | 796 kNoSuchMethodDispatcher, // invokes noSuchMethod. |
(...skipping 1657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2451 kTypedDataInt8ArrayViewCid + 15); | 2454 kTypedDataInt8ArrayViewCid + 15); |
2452 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14); | 2455 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14); |
2453 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1); | 2456 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1); |
2454 return (kNullCid - kTypedDataInt8ArrayCid); | 2457 return (kNullCid - kTypedDataInt8ArrayCid); |
2455 } | 2458 } |
2456 | 2459 |
2457 | 2460 |
2458 } // namespace dart | 2461 } // namespace dart |
2459 | 2462 |
2460 #endif // RUNTIME_VM_RAW_OBJECT_H_ | 2463 #endif // RUNTIME_VM_RAW_OBJECT_H_ |
OLD | NEW |