| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| #ifndef RUNTIME_VM_SNAPSHOT_IDS_H_ |
| #define RUNTIME_VM_SNAPSHOT_IDS_H_ |
| |
| #include "vm/dart_entry.h" |
| #include "vm/raw_object.h" |
| |
| namespace dart { |
| |
| // Index for predefined singleton objects used in a snapshot. |
| enum { |
| kNullObject = 0, |
| kSentinelObject, |
| kTransitionSentinelObject, |
| kEmptyArrayObject, |
| kZeroArrayObject, |
| kTrueValue, |
| kFalseValue, |
| // Marker for special encoding of double objects in message snapshots. |
| kDoubleObject, |
| // Object id has been optimized away; reader should use next available id. |
| kOmittedObjectId, |
| |
| kClassIdsOffset = kOmittedObjectId, |
| |
| // The class ids of predefined classes are included in this list |
| // at an offset of kClassIdsOffset. |
| |
| kFirstTypeSnapshotId = (kNumPredefinedCids + kClassIdsOffset), |
| kLegacyObjectType = kFirstTypeSnapshotId, |
| kNullableObjectType, |
| kNullType, |
| kDynamicType, |
| kVoidType, |
| kNeverType, |
| kLegacyFunctionType, |
| kLegacyNumberType, |
| kLegacySmiType, |
| kLegacyMintType, |
| kLegacyDoubleType, |
| kLegacyIntType, |
| kLegacyBoolType, |
| kLegacyStringType, |
| kLegacyArrayType, |
| kNonNullableObjectType, |
| kNonNullableFunctionType, |
| kNonNullableNumberType, |
| kNonNullableSmiType, |
| kNonNullableMintType, |
| kNonNullableDoubleType, |
| kNonNullableIntType, |
| kNonNullableBoolType, |
| kNonNullableStringType, |
| kNonNullableArrayType, |
| kLastTypeSnapshotId = kNonNullableArrayType, |
| |
| kFirstTypeArgumentsSnapshotId = kLastTypeSnapshotId + 1, |
| kLegacyIntTypeArguments = kFirstTypeArgumentsSnapshotId, |
| kLegacyDoubleTypeArguments, |
| kLegacyStringTypeArguments, |
| kLegacyStringDynamicTypeArguments, |
| kLegacyStringLegacyStringTypeArguments, |
| kNonNullableIntTypeArguments, |
| kNonNullableDoubleTypeArguments, |
| kNonNullableStringTypeArguments, |
| kNonNullableStringDynamicTypeArguments, |
| kNonNullableStringNonNullableStringTypeArguments, |
| kEmptyTypeArguments, |
| kLastTypeArgumentsSnapshotId = kEmptyTypeArguments, |
| |
| kExtractorParameterTypes, |
| kExtractorParameterNames, |
| kEmptyContextScopeObject, |
| kImplicitClosureScopeObject, |
| kEmptyObjectPool, |
| kEmptyDescriptors, |
| kEmptyVarDescriptors, |
| kEmptyExceptionHandlers, |
| kCachedArgumentsDescriptor0, |
| kCachedArgumentsDescriptorN = |
| (kCachedArgumentsDescriptor0 + |
| ArgumentsDescriptor::kCachedDescriptorCount - 1), |
| kCachedICDataArray0, |
| kCachedICDataArrayN = |
| (kCachedICDataArray0 + ICData::kCachedICDataArrayCount - 1), |
| |
| kInstanceObjectId, |
| kStaticImplicitClosureObjectId, |
| kMaxPredefinedObjectIds, |
| kInvalidIndex = -1, |
| }; |
| |
| } // namespace dart |
| |
| #endif // RUNTIME_VM_SNAPSHOT_IDS_H_ |