11#if !defined(DART_PRECOMPILED_RUNTIME)
55#if !defined(DART_PRECOMPILED_RUNTIME)
61 if (
a.IsInstance() &&
b.IsInstance()) {
62 return Instance::Cast(
a).IsIdenticalTo(Instance::Cast(
b));
64 return a.ptr() ==
b.ptr();
72 return type.IsDoubleType();
76 return type.IsBoolType();
80 return type.IsIntType() ||
type.IsIntegerImplementationType() ||
81 type.IsSmiType() ||
type.IsMintType();
85 return type.IsSmiType();
89bool IsNotTemporaryScopedHandle(
const Object& obj) {
90 return obj.IsNotTemporaryScopedHandle();
95 bool Is##clazz##Handle(const Object& obj) { \
96 return obj.Is##clazz(); \
102 return obj.IsSmi() || obj.
IsOld();
111 if (obj.IsTypeArguments()) {
112 return TypeArguments::Cast(obj).Hash();
114 if (obj.IsInstance()) {
115 return Instance::Cast(obj).CanonicalizeHash();
118 return Code::Cast(obj).Hash();
120 if (obj.IsFunction()) {
121 return Function::Cast(obj).Hash();
124 return Field::Cast(obj).Hash();
126 if (obj.IsICData()) {
127 return ICData::Cast(obj).Hash();
150 return Object::null_object();
154 return Object::sentinel();
166 return Object::empty_type_arguments();
170 return dart::Type::dynamic_type();
178 return dart::Type::void_type();
187 return Class::Handle(object_store->growable_object_array_class());
221 intptr_t num_arguments) {
227 if (
object.IsICData()) {
228 return ICData::Cast(
object).IsOriginal();
229 }
else if (
object.IsField()) {
230 return Field::Cast(
object).IsOriginal();
240 if (
object.IsInteger()) {
241 *
value = Integer::Cast(
object).AsInt64Value();
262 ASSERT(!math_lib.IsNull());
264 math_lib.LookupClassAllowPrivate(dart::Symbols::_Random()));
265 ASSERT(!random_class.IsNull());
267 random_class.LookupInstanceFieldAllowPrivate(dart::Symbols::_state()));
272 const auto& convert_lib =
274 ASSERT(!convert_lib.IsNull());
276 convert_lib.LookupClassAllowPrivate(dart::Symbols::_Utf8Decoder()));
277 ASSERT(!_utf8decoder_class.IsNull());
279 _utf8decoder_class.LookupInstanceFieldAllowPrivate(
280 dart::Symbols::_scanFlags()));
281 return scan_flags_field;
288#if defined(TARGET_ARCH_IA32)
289uword SymbolsPredefinedAddress() {
295 return dart::StubCode::AllocateArray();
299 return dart::StubCode::Subtype2TestCache();
303 return dart::StubCode::Subtype3TestCache();
307 return dart::StubCode::Subtype4TestCache();
311 return dart::StubCode::Subtype6TestCache();
315 return dart::StubCode::Subtype7TestCache();
318#define DEFINE_ALIAS(name) \
319 const RuntimeEntry& k##name##RuntimeEntry(dart::k##name##RuntimeEntry);
323#define DEFINE_ALIAS(type, name, ...) \
324 const RuntimeEntry& k##name##RuntimeEntry(dart::k##name##RuntimeEntry);
337 return runtime_entry_->
is_leaf();
409 dart::UntaggedObject::TagBits::kSizeTagPos;
451 switch (handle.
id()) {
466 case kGrowableObjectArrayCid:
470 case kTypedDataBaseCid:
476 case kUnhandledExceptionCid:
478 case kWeakPropertyCid:
480 case kWeakReferenceCid:
484 case kFinalizerEntryCid:
486 case kNativeFinalizerCid:
492 case kDynamicLibraryCid:
493#define HANDLE_CASE(clazz) case kFfi##clazz##Cid:
496#define HANDLE_CASE(clazz) \
497 case kTypedData##clazz##Cid: \
498 case kTypedData##clazz##ViewCid: \
499 case kExternalTypedData##clazz##Cid: \
500 case kUnmodifiableTypedData##clazz##ViewCid:
509 FATAL(
"Unsupported class for size translation: %s (id=%" Pd
510 ", kNumPredefinedCids=%" Pd ")\n",
565 case kImmutableArrayCid:
567 case kTypeArgumentsCid:
569 case kOneByteStringCid:
571 case kTwoByteStringCid:
589 case kImmutableArrayCid:
591 case kTypeArgumentsCid:
593 case kOneByteStringCid:
595 case kTwoByteStringCid:
637#define DEFINE_CONSTANT(Class, Name) const word Class::Name = Class##_##Name;
639#define DEFINE_ARRAY_SIZEOF(clazz, name, ElementOffset) \
640 word clazz::name() { \
643 word clazz::name(intptr_t length) { \
644 return RoundedAllocationSize(clazz::ElementOffset(length)); \
647#define DEFINE_PAYLOAD_SIZEOF(clazz, name, header) \
648 word clazz::name() { \
651 word clazz::name(word payload_size) { \
652 return RoundedAllocationSize(clazz::header() + payload_size); \
655#if defined(TARGET_ARCH_IA32)
657#define DEFINE_FIELD(clazz, name) \
658 word clazz::name() { \
659 return clazz##_##name; \
662#define DEFINE_ARRAY(clazz, name) \
663 word clazz::name(intptr_t index) { \
664 return clazz##_elements_start_offset + index * clazz##_element_size; \
667#define DEFINE_SIZEOF(clazz, name, what) \
668 word clazz::name() { \
669 return clazz##_##name; \
672#define DEFINE_RANGE(Class, Getter, Type, First, Last, Filter) \
673 word Class::Getter(Type index) { \
674 return Class##_##Getter[static_cast<intptr_t>(index) - \
675 static_cast<intptr_t>(First)]; \
696#define DEFINE_JIT_FIELD(clazz, name) \
697 word clazz::name() { \
698 if (FLAG_precompiled_mode) { \
699 FATAL("Use of JIT-only field %s in precompiled mode", \
700 #clazz "::" #name); \
702 return clazz##_##name; \
705#define DEFINE_JIT_ARRAY(clazz, name) \
706 word clazz::name(intptr_t index) { \
707 if (FLAG_precompiled_mode) { \
708 FATAL("Use of JIT-only array %s in precompiled mode", \
709 #clazz "::" #name); \
711 return clazz##_elements_start_offset + index * clazz##_element_size; \
714#define DEFINE_JIT_SIZEOF(clazz, name, what) \
715 word clazz::name() { \
716 if (FLAG_precompiled_mode) { \
717 FATAL("Use of JIT-only sizeof %s in precompiled mode", \
718 #clazz "::" #name); \
720 return clazz##_##name; \
723#define DEFINE_JIT_RANGE(Class, Getter, Type, First, Last, Filter) \
724 word Class::Getter(Type index) { \
725 if (FLAG_precompiled_mode) { \
726 FATAL("Use of JIT-only range %s in precompiled mode", \
727 #Class "::" #Getter); \
729 return Class##_##Getter[static_cast<intptr_t>(index) - \
730 static_cast<intptr_t>(First)]; \
741#undef DEFINE_JIT_FIELD
742#undef DEFINE_JIT_ARRAY
743#undef DEFINE_JIT_SIZEOF
744#undef DEFINE_JIT_RANGE
746#if defined(DART_PRECOMPILER)
752#define DEFINE_AOT_FIELD(clazz, name) \
753 word clazz::name() { \
754 return AOT_##clazz##_##name; \
757#define DEFINE_AOT_ARRAY(clazz, name) \
758 word clazz::name(intptr_t index) { \
759 return AOT_##clazz##_elements_start_offset + \
760 index * AOT_##clazz##_element_size; \
763#define DEFINE_AOT_SIZEOF(clazz, name, what) \
764 word clazz::name() { \
765 return AOT_##clazz##_##name; \
768#define DEFINE_AOT_RANGE(Class, Getter, Type, First, Last, Filter) \
769 word Class::Getter(Type index) { \
770 return AOT_##Class##_##Getter[static_cast<intptr_t>(index) - \
771 static_cast<intptr_t>(First)]; \
774#define DEFINE_AOT_FIELD(clazz, name) \
775 word clazz::name() { \
776 FATAL("Use of AOT-only field %s outside of the precompiler", \
777 #clazz "::" #name); \
780#define DEFINE_AOT_ARRAY(clazz, name) \
781 word clazz::name(intptr_t index) { \
782 FATAL("Use of AOT-only array %s outside of the precompiler", \
783 #clazz "::" #name); \
786#define DEFINE_AOT_SIZEOF(clazz, name, what) \
787 word clazz::name() { \
788 FATAL("Use of AOT-only sizeof %s outside of the precompiler", \
789 #clazz "::" #name); \
792#define DEFINE_AOT_RANGE(Class, Getter, Type, First, Last, Filter) \
793 word Class::Getter(Type index) { \
794 FATAL("Use of AOT-only range %s outside of the precompiler", \
795 #Class "::" #Getter); \
807#undef DEFINE_AOT_FIELD
808#undef DEFINE_AOT_ARRAY
809#undef DEFINE_AOT_SIZEOF
810#undef DEFINE_AOT_RANGE
812#define DEFINE_FIELD(clazz, name) \
813 word clazz::name() { \
814 return FLAG_precompiled_mode ? AOT_##clazz##_##name : clazz##_##name; \
817#define DEFINE_ARRAY(clazz, name) \
818 word clazz::name(intptr_t index) { \
819 if (FLAG_precompiled_mode) { \
820 return AOT_##clazz##_elements_start_offset + \
821 index * AOT_##clazz##_element_size; \
823 return clazz##_elements_start_offset + index * clazz##_element_size; \
827#define DEFINE_SIZEOF(clazz, name, what) \
828 word clazz::name() { \
829 return FLAG_precompiled_mode ? AOT_##clazz##_##name : clazz##_##name; \
832#define DEFINE_RANGE(Class, Getter, Type, First, Last, Filter) \
833 word Class::Getter(Type index) { \
834 if (FLAG_precompiled_mode) { \
835 return AOT_##Class##_##Getter[static_cast<intptr_t>(index) - \
836 static_cast<intptr_t>(First)]; \
838 return Class##_##Getter[static_cast<intptr_t>(index) - \
839 static_cast<intptr_t>(First)]; \
857#undef DEFINE_PAYLOAD_SIZEOF
858#undef DEFINE_CONSTANT
870 return FLAG_precompiled_mode;
904 return dart::Thread::ExecutionState::kThreadInGenerated;
908 return dart::Thread::ExecutionState::kThreadInNative;
912 return dart::Thread::ExecutionState::kThreadInVM;
916 return dart::VMTag::kDartTagId;
931 dart::Thread::object_null_offset());
938 host_offset - dart::Thread::AllocateArray_entry_point_offset());
954 "Expected that size of Smi on HOST is at least as large as on target.");
971 return static_cast<word>(dart::Smi::Cast(
a).Value());
980 return dart::Double::Cast(
a).value();
983#if defined(TARGET_ARCH_IA32)
986 "Can't embed raw pointers to runtime objects when host and "
987 "target word sizes are different");
988 return code.EntryPoint();
991bool CanEmbedAsRawPointerInGeneratedCode(
const dart::Object& obj) {
997 "Can't embed raw pointers to runtime objects when host and "
998 "target word sizes are different");
999 return static_cast<word>(
a.ptr());
1004#if !defined(DART_COMPRESSED_POINTERS)
1086 if (
type.IsNullable()) {
1091 if (
type.IsDoubleType()) {
1093 }
else if (
type.IsFloat32x4Type()) {
1095 cid = kFloat32x4Cid;
1097 }
else if (
type.IsFloat64x2Type()) {
1099 cid = kFloat64x2Cid;
1130 RecordShape_kFieldNamesIndexShift;
#define RELEASE_ASSERT(cond)
#define CLASS_LIST_FOR_HANDLES(V)
#define CLASS_LIST_FFI_TYPE_MARKER(V)
#define CLASS_LIST_TYPED_DATA(V)
static ArrayPtr NewBoxed(intptr_t type_args_len, intptr_t num_arguments, const Array &optional_arguments_names, Heap::Space space=Heap::kOld)
static intptr_t index_at_offset(intptr_t offset_in_bytes)
static constexpr bool UseCardMarkingForAllocation(const intptr_t array_length)
static constexpr bool IsValidLength(intptr_t len)
static constexpr uword encode(ClassIdTagType value)
static const Bool & False()
static const Bool & True()
bool TraceAllocation(IsolateGroup *isolate_group) const
intptr_t target_type_arguments_field_offset() const
intptr_t target_instance_size() const
intptr_t NumTypeArguments() const
intptr_t host_type_arguments_field_offset() const
bool HasCompressedPointers() const
static constexpr intptr_t kNoTypeArguments
static uword EntryPointOf(const CodePtr code)
static bool IsValidLength(intptr_t len)
static intptr_t InstanceSize()
static intptr_t FieldOffsetFor(intptr_t field_id)
void set_is_unboxed(bool b) const
intptr_t TargetOffset() const
void set_guarded_cid(intptr_t cid) const
void set_guarded_list_length_in_object_offset(intptr_t offset) const
intptr_t field_id() const
void set_is_nullable(bool val) const
void set_guarded_list_length(intptr_t list_length) const
static bool SupportsUnboxedSimd128()
static intptr_t ExactnessIndexFor(intptr_t num_args)
static intptr_t CodeIndexFor(intptr_t num_args)
static intptr_t TargetIndexFor(intptr_t num_args)
static intptr_t CountIndexFor(intptr_t num_args)
static intptr_t TestEntryLengthFor(intptr_t num_args, bool tracking_exactness)
static intptr_t EntryPointIndexFor(intptr_t num_args)
static intptr_t NextFieldOffset()
static intptr_t NativeFieldsOffset()
ObjectStore * object_store() const
static IsolateGroup * Current()
static LibraryPtr ConvertLibrary()
static LibraryPtr MathLibrary()
DART_NORETURN void Jump(int value, const Error &error)
static constexpr intptr_t kSpreadFactor
intptr_t GetClassId() const
bool InVMIsolateHeap() const
static bool ShouldHaveImmutabilityBitSet(classid_t class_id)
virtual const char * ToCString() const
static Object & ZoneHandle()
static constexpr intptr_t kHashBits
static constexpr intptr_t kBytesPerElement
static intptr_t field_index_at_offset(intptr_t offset_in_bytes)
static intptr_t function_offset(intptr_t cid, bool sticky)
intptr_t argument_count() const
static intptr_t RawValue(intptr_t value)
static StringPtr New(const char *cstr, Heap::Space space=Heap::kNew)
static constexpr int kNumberOfOneCharCodeSymbols
static constexpr int kNullCharCodeSymbolOffset
static StringPtr * PredefinedAddress()
LongJumpScope * long_jump_base() const
static uword full_safepoint_state_unacquired()
static intptr_t OffsetFromThread(const Object &object)
static Thread * Current()
@ kExitThroughRuntimeCall
static bool CanLoadFromThread(const Object &object)
static uword full_safepoint_state_acquired()
static constexpr intptr_t kBytesPerElement
static TypePtr ObjectType()
intptr_t ElementSizeInBytes() const
static constexpr intptr_t kNullabilityMask
static constexpr intptr_t kTypeStateBits
static constexpr intptr_t kTypeStateShift
static constexpr intptr_t kMaxSizeTagInUnitsOfAlignment
static constexpr bool SizeFits(intptr_t size)
static constexpr uword encode(intptr_t size)
static constexpr intptr_t kIncrementalBarrierMask
static constexpr intptr_t kGenerationalBarrierMask
static constexpr intptr_t kBarrierOverlapShift
@ kNewOrEvacuationCandidateBit
@ kOldAndNotRememberedBit
static constexpr intptr_t kIsFunctionTypeParameterBit
static constexpr intptr_t kTypeClassIdShift
static bool IsInt(intptr_t N, T value)
static constexpr T RoundUp(T x, uintptr_t alignment, uintptr_t offset=0)
static constexpr bool IsAligned(T x, uintptr_t alignment, uintptr_t offset=0)
intptr_t argument_count() const
word OffsetFromThread() const
static intptr_t index_at_offset(intptr_t offset_in_bytes)
static word data_offset()
static const word kMaxElements
static bool TraceAllocation(const dart::Class &klass)
static bool HasTypeArgumentsField(const dart::Class &klass)
static intptr_t NumTypeArguments(const dart::Class &klass)
static uword GetInstanceSize(const dart::Class &handle)
static const word kNoTypeArguments
static bool HasCompressedPointers(const dart::Class &handle)
static classid_t GetId(const dart::Class &handle)
static intptr_t TypeArgumentsFieldOffset(const dart::Class &klass)
static word InstanceSize()
static const word kMaxElements
static word InstanceSize()
static word OffsetOf(const dart::Field &field)
static word OffsetOf(const dart::Field &field)
static word InstanceSize()
static word InstanceSize()
static word InstanceSize()
static word InstanceSize()
static word InstanceSize()
static word InstanceSize()
static word InstanceSize()
static bool IsAllocatableInNewSpace(intptr_t instance_size)
static word ExactnessIndexFor(word num_args)
static word TestEntryLengthFor(word num_args, bool exactness_check)
static word CodeIndexFor(word num_args)
static word TargetIndexFor(word num_args)
static word CountIndexFor(word num_args)
static word EntryPointIndexFor(word num_args)
static word ElementSizeFor(intptr_t cid)
static word NextFieldOffset()
static word first_field_offset()
static word InstanceSize()
static word native_fields_array_offset()
static word DataOffsetFor(intptr_t cid)
static const word kNonBarePayloadAlignment
static word InstanceSize()
static word UnalignedHeaderSize()
static const word kBarePayloadAlignment
static word InstanceSize()
static word NextFieldOffset()
static word InstanceSize()
static word InstanceSize()
static const word kSpreadFactor
static word InstanceSize()
static word InstanceSize()
static const uint8_t kNullable
static const uint8_t kNonNullable
static word NextFieldOffset()
static word InstanceSize()
static word tags_offset()
static word data_offset()
static const word kMaxNumFields
static const word kMaxFieldNamesIndex
static const word kNumFieldsMask
static const word kFieldNamesIndexShift
static const word kFieldNamesIndexMask
static word field_offset(intptr_t index)
static const word kMaxElements
static intptr_t field_index_at_offset(intptr_t offset_in_bytes)
static word function_offset(classid_t cid, bool sticky)
static word InstanceSize()
static const word kHashBits
static word InstanceSize()
static const word kNullCharCodeSymbolOffset
static const word kNumberOfOneCharCodeSymbols
static word stack_overflow_shared_stub_entry_point_offset(bool fpu_regs)
static word OffsetFromThread(const dart::Object &object)
static uword full_safepoint_state_acquired()
static word AllocateArray_entry_point_offset()
static word object_null_offset()
static uword vm_tag_dart_id()
static uword exit_through_runtime_call()
static uword exit_through_ffi()
static word stack_overflow_shared_with_fpu_regs_entry_point_offset()
static word stack_overflow_shared_without_fpu_regs_entry_point_offset()
static uword native_execution_state()
static uword generated_execution_state()
static uword vm_execution_state()
static uword full_safepoint_state_unacquired()
static word data_offset()
static word types_offset()
static word InstanceSize()
static word payload_offset()
static word InstanceSize()
static const word kNullabilityMask
static const word kTypeStateBits
static const word kTypeStateShift
static const word kTypeStateFinalizedInstantiated
static const word kGenerationalBarrierMask
static const word kSizeTagPos
static const word kBarrierOverlapShift
static const word kImmutableBit
static const word kOldAndNotRememberedBit
static const word kHashTagPos
static const word kClassIdTagPos
static const word kCardRememberedBit
static const word kNotMarkedBit
static const word kCanonicalBit
static const word kClassIdTagSize
static const word kIncrementalBarrierMask
static const word kNewOrEvacuationCandidateBit
static const word kSizeTagMaxSizeTag
static const word kHashTagSize
static const word kSizeTagSize
static const word kTagBitsSizeTagPos
static const word kIsFunctionTypeParameterBit
static const word kTypeClassIdShift
static word InstanceSize()
static word InstanceSize()
static word TranslateOffsetInWords(word offset)
JIT_OFFSETS_LIST(DEFINE_JIT_FIELD, DEFINE_JIT_ARRAY, DEFINE_JIT_SIZEOF, DEFINE_ARRAY_SIZEOF, DEFINE_PAYLOAD_SIZEOF, DEFINE_JIT_RANGE, DEFINE_CONSTANT) AOT_OFFSETS_LIST(DEFINE_AOT_FIELD
uword MakeTagWordForNewSpaceObject(classid_t cid, uword instance_size)
bool WillAllocateNewOrRememberedContext(intptr_t num_context_variables)
static uword GetInstanceSizeImpl(const dart::Class &handle)
static word TranslateOffsetInWordsToHost(word offset)
void UnboxFieldIfSupported(const dart::Field &field, const dart::AbstractType &type)
bool CanLoadFromThread(const dart::Object &object, intptr_t *offset)
bool WillAllocateNewOrRememberedArray(intptr_t length)
bool IsTypedDataClassId(intptr_t cid)
double DoubleValue(const dart::Object &a)
word ToRawSmi(const dart::Object &a)
static constexpr intptr_t kWordSize
bool IsDouble(const dart::Object &a)
static constexpr intptr_t kCompressedWordSize
bool SizeFitsInSizeTag(uword instance_size)
constexpr intptr_t kSmiBits
bool WillAllocateNewOrRememberedObject(intptr_t instance_size)
word SmiValue(const dart::Object &a)
static DART_FORCE_INLINE bool BareInstructionsPayloads()
const word kPageSizeInWords
intptr_t RoundedAllocationSize(intptr_t size)
const Type & ObjectType()
void BailoutWithBranchOffsetError()
const Field & LookupConvertUtf8DecoderScanFlagsField()
const Class & Int32x4Class()
Object & NewZoneHandle(Zone *zone)
static constexpr intptr_t kHostWordSize
const Class & Float64x2Class()
bool IsBoolType(const AbstractType &type)
word LookupFieldOffsetInBytes(const Field &field)
word TypedDataMaxNewSpaceElements(classid_t cid)
const Class & GrowableObjectArrayClass()
const Class & Float32x4Class()
intptr_t ObjectHash(const Object &obj)
word TypedDataElementSizeInBytes(classid_t cid)
bool IsOriginalObject(const Object &object)
int32_t CreateJitCookie()
void SetToNull(Object *obj)
const String & AllocateString(const char *buffer)
const Array & ArgumentsDescriptorBoxed(intptr_t type_args_len, intptr_t num_arguments)
const Code & StubCodeSubtype2TestCache()
const Bool & TrueObject()
bool IsDoubleType(const AbstractType &type)
const Code & StubCodeSubtype6TestCache()
const Code & StubCodeSubtype7TestCache()
const Code & StubCodeSubtype3TestCache()
bool IsInOldSpace(const Object &obj)
const Object & SentinelObject()
bool IsEqualType(const AbstractType &a, const AbstractType &b)
bool IsSubtypeOfInt(const AbstractType &type)
bool IsSameObject(const Object &a, const Object &b)
const Class & ClosureClass()
const Bool & FalseObject()
const Object & NullObject()
const Class & DoubleClass()
const Field & LookupMathRandomStateFieldOffset()
const Object & EmptyTypeArguments()
bool IsSmiType(const AbstractType &type)
const char * ObjectToCString(const Object &obj)
const Code & StubCodeAllocateArray()
const Class & MintClass()
const Code & StubCodeSubtype4TestCache()
bool HasIntegerValue(const dart::Object &object, int64_t *value)
const Type & DynamicType()
static constexpr intptr_t kNullIdentityHash
bool IsTypedDataViewClassId(intptr_t index)
bool IsTypedDataClassId(intptr_t index)
static constexpr intptr_t kPageSize
bool IsUnmodifiableTypedDataViewClassId(intptr_t index)
@ kUnmodifiableByteDataViewCid
bool IsAllocatableInNewSpace(intptr_t size)
static constexpr intptr_t kCompressedWordSize
constexpr intptr_t kWordSize
static constexpr intptr_t kPageMask
static constexpr intptr_t kNewAllocatableSize
bool IsExternalTypedDataClassId(intptr_t index)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace buffer
#define DEFINE_JIT_SIZEOF(clazz, name, what)
#define DEFINE_ARRAY(clazz, name)
#define DEFINE_CONSTANT(Class, Name)
#define DEFINE_ALIAS(name)
#define DEFINE_AOT_FIELD(clazz, name)
#define DEFINE_FIELD(clazz, name)
#define HANDLE_CASE(clazz)
#define DEFINE_JIT_RANGE(Class, Getter, Type, First, Last, Filter)
#define DEFINE_JIT_ARRAY(clazz, name)
#define DEFINE_RANGE(Class, Getter, Type, First, Last, Filter)
#define DEFINE_JIT_FIELD(clazz, name)
#define DEFINE_SIZEOF(clazz, name, what)
#define RUNTIME_ENTRY_LIST(V)
#define LEAF_RUNTIME_ENTRY_LIST(V)
#define AOT_OFFSETS_LIST(FIELD, ARRAY, SIZEOF, ARRAY_SIZEOF, PAYLOAD_SIZEOF, RANGE, CONSTANT)
#define COMMON_OFFSETS_LIST(FIELD, ARRAY, SIZEOF, ARRAY_SIZEOF, PAYLOAD_SIZEOF, RANGE, CONSTANT)
static constexpr intptr_t kObjectAlignment