blob: b38bf1b2c83f99f9f61a4efadd23f660bbfee50c [file] [log] [blame]
// 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_