Version 2.14.0-356.0.dev Merge commit 'c49560cd3724e63336e002ce945d78c1bb0ab6c6' into 'dev'
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart index 264bbc2..3555b29 100644 --- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart +++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -703,7 +703,8 @@ if (count == 0) { push(NullValue.Metadata); } else { - push(const GrowableList<Expression>().pop(stack, count) ?? + push(const GrowableList<Expression>() + .popNonNullable(stack, count, dummyExpression) ?? NullValue.Metadata /* Ignore parser recovery */); } }
diff --git a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart index e11111a..946ce03 100644 --- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart +++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -6343,9 +6343,10 @@ Set<Field?>? enumFields; if (expressionType is InterfaceType && expressionType.classNode.isEnum) { - enumFields = expressionType.classNode.fields - .where((Field field) => field.isConst && field.type == expressionType) - .toSet(); + enumFields = <Field?>{ + ...expressionType.classNode.fields.where( + (Field field) => field.isConst && field.type == expressionType) + }; if (expressionType.isPotentiallyNullable) { enumFields.add(null); }
diff --git a/runtime/platform/utils.h b/runtime/platform/utils.h index a1d6b1b..84366eb 100644 --- a/runtime/platform/utils.h +++ b/runtime/platform/utils.h
@@ -417,34 +417,26 @@ return ((-0x20000000000000LL <= value) && (value <= 0x20000000000000LL)); } - static constexpr uword NBitMaskUnsafe(uint32_t n) { - static_assert((sizeof(uword) * kBitsPerByte) == kBitsPerWord, - "Unexpected uword size"); - return n == kBitsPerWord ? std::numeric_limits<uword>::max() - : (static_cast<uword>(1) << n) - 1; - } - // The lowest n bits are 1, the others are 0. - static uword NBitMask(uint32_t n) { - ASSERT(n <= kBitsPerWord); - return NBitMaskUnsafe(n); - } - - static word SignedNBitMask(uint32_t n) { - uword mask = NBitMask(n); - return bit_cast<word>(mask); + template <typename T = uword> + static constexpr T NBitMask(size_t n) { + using Unsigned = typename std::make_unsigned<T>::type; + constexpr size_t kBitsPerT = sizeof(T) * kBitsPerByte; + assert(n <= sizeof(T) * kBitsPerT); + return static_cast<T>(n == kBitsPerT ? std::numeric_limits<Unsigned>::max() + : (static_cast<Unsigned>(1) << n) - 1); } template <typename T = uword> - static T Bit(uint32_t n) { + static constexpr T Bit(size_t n) { ASSERT(n < sizeof(T) * kBitsPerByte); T bit = 1; return bit << n; } template <typename T> - DART_FORCE_INLINE static bool TestBit(T mask, intptr_t position) { - ASSERT(position < static_cast<intptr_t>(sizeof(T) * kBitsPerByte)); + static constexpr bool TestBit(T mask, size_t position) { + ASSERT(position < sizeof(T) * kBitsPerByte); return ((mask >> position) & 1) != 0; }
diff --git a/runtime/vm/clustered_snapshot.cc b/runtime/vm/clustered_snapshot.cc index 4a6ac6b..b7e0aef 100644 --- a/runtime/vm/clustered_snapshot.cc +++ b/runtime/vm/clustered_snapshot.cc
@@ -5583,6 +5583,7 @@ DECLARE_OBJECT_STORE_FIELD, DECLARE_OBJECT_STORE_FIELD, DECLARE_OBJECT_STORE_FIELD, + DECLARE_OBJECT_STORE_FIELD, DECLARE_OBJECT_STORE_FIELD) #undef DECLARE_OBJECT_STORE_FIELD };
diff --git a/runtime/vm/code_descriptors.h b/runtime/vm/code_descriptors.h index 0d15c38..ac29be7 100644 --- a/runtime/vm/code_descriptors.h +++ b/runtime/vm/code_descriptors.h
@@ -209,7 +209,7 @@ using ArgField = BitField<int32_t, int32_t, OpField::kNextBit>; static constexpr int32_t kMaxArgValue = - Utils::NBitMaskUnsafe(ArgField::bitsize() - 1); + Utils::NBitMask<int32_t>(ArgField::bitsize() - 1); static constexpr int32_t kMinArgValue = ~kMaxArgValue; static constexpr int32_t kSignBits = static_cast<uint32_t>(kMinArgValue) << 1; };
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc index 14d118a..35ca895 100644 --- a/runtime/vm/compiler/aot/precompiler.cc +++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -612,7 +612,6 @@ IG->object_store()->set_pragma_name(null_field); IG->object_store()->set_pragma_options(null_field); IG->object_store()->set_completer_class(null_class); - IG->object_store()->set_symbol_class(null_class); IG->object_store()->set_compiletime_error_class(null_class); IG->object_store()->set_growable_list_factory(null_function); IG->object_store()->set_simple_instance_of_function(null_function);
diff --git a/runtime/vm/compiler/backend/il_arm.cc b/runtime/vm/compiler/backend/il_arm.cc index 0c07ad2..5ede916 100644 --- a/runtime/vm/compiler/backend/il_arm.cc +++ b/runtime/vm/compiler/backend/il_arm.cc
@@ -779,8 +779,8 @@ const intptr_t kCpuRegistersToPreserve = kDartAvailableCpuRegs & ~kNonChangeableInputRegs; const intptr_t kFpuRegistersToPreserve = - Utils::SignedNBitMask(kNumberOfFpuRegisters) & - ~(Utils::SignedNBitMask(kAbiPreservedFpuRegCount) + Utils::NBitMask<intptr_t>(kNumberOfFpuRegisters) & + ~(Utils::NBitMask<intptr_t>(kAbiPreservedFpuRegCount) << kAbiFirstPreservedFpuReg) & ~(1 << FpuTMP);
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc index d8cebd7..9484c260 100644 --- a/runtime/vm/compiler/backend/il_arm64.cc +++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -699,7 +699,7 @@ const intptr_t kCpuRegistersToPreserve = kDartAvailableCpuRegs & ~kNonChangeableInputRegs; const intptr_t kFpuRegistersToPreserve = - Utils::SignedNBitMask(kNumberOfFpuRegisters) & ~(1l << FpuTMP); + Utils::NBitMask<intptr_t>(kNumberOfFpuRegisters) & ~(1l << FpuTMP); const intptr_t kNumTemps = (Utils::CountOneBits64(kCpuRegistersToPreserve) + Utils::CountOneBits64(kFpuRegistersToPreserve));
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h index e1f330e..99f76c0 100644 --- a/runtime/vm/compiler/runtime_offsets_extracted.h +++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -195,16 +195,16 @@ IsolateGroup_cached_class_table_table_offset = 16; static constexpr dart::compiler::target::word Isolate_single_step_offset = 36; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 12; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 24; + LinkedHashBase_deleted_keys_offset = 20; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 12; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8; + 8; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 24; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 4; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 20; + 16; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 8; @@ -220,11 +220,12 @@ 12; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 176; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 116; + 184; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 124; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 204; -static constexpr dart::compiler::target::word ObjectStore_type_type_offset = 96; + 212; +static constexpr dart::compiler::target::word ObjectStore_type_type_offset = + 104; static constexpr dart::compiler::target::word OneByteString_data_offset = 12; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8; @@ -737,16 +738,16 @@ IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word Isolate_single_step_offset = 72; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 24; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 48; + LinkedHashBase_deleted_keys_offset = 40; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 24; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16; + 16; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 48; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 40; + 32; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 16; @@ -762,12 +763,12 @@ 24; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 352; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 232; + 368; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 248; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 408; + 424; static constexpr dart::compiler::target::word ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word OneByteString_data_offset = 16; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = @@ -1285,16 +1286,16 @@ IsolateGroup_cached_class_table_table_offset = 16; static constexpr dart::compiler::target::word Isolate_single_step_offset = 36; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 12; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 24; + LinkedHashBase_deleted_keys_offset = 20; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 12; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8; + 8; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 24; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 4; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 20; + 16; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 8; @@ -1310,11 +1311,12 @@ 12; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 176; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 116; + 184; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 124; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 204; -static constexpr dart::compiler::target::word ObjectStore_type_type_offset = 96; + 212; +static constexpr dart::compiler::target::word ObjectStore_type_type_offset = + 104; static constexpr dart::compiler::target::word OneByteString_data_offset = 12; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8; @@ -1824,16 +1826,16 @@ IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word Isolate_single_step_offset = 72; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 24; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 48; + LinkedHashBase_deleted_keys_offset = 40; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 24; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16; + 16; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 48; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 40; + 32; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 16; @@ -1849,12 +1851,12 @@ 24; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 352; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 232; + 368; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 248; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 408; + 424; static constexpr dart::compiler::target::word ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word OneByteString_data_offset = 16; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = @@ -2373,16 +2375,16 @@ IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word Isolate_single_step_offset = 72; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 28; + LinkedHashBase_deleted_keys_offset = 24; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 16; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12; + 12; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 28; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 24; + 20; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 16; @@ -2398,12 +2400,12 @@ 24; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 352; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 232; + 368; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 248; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 408; + 424; static constexpr dart::compiler::target::word ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word OneByteString_data_offset = 16; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = @@ -2921,16 +2923,16 @@ IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word Isolate_single_step_offset = 72; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 28; + LinkedHashBase_deleted_keys_offset = 24; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 16; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12; + 12; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 28; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 24; + 20; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 16; @@ -2946,12 +2948,12 @@ 24; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 352; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 232; + 368; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 248; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 408; + 424; static constexpr dart::compiler::target::word ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word OneByteString_data_offset = 16; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = @@ -3466,16 +3468,16 @@ static constexpr dart::compiler::target::word IsolateGroup_cached_class_table_table_offset = 16; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 12; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 24; + LinkedHashBase_deleted_keys_offset = 20; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 12; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8; + 8; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 24; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 4; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 20; + 16; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 8; @@ -3491,11 +3493,12 @@ 12; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 176; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 116; + 184; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 124; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 204; -static constexpr dart::compiler::target::word ObjectStore_type_type_offset = 96; + 212; +static constexpr dart::compiler::target::word ObjectStore_type_type_offset = + 104; static constexpr dart::compiler::target::word OneByteString_data_offset = 12; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8; @@ -4002,16 +4005,16 @@ static constexpr dart::compiler::target::word IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 24; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 48; + LinkedHashBase_deleted_keys_offset = 40; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 24; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16; + 16; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 48; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 40; + 32; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 16; @@ -4027,12 +4030,12 @@ 24; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 352; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 232; + 368; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 248; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 408; + 424; static constexpr dart::compiler::target::word ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word OneByteString_data_offset = 16; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = @@ -4544,16 +4547,16 @@ static constexpr dart::compiler::target::word IsolateGroup_cached_class_table_table_offset = 16; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 12; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 24; + LinkedHashBase_deleted_keys_offset = 20; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 12; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8; + 8; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 24; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 4; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 20; + 16; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 8; @@ -4569,11 +4572,12 @@ 12; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 176; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 116; + 184; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 124; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 204; -static constexpr dart::compiler::target::word ObjectStore_type_type_offset = 96; + 212; +static constexpr dart::compiler::target::word ObjectStore_type_type_offset = + 104; static constexpr dart::compiler::target::word OneByteString_data_offset = 12; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8; @@ -5077,16 +5081,16 @@ static constexpr dart::compiler::target::word IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 24; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 48; + LinkedHashBase_deleted_keys_offset = 40; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 24; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16; + 16; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 48; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 40; + 32; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 16; @@ -5102,12 +5106,12 @@ 24; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 352; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 232; + 368; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 248; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 408; + 424; static constexpr dart::compiler::target::word ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word OneByteString_data_offset = 16; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = @@ -5620,16 +5624,16 @@ static constexpr dart::compiler::target::word IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 28; + LinkedHashBase_deleted_keys_offset = 24; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 16; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12; + 12; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 28; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 24; + 20; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 16; @@ -5645,12 +5649,12 @@ 24; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 352; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 232; + 368; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 248; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 408; + 424; static constexpr dart::compiler::target::word ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word OneByteString_data_offset = 16; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = @@ -6162,16 +6166,16 @@ static constexpr dart::compiler::target::word IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32; -static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20; +static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16; static constexpr dart::compiler::target::word - LinkedHashBase_deleted_keys_offset = 28; + LinkedHashBase_deleted_keys_offset = 24; static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset = - 16; -static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12; + 12; +static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 28; static constexpr dart::compiler::target::word LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset = - 24; + 20; static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word MarkingStackBlock_pointers_offset = 16; @@ -6187,12 +6191,12 @@ 24; static constexpr dart::compiler::target::word NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word ObjectStore_double_type_offset = - 352; -static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 232; + 368; +static constexpr dart::compiler::target::word ObjectStore_int_type_offset = 248; static constexpr dart::compiler::target::word ObjectStore_string_type_offset = - 408; + 424; static constexpr dart::compiler::target::word ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word OneByteString_data_offset = 16; static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8; static constexpr dart::compiler::target::word Pointer_type_arguments_offset = @@ -6731,17 +6735,17 @@ 36; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 16; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 16; + 12; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 24; + AOT_LinkedHashBase_deleted_keys_offset = 20; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 12; + AOT_LinkedHashBase_hash_mask_offset = 8; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 8; + 24; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 4; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 20; + AOT_LinkedHashBase_used_data_offset = 16; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 8; @@ -6761,13 +6765,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 176; + AOT_ObjectStore_double_type_offset = 184; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 116; + 124; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 204; + AOT_ObjectStore_string_type_offset = 212; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 96; + 104; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 12; static constexpr dart::compiler::target::word @@ -7338,17 +7342,17 @@ 72; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 32; + 24; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 48; + AOT_LinkedHashBase_deleted_keys_offset = 40; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 24; + AOT_LinkedHashBase_hash_mask_offset = 16; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 16; + 48; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 40; + AOT_LinkedHashBase_used_data_offset = 32; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 16; @@ -7368,13 +7372,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 352; + AOT_ObjectStore_double_type_offset = 368; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 232; + 248; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 408; + AOT_ObjectStore_string_type_offset = 424; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 16; static constexpr dart::compiler::target::word @@ -7951,17 +7955,17 @@ 72; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 32; + 24; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 48; + AOT_LinkedHashBase_deleted_keys_offset = 40; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 24; + AOT_LinkedHashBase_hash_mask_offset = 16; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 16; + 48; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 40; + AOT_LinkedHashBase_used_data_offset = 32; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 16; @@ -7981,13 +7985,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 352; + AOT_ObjectStore_double_type_offset = 368; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 232; + 248; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 408; + AOT_ObjectStore_string_type_offset = 424; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 16; static constexpr dart::compiler::target::word @@ -8561,17 +8565,17 @@ 72; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 20; + 16; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 28; + AOT_LinkedHashBase_deleted_keys_offset = 24; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 16; + AOT_LinkedHashBase_hash_mask_offset = 12; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 12; + 28; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 24; + AOT_LinkedHashBase_used_data_offset = 20; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 16; @@ -8591,13 +8595,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 352; + AOT_ObjectStore_double_type_offset = 368; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 232; + 248; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 408; + AOT_ObjectStore_string_type_offset = 424; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 16; static constexpr dart::compiler::target::word @@ -9170,17 +9174,17 @@ 72; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 20; + 16; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 28; + AOT_LinkedHashBase_deleted_keys_offset = 24; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 16; + AOT_LinkedHashBase_hash_mask_offset = 12; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 12; + 28; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 24; + AOT_LinkedHashBase_used_data_offset = 20; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 16; @@ -9200,13 +9204,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 352; + AOT_ObjectStore_double_type_offset = 368; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 232; + 248; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 408; + AOT_ObjectStore_string_type_offset = 424; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 16; static constexpr dart::compiler::target::word @@ -9775,17 +9779,17 @@ AOT_IsolateGroup_cached_class_table_table_offset = 16; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 16; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 16; + 12; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 24; + AOT_LinkedHashBase_deleted_keys_offset = 20; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 12; + AOT_LinkedHashBase_hash_mask_offset = 8; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 8; + 24; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 4; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 20; + AOT_LinkedHashBase_used_data_offset = 16; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 8; @@ -9805,13 +9809,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 176; + AOT_ObjectStore_double_type_offset = 184; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 116; + 124; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 204; + AOT_ObjectStore_string_type_offset = 212; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 96; + 104; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 12; static constexpr dart::compiler::target::word @@ -10375,17 +10379,17 @@ AOT_IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 32; + 24; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 48; + AOT_LinkedHashBase_deleted_keys_offset = 40; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 24; + AOT_LinkedHashBase_hash_mask_offset = 16; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 16; + 48; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 40; + AOT_LinkedHashBase_used_data_offset = 32; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 16; @@ -10405,13 +10409,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 352; + AOT_ObjectStore_double_type_offset = 368; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 232; + 248; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 408; + AOT_ObjectStore_string_type_offset = 424; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 16; static constexpr dart::compiler::target::word @@ -10981,17 +10985,17 @@ AOT_IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 32; + 24; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 48; + AOT_LinkedHashBase_deleted_keys_offset = 40; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 24; + AOT_LinkedHashBase_hash_mask_offset = 16; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 16; + 48; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 40; + AOT_LinkedHashBase_used_data_offset = 32; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 16; @@ -11011,13 +11015,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 352; + AOT_ObjectStore_double_type_offset = 368; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 232; + 248; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 408; + AOT_ObjectStore_string_type_offset = 424; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 16; static constexpr dart::compiler::target::word @@ -11584,17 +11588,17 @@ AOT_IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 20; + 16; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 28; + AOT_LinkedHashBase_deleted_keys_offset = 24; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 16; + AOT_LinkedHashBase_hash_mask_offset = 12; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 12; + 28; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 24; + AOT_LinkedHashBase_used_data_offset = 20; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 16; @@ -11614,13 +11618,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 352; + AOT_ObjectStore_double_type_offset = 368; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 232; + 248; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 408; + AOT_ObjectStore_string_type_offset = 424; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 16; static constexpr dart::compiler::target::word @@ -12186,17 +12190,17 @@ AOT_IsolateGroup_cached_class_table_table_offset = 32; static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32; static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset = - 20; + 16; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_deleted_keys_offset = 28; + AOT_LinkedHashBase_deleted_keys_offset = 24; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_hash_mask_offset = 16; + AOT_LinkedHashBase_hash_mask_offset = 12; static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset = - 12; + 28; static constexpr dart::compiler::target::word AOT_LinkedHashBase_type_arguments_offset = 8; static constexpr dart::compiler::target::word - AOT_LinkedHashBase_used_data_offset = 24; + AOT_LinkedHashBase_used_data_offset = 20; static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0; static constexpr dart::compiler::target::word AOT_MarkingStackBlock_pointers_offset = 16; @@ -12216,13 +12220,13 @@ static constexpr dart::compiler::target::word AOT_NativeArguments_thread_offset = 0; static constexpr dart::compiler::target::word - AOT_ObjectStore_double_type_offset = 352; + AOT_ObjectStore_double_type_offset = 368; static constexpr dart::compiler::target::word AOT_ObjectStore_int_type_offset = - 232; + 248; static constexpr dart::compiler::target::word - AOT_ObjectStore_string_type_offset = 408; + AOT_ObjectStore_string_type_offset = 424; static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset = - 192; + 208; static constexpr dart::compiler::target::word AOT_OneByteString_data_offset = 16; static constexpr dart::compiler::target::word
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc index c52f156..e7fb75d 100644 --- a/runtime/vm/object.cc +++ b/runtime/vm/object.cc
@@ -18902,40 +18902,20 @@ return true; } -static ClassPtr EnsureSymbolClass(Thread* thread) { - ObjectStore* const store = thread->isolate_group()->object_store(); - - if (store->symbol_class() != Class::null()) { - return store->symbol_class(); - } - Zone* const zone = thread->zone(); - const auto& library = Library::Handle(zone, Library::InternalLibrary()); - const auto& symbol_class = - Class::Handle(zone, library.LookupClass(Symbols::Symbol())); - ASSERT(!symbol_class.IsNull()); - store->set_symbol_class(symbol_class); - return symbol_class.ptr(); -} - -bool Symbol::IsSymbolCid(classid_t class_id) { - Thread* const thread = Thread::Current(); - Zone* const zone = thread->zone(); - - Class& symbol_class = Class::Handle(zone, EnsureSymbolClass(thread)); - - return class_id == symbol_class.id(); +bool Symbol::IsSymbolCid(Thread* thread, classid_t class_id) { + auto object_store = thread->isolate_group()->object_store(); + return Class::GetClassId(object_store->symbol_class()) == class_id; } // Must be kept in sync with Symbol.hashCode in symbol_patch.dart -uint32_t Symbol::CanonicalizeHash(const Instance& instance) { - ASSERT(IsSymbolCid(instance.GetClassId())); +uint32_t Symbol::CanonicalizeHash(Thread* thread, const Instance& instance) { + ASSERT(IsSymbolCid(thread, instance.GetClassId())); - Thread* const thread = Thread::Current(); - Zone* const zone = thread->zone(); + auto zone = thread->zone(); + auto object_store = thread->isolate_group()->object_store(); - Class& symbol_class = Class::Handle(zone, EnsureSymbolClass(thread)); - const auto& symbol_name_field = Field::Handle( - zone, symbol_class.LookupInstanceFieldAllowPrivate(Symbols::_name())); + const auto& symbol_name_field = + Field::Handle(zone, object_store->symbol_name_field()); ASSERT(!symbol_name_field.IsNull()); // Keep in sync with sdk/lib/_internal/vm/lib/symbol_patch.dart. @@ -18956,10 +18936,12 @@ } Zone* zone = thread->zone(); const Class& cls = Class::Handle(zone, clazz()); + const bool is_symbol = Symbol::IsSymbolCid(thread, cls.id()); + NoSafepointScope no_safepoint(thread); - if (Symbol::IsSymbolCid(GetClassId())) { - hash = Symbol::CanonicalizeHash(*this); + if (is_symbol) { + hash = Symbol::CanonicalizeHash(thread, *this); } else { const intptr_t class_id = cls.id(); ASSERT(class_id != 0);
diff --git a/runtime/vm/object.h b/runtime/vm/object.h index 718d4ca..39b4940 100644 --- a/runtime/vm/object.h +++ b/runtime/vm/object.h
@@ -1328,8 +1328,7 @@ // Check if this class represents the 'Closure' class. bool IsClosureClass() const { return id() == kClosureCid; } static bool IsClosureClass(ClassPtr cls) { - NoSafepointScope no_safepoint; - return cls->untag()->id_ == kClosureCid; + return GetClassId(cls) == kClosureCid; } static bool IsInFullSnapshot(ClassPtr cls) { @@ -1338,6 +1337,11 @@ cls->untag()->library()->untag()->flags_); } + static intptr_t GetClassId(ClassPtr cls) { + NoSafepointScope no_safepoint; + return cls->untag()->id_; + } + // Returns true if the type specified by cls, type_arguments, and nullability // is a subtype of the other type. static bool IsSubtypeOf(const Class& cls, @@ -9123,9 +9127,9 @@ // TODO(http://dartbug.com/46716): Recognize Symbol in the VM. class Symbol : public AllStatic { public: - static bool IsSymbolCid(classid_t class_id); + static bool IsSymbolCid(Thread* thread, classid_t class_id); - static uint32_t CanonicalizeHash(const Instance& instance); + static uint32_t CanonicalizeHash(Thread* thread, const Instance& instance); }; // String may not be '\0' terminated.
diff --git a/runtime/vm/object_store.cc b/runtime/vm/object_store.cc index 9892d6f..ca90802 100644 --- a/runtime/vm/object_store.cc +++ b/runtime/vm/object_store.cc
@@ -121,9 +121,9 @@ Object& value = Object::Handle(); static const char* const names[] = { #define EMIT_FIELD_NAME(type, name) #name "_", - OBJECT_STORE_FIELD_LIST(EMIT_FIELD_NAME, EMIT_FIELD_NAME, - EMIT_FIELD_NAME, EMIT_FIELD_NAME, - EMIT_FIELD_NAME, EMIT_FIELD_NAME) + OBJECT_STORE_FIELD_LIST( + EMIT_FIELD_NAME, EMIT_FIELD_NAME, EMIT_FIELD_NAME, EMIT_FIELD_NAME, + EMIT_FIELD_NAME, EMIT_FIELD_NAME, EMIT_FIELD_NAME) #undef EMIT_FIELD_NAME }; ObjectPtr* current = from(); @@ -271,10 +271,6 @@ } } - const Library& internal_lib = Library::Handle(zone, _internal_library()); - cls = internal_lib.LookupClass(Symbols::Symbol()); - set_symbol_class(cls); - const Library& core_lib = Library::Handle(zone, core_library()); cls = core_lib.LookupClassAllowPrivate(Symbols::_CompileTimeError()); ASSERT(!cls.IsNull()); @@ -450,4 +446,29 @@ } } +void ObjectStore::LazyInitInternalMembers() { + auto* const thread = Thread::Current(); + SafepointWriteRwLocker locker(thread, + thread->isolate_group()->program_lock()); + if (symbol_class_.load() == Type::null()) { + ASSERT(symbol_name_field_.load() == Field::null()); + + auto* const zone = thread->zone(); + auto& cls = Class::Handle(zone); + auto& field = Field::Handle(zone); + + const auto& internal_lib = + Library::Handle(zone, Library::InternalLibrary()); + cls = internal_lib.LookupClass(Symbols::Symbol()); + ASSERT(!cls.IsNull()); + const auto& error = cls.EnsureIsFinalized(thread); + ASSERT(error == Error::null()); + symbol_class_.store(cls.ptr()); + + field = cls.LookupInstanceFieldAllowPrivate(Symbols::_name()); + ASSERT(!field.IsNull()); + symbol_name_field_.store(field.ptr()); + } +} + } // namespace dart
diff --git a/runtime/vm/object_store.h b/runtime/vm/object_store.h index 267ff50..cc50d4b 100644 --- a/runtime/vm/object_store.h +++ b/runtime/vm/object_store.h
@@ -37,22 +37,26 @@ // R_ - needs getter only // RW - needs getter and setter // ARW - needs getter and setter with atomic access -// CR - needs lazy Core init getter -// FR - needs lazy Async init getter -// IR - needs lazy Isolate init getter -#define OBJECT_STORE_FIELD_LIST(R_, RW, ARW, CR, FR, IR) \ - CR(Class, list_class) /* maybe be null, lazily built */ \ - CR(Type, non_nullable_list_rare_type) /* maybe be null, lazily built */ \ - CR(Type, non_nullable_map_rare_type) /* maybe be null, lazily built */ \ - CR(Function, _object_equals_function) /* maybe be null, lazily built */ \ - CR(Function, _object_hash_code_function) /* maybe be null, lazily built */ \ - CR(Function, _object_to_string_function) /* maybe be null, lazily built */ \ - FR(Type, non_nullable_future_rare_type) /* maybe be null, lazily built */ \ - FR(Type, non_nullable_future_never_type) /* maybe be null, lazily built */ \ - FR(Type, nullable_future_null_type) /* maybe be null, lazily built */ \ - IR(Function, lookup_port_handler) /* maybe be null, lazily built */ \ - IR(Function, lookup_open_ports) /* maybe be null, lazily built */ \ - IR(Function, handle_message_function) /* maybe be null, lazily built */ \ +// LAZY_CORE - needs lazy init getter for a "dart:core" member +// LAZY_ASYNC - needs lazy init getter for a "dart:async" member +// LAZY_ISOLATE - needs lazy init getter for a "dart:isolate" member +// LAZY_INTERNAL - needs lazy init getter for a "dart:_internal" member +#define OBJECT_STORE_FIELD_LIST(R_, RW, ARW, LAZY_CORE, LAZY_ASYNC, \ + LAZY_ISOLATE, LAZY_INTERNAL) \ + LAZY_CORE(Class, list_class) \ + LAZY_CORE(Type, non_nullable_list_rare_type) \ + LAZY_CORE(Type, non_nullable_map_rare_type) \ + LAZY_CORE(Function, _object_equals_function) \ + LAZY_CORE(Function, _object_hash_code_function) \ + LAZY_CORE(Function, _object_to_string_function) \ + LAZY_INTERNAL(Class, symbol_class) \ + LAZY_INTERNAL(Field, symbol_name_field) \ + LAZY_ASYNC(Type, non_nullable_future_rare_type) \ + LAZY_ASYNC(Type, non_nullable_future_never_type) \ + LAZY_ASYNC(Type, nullable_future_null_type) \ + LAZY_ISOLATE(Function, lookup_port_handler) \ + LAZY_ISOLATE(Function, lookup_open_ports) \ + LAZY_ISOLATE(Function, handle_message_function) \ RW(Class, object_class) \ RW(Type, object_type) \ RW(Type, legacy_object_type) \ @@ -116,7 +120,6 @@ RW(Field, pragma_options) \ RW(Class, future_class) \ RW(Class, completer_class) \ - RW(Class, symbol_class) \ RW(Class, one_byte_string_class) \ RW(Class, two_byte_string_class) \ RW(Class, external_one_byte_string_class) \ @@ -424,12 +427,15 @@ DECLARE_LAZY_INIT_GETTER(Type, name, LazyInitAsyncMembers) #define DECLARE_LAZY_INIT_ISOLATE_GETTER(Type, name) \ DECLARE_LAZY_INIT_GETTER(Type, name, LazyInitIsolateMembers) +#define DECLARE_LAZY_INIT_INTERNAL_GETTER(Type, name) \ + DECLARE_LAZY_INIT_GETTER(Type, name, LazyInitInternalMembers) OBJECT_STORE_FIELD_LIST(DECLARE_GETTER, DECLARE_GETTER_AND_SETTER, DECLARE_ATOMIC_GETTER_AND_SETTER, DECLARE_LAZY_INIT_CORE_GETTER, DECLARE_LAZY_INIT_ASYNC_GETTER, - DECLARE_LAZY_INIT_ISOLATE_GETTER) + DECLARE_LAZY_INIT_ISOLATE_GETTER, + DECLARE_LAZY_INIT_INTERNAL_GETTER) #undef DECLARE_OFFSET #undef DECLARE_GETTER #undef DECLARE_GETTER_AND_SETTER @@ -438,6 +444,7 @@ #undef DECLARE_LAZY_INIT_CORE_GETTER #undef DECLARE_LAZY_INIT_ASYNC_GETTER #undef DECLARE_LAZY_INIT_ISOLATE_GETTER +#undef DECLARE_LAZY_INIT_INTERNAL_GETTER LibraryPtr bootstrap_library(BootstrapLibraryId index) { switch (index) { @@ -488,6 +495,7 @@ void LazyInitCoreMembers(); void LazyInitAsyncMembers(); void LazyInitIsolateMembers(); + void LazyInitInternalMembers(); // Finds a core library private method in Object. FunctionPtr PrivateObjectLookup(const String& name); @@ -503,6 +511,7 @@ DECLARE_ATOMIC_OBJECT_STORE_FIELD, DECLARE_LAZY_OBJECT_STORE_FIELD, DECLARE_LAZY_OBJECT_STORE_FIELD, + DECLARE_LAZY_OBJECT_STORE_FIELD, DECLARE_LAZY_OBJECT_STORE_FIELD) #undef DECLARE_OBJECT_STORE_FIELD #undef DECLARE_ATOMIC_OBJECT_STORE_FIELD
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h index 3f7adfe..ac076be 100644 --- a/runtime/vm/raw_object.h +++ b/runtime/vm/raw_object.h
@@ -3011,13 +3011,17 @@ COMPRESSED_POINTER_FIELD(TypeArgumentsPtr, type_arguments) VISIT_FROM(type_arguments) - COMPRESSED_POINTER_FIELD(TypedDataPtr, index) COMPRESSED_POINTER_FIELD(SmiPtr, hash_mask) COMPRESSED_POINTER_FIELD(ArrayPtr, data) COMPRESSED_POINTER_FIELD(SmiPtr, used_data) COMPRESSED_POINTER_FIELD(SmiPtr, deleted_keys) - VISIT_TO(deleted_keys) - CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); } + COMPRESSED_POINTER_FIELD(TypedDataPtr, index) + VISIT_TO(index) + + CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { + // Do not serialize index. + return reinterpret_cast<CompressedObjectPtr*>(&deleted_keys_); + } }; class UntaggedLinkedHashMap : public UntaggedLinkedHashBase {
diff --git a/runtime/vm/v8_snapshot_writer.h b/runtime/vm/v8_snapshot_writer.h index 644a2e0..c69abdc 100644 --- a/runtime/vm/v8_snapshot_writer.h +++ b/runtime/vm/v8_snapshot_writer.h
@@ -58,7 +58,8 @@ private: static constexpr size_t kIdSpaceBits = Utils::BitLength(static_cast<int64_t>(IdSpace::kArtificial)); - static constexpr int64_t kIdSpaceMask = Utils::NBitMaskUnsafe(kIdSpaceBits); + static constexpr int64_t kIdSpaceMask = + Utils::NBitMask<int64_t>(kIdSpaceBits); static const char* IdSpaceToCString(IdSpace space); int64_t encoded_;
diff --git a/tests/co19_2/co19_2-co19.status b/tests/co19_2/co19_2-co19.status index c281e44..3d7b0c2 100644 --- a/tests/co19_2/co19_2-co19.status +++ b/tests/co19_2/co19_2-co19.status
@@ -2,5 +2,9 @@ # 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. -[ $compiler != fasta ] - +Language/Generics/Superbounded_types/typedef1_A01_t03: SkipByDesign # https://github.com/dart-lang/sdk/issues/46483 +Language/Generics/Superbounded_types/typedef1_A01_t04: SkipByDesign # https://github.com/dart-lang/sdk/issues/46483 +Language/Generics/Superbounded_types/typedef2_A01_t04: SkipByDesign # https://github.com/dart-lang/sdk/issues/46483 +Language/Generics/typedef_A08_t02: SkipByDesign # https://github.com/dart-lang/sdk/issues/46483 +Language/Generics/typedef_A08_t03: SkipByDesign # https://github.com/dart-lang/sdk/issues/46483 +Language/Generics/typedef_A08_t04: SkipByDesign # https://github.com/dart-lang/sdk/issues/46483
diff --git a/tests/co19_2/co19_2-dart2js.status b/tests/co19_2/co19_2-dart2js.status index 5ba60fe..5c38055 100644 --- a/tests/co19_2/co19_2-dart2js.status +++ b/tests/co19_2/co19_2-dart2js.status
@@ -6,6 +6,7 @@ Language/Expressions/Null/instance_of_class_null_t01: SkipByDesign # dart:mirrors not supported https://github.com/dart-lang/co19/issues/522. Language/Expressions/Numbers/syntax_t06: SkipByDesign # uses integer literal not representable as JavaScript number Language/Expressions/Numbers/syntax_t09: SkipByDesign # uses integer literal not representable as JavaScript number +Language/Expressions/Object_Identity/object_t02: SkipByDesign # https://github.com/dart-lang/sdk/issues/42222#issuecomment-640431711 Language/Expressions/Spawning_an_Isolate/new_isolate_t01: SkipByDesign Language/Functions/External_Functions/not_connected_to_a_body_t01: SkipByDesign # Non-JS-interop external members are not supported Language/Libraries_and_Scripts/Scripts/top_level_syntax_t01: SkipByDesign # Non-JS-interop external members are not supported
diff --git a/tools/VERSION b/tools/VERSION index 0149fdb..69aef05 100644 --- a/tools/VERSION +++ b/tools/VERSION
@@ -27,5 +27,5 @@ MAJOR 2 MINOR 14 PATCH 0 -PRERELEASE 355 +PRERELEASE 356 PRERELEASE_PATCH 0 \ No newline at end of file