mirror of
https://github.com/radareorg/r2flutter.git
synced 2026-11-08 07:28:14 -10:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
788644990e | ||
|
|
c0569e58e3 |
No files matched your search
+48
-19
@@ -1048,9 +1048,9 @@ such as `3.8.1` selects the static profile for that version.
|
||||
## Offset Table Management
|
||||
|
||||
**Finding**: The offset arrays (`code_entry_point_offsets`, `code_owner_offsets`,
|
||||
`function_name_offsets`) are **identical across all 40 known Dart versions**
|
||||
(2.10.0–3.12.1). They are stored once under a top-level `defaults` key in
|
||||
`offsets.json` and hardcoded as fallback in `init_layout_hints()` in
|
||||
`function_name_offsets`) are **identical across the known Dart versions**
|
||||
(`2.10.0`-`3.12.2`). They are stored once under a top-level `defaults` key in
|
||||
`offsets.json` and hardcoded as fallback in `init_layout_hints ()` in
|
||||
`dart_pool_names.c`.
|
||||
|
||||
**Maintenance workflow**:
|
||||
@@ -1065,29 +1065,28 @@ such as `3.8.1` selects the static profile for that version.
|
||||
`./scripts/update-dart-version --hash <md5> 3.13.0`
|
||||
|
||||
4. **Regenerating all tables** from known data:
|
||||
`./scripts/update-dart-version --regenerate`
|
||||
`./scripts/update-dart-version --generate`
|
||||
|
||||
5. **Preview without writing**:
|
||||
`./scripts/update-dart-version --dry-run 3.13.0`
|
||||
5. **Syncing stable Dart SDK tags**:
|
||||
`./scripts/update-dart-version --sync-stable-tags --min-version 2.10.0`
|
||||
|
||||
6. **List known versions**:
|
||||
`./scripts/update-dart-version --list`
|
||||
|
||||
**Data sources**:
|
||||
- `offsets.json` — per-hash metadata (compressed_word_size, heap_object_tag,
|
||||
max_alignment, it_cap) + top-level defaults for offset arrays
|
||||
- `src/lib/dart_version.c` — `known_hashes[]` (hash→version mapping) and
|
||||
`version_profiles[]` (version→CID table)
|
||||
- `third_party/unflutter/internal/snapshot/version.go` — Go reference
|
||||
implementation (most complete CID table)
|
||||
- `offsets.json` — the source of truth. `hashes` maps snapshot MD5 values to
|
||||
exact Dart version strings, while `profiles` is range-keyed by the first
|
||||
version that introduced a layout/CID tuple.
|
||||
- `src/lib/dart_version.c` — generated `known_hashes[]` plus range-start
|
||||
`version_profiles[]`.
|
||||
- `src/lib/dart_cid.c` — generated range-start CID tables.
|
||||
- `third_party/sdk/runtime/vm/class_id.h` — Dart SDK source defining CID enum
|
||||
values
|
||||
values.
|
||||
|
||||
**Key insight**: The offset arrays have never changed across any known Dart
|
||||
version. The only per-version variables are `compressed_word_size` (4 or 8),
|
||||
the CID numbers, and the tag encoding style. This means the fallback path
|
||||
(unknown hash → default offsets + v3.9.2 CID table) is now correct and
|
||||
functional.
|
||||
**Key insight**: A Dart version `V` uses the profile with the greatest
|
||||
range-start key `<= V`. Most new Dart patch releases therefore add only one
|
||||
line under `hashes`; a new `profiles` line is needed only when the layout or CID
|
||||
table actually changes. Unknown hashes still use the hardcoded modern fallback.
|
||||
|
||||
## The `first` Android Fixture Uses ObjectHeader Tags
|
||||
|
||||
@@ -1097,4 +1096,34 @@ bits. For example, the tagged object `0x1651` points at `0x1650`, whose header
|
||||
decodes CID `93` only via `(header >> 12) & 0xfffff`; interpreting it as
|
||||
`CID_SHIFT1` makes `-O` report an unresolved raw value. Keep the `2.18.2`
|
||||
profile as `OBJECT_HEADER` unless another fixture proves a hash-specific split
|
||||
is needed.
|
||||
is needed. The standalone `dart-lang/sdk` `2.18.2` tag also has a different CID
|
||||
table (`String=90`, `NumPredefinedCids=159`) from this Flutter-engine fixture,
|
||||
so the generator keeps `2.18.2` on the `3.9.2`-shaped fallback CID table used by
|
||||
the sample. This is documented as a Flutter-engine snapshot quirk, not as
|
||||
standalone Dart SDK `2.18.2` CID data.
|
||||
|
||||
## Dart SDK Stable Tag Refresh
|
||||
|
||||
Running `scripts/update-dart-version --sync-stable-tags --min-version 2.10.0`
|
||||
against `dart-lang/sdk` found 118 stable numeric tags from `2.10.0` through
|
||||
`3.12.2`. In expanded form those tags collapse to 19 range profiles and 61
|
||||
distinct hashes. The duplicate-hash aliases all had matching CID signatures, so
|
||||
a hash can still map to one representative version without losing CID
|
||||
correctness for explicit version overrides.
|
||||
|
||||
The only profile mismatch against the current inference rules is still
|
||||
`2.18.2`: the source-derived default would be `CID_SHIFT1`, but the in-tree
|
||||
Android fixture needs `OBJECT_HEADER`. Keep preserving existing profiles during
|
||||
batch syncs unless a fixture proves the inferred profile is better. The same
|
||||
fixture also needs a CID-table alias because the standalone SDK tag's CID table
|
||||
does not match the Flutter-engine snapshot.
|
||||
|
||||
The previous sync parser did not understand Dart `3.12.x`'s `CLASS_ID_LIST`
|
||||
macro form and emitted an empty CID table for `3.12.0+`. The parser now expands
|
||||
that macro form; Dart `3.12.x` floors to the same modern CID family as `3.9.x`
|
||||
(`String=93`, `ObjectPool=23`, `NumPredefinedCids=175`).
|
||||
|
||||
Older tags `2.10.0` through `2.14.4` do not contain `runtime/vm/app_snapshot.cc`
|
||||
or `runtime/vm/app_snapshot.h`. The generator reports those missing hash inputs
|
||||
and computes the MD5 from the files present in that tag, matching the existing
|
||||
script behavior for local SDK checkouts.
|
||||
@@ -12,20 +12,31 @@ typedef struct {
|
||||
} DartHashEntry;
|
||||
|
||||
static const DartHashEntry dart_hash_entries[] = {
|
||||
{ "0c7f1aa25fc597a7b3b9a19ed390afa1", 8 }, // Dart 2.13.0
|
||||
{ "0eb277b50d6ce4069261c69150ce52c9", 4 }, // Dart 2.17.0
|
||||
{ "1441d6b13b8623fa7fbf61433abebd31", 4 }, // Dart 2.17.6
|
||||
{ "16ad76edd19b537bf6ea64fdd31977a7", 4 }, // Dart 3.0.5
|
||||
{ "1ce86630892e2dca9a8543fdb8ed8e22", 4 }, // Dart 3.10.7
|
||||
{ "24d9d411c2f90c8fbe8907f99e89d4b0", 8 }, // Dart 2.15.0
|
||||
{ "2858c2c0920495f00b9bce9edf6a8cd9", 4 }, // Dart 3.6.2
|
||||
{ "287683014dfbd311f6400c655c97a26d", 4 }, // Dart 2.18.6
|
||||
{ "30c051cb9192f6d6812be3f0b87a6356", 4 }, // Dart 3.6.0
|
||||
{ "3318fe66091c0ffbb64faec39976cb7d", 8 }, // Dart 2.16.0
|
||||
{ "34f6eec64e9371856eaaa278ccf56538", 8 }, // Dart 2.13.0
|
||||
{ "36b0375d284ee2af0d0fffc6e6e48fde", 4 }, // Dart 3.0.5
|
||||
{ "41be3daaabd524b8aa7423bc24584957", 4 }, // Dart 3.12.0
|
||||
{ "501ef5cbd64ca70b6b42672346af6a8a", 4 }, // Dart 2.19.0
|
||||
{ "5191d02bb1d36a9f8609aa7495894e76", 4 }, // Dart 3.1.0
|
||||
{ "6093345773c65683f60c20c8e62cbe4a", 8 }, // Dart 2.16.0
|
||||
{ "617d044d9faa87a98c29f8aad5d2f220", 4 }, // Dart 3.0.3
|
||||
{ "659a72e41e3276e882709901c27de33d", 8 }, // Dart 2.14.0
|
||||
{ "6a9b5a03a7e784a4558b10c769f188d9", 4 }, // Dart 2.18.0
|
||||
{ "71dcc635f2e5dca494525aa13ca9006b", 4 }, // Dart 3.5.0
|
||||
{ "77b867742ae1ace67fbbb9a9a0d0334e", 4 }, // Dart 3.3.0
|
||||
{ "77bd0a83c49bfc555a44a0740f15003a", 4 }, // Dart 2.18.0
|
||||
{ "78da37fed6bf1489361a312568249f3f", 4 }, // Dart 3.11.5
|
||||
{ "7a5b240780941844bae88eca5dbaa7b8", 8 }, // Dart 2.13.0
|
||||
{ "7b96ef6dda75bdd1d70be8c2f7cb814e", 8 }, // Dart 2.15.0
|
||||
{ "7dbbeeb8ef7b91338640dca3927636de", 4 }, // Dart 3.1.3
|
||||
{ "80a49c7111088100a233b2ae788e1f48", 4 }, // Dart 3.5.0
|
||||
{ "830f4f59e7969c70b595182826435c19", 4 }, // Dart 3.8.1
|
||||
@@ -34,27 +45,37 @@ static const DartHashEntry dart_hash_entries[] = {
|
||||
{ "90b56a561f70cd55e972cb49b79b3d8b", 4 }, // Dart 3.0.5
|
||||
{ "97ff04a728735e6b6b098bdf983faaba", 4 }, // Dart 3.9.2
|
||||
{ "9cf77f4405212c45daf608e1cd646852", 8 }, // Dart 2.14.0
|
||||
{ "9d6362266b78e4198f784da1a28fd82b", 8 }, // Dart 3.2.0
|
||||
{ "a0cb0c928b23bc17a26e062b351dc44d", 4 }, // Dart 2.17.6
|
||||
{ "aa64af18e7d086041ac127cc4bc50c5e", 4 }, // Dart 3.0.5
|
||||
{ "ace654289f5abc240509fc941453ebc5", 4 }, // Dart 3.12.1
|
||||
{ "adb4292f3ec25074ca70abcd2d5c7251", 4 }, // Dart 2.19.0
|
||||
{ "adf563436d12ba0d50ea5beb7f3be1bb", 8 }, // Dart 2.16.0
|
||||
{ "afcf461a16dfa5e88f88a2aa68764c99", 4 }, // Dart 2.19.0
|
||||
{ "b0e899ec5a90e4661501f0b69e9dd70f", 4 }, // Dart 2.18.0
|
||||
{ "b6d0a1f034d158b0d37b51d559379697", 4 }, // Dart 2.18.0
|
||||
{ "bae16a6858d8c0fe2c437b275eb807cd", 4 }, // Dart 3.7.0
|
||||
{ "c03fb294bfdaca2b44c552ad35e52d45", 8 }, // Dart 2.14.0
|
||||
{ "cda356e9bae476c70de33809fd92e009", 4 }, // Dart 3.5.0
|
||||
{ "ce5d37cf26ea4faac543cd216f3b96d1", 4 }, // Dart 3.0.0
|
||||
{ "d20a1be77c3d3c41b2a5accaee1ce549", 8 }, // Dart 3.4.3
|
||||
{ "d56742caf7b3b3f4bd2df93a9bbb5503", 8 }, // Dart 2.16.0
|
||||
{ "d91c0e6f35f0eb2e44124e8f42aa44a7", 4 }, // Dart 3.7.0
|
||||
{ "d979fa911b038a8682e98cc8c8569261", 8 }, // Dart 2.10.0
|
||||
{ "ded6ef11c73fdc638d6ff6d3ad22a67b", 4 }, // Dart 2.17.6
|
||||
{ "e036be9d5df68283e1a043e348fa7ff4", 8 }, // Dart 2.12.0
|
||||
{ "e4a09dbf2bb120fe4674e0576617a0dc", 8 }, // Dart 2.13.0
|
||||
{ "e727fae79fb45aac639252a9453b785e", 4 }, // Dart 2.19.1
|
||||
{ "ee1eb666c76a5cb7746faf39d0b97547", 4 }, // Dart 3.3.0
|
||||
{ "f10776149bf76be288def3c2ca73bdc1", 8 }, // Dart 2.15.0
|
||||
{ "f71c76320d35b65f1164dbaa6d95fe09", 8 }, // Dart 3.2.5
|
||||
{ "f91b8b03bf7f30a5e983fd19b23d978d", 4 }, // Dart 2.18.2
|
||||
{ "f956f595844a2f845a55707faaaa51e4", 4 }, // Dart 3.6.2
|
||||
{ "fa07b8a2d866963d1117ecdcea9287c8", 4 }, // Dart 3.8.0
|
||||
{ "fe53c4fdba846005b70514aec3840296", 8 }, // Dart 3.4.0
|
||||
};
|
||||
|
||||
#define DART_HASH_ENTRIES_COUNT 40
|
||||
#define DART_HASH_ENTRIES_COUNT 61
|
||||
|
||||
// Default offset arrays (identical across all known Dart versions)
|
||||
#define DART_DEFAULT_EP_OFFSETS { 8, 24, 16, 32 }
|
||||
|
||||
@@ -16,7 +16,7 @@ extern "C" {
|
||||
typedef enum {
|
||||
DART_TAG_STYLE_CID_INT32 = 0, // v2.10-2.13: raw int32 CID
|
||||
DART_TAG_STYLE_CID_SHIFT1 = 1, // v2.14-3.3: (cid << 1) | canonical
|
||||
DART_TAG_STYLE_OBJECT_HEADER = 2 // v3.4.3+: ObjectHeader with ClassIdTag at bits 12-31
|
||||
DART_TAG_STYLE_OBJECT_HEADER = 2 // v3.4.3+ and known 2.18.2 exception
|
||||
} DartTagStyle;
|
||||
|
||||
// Version layout information for Dart snapshots
|
||||
@@ -36,8 +36,8 @@ typedef struct {
|
||||
// Returns NULL if hash is not recognized
|
||||
const char *dart_version_from_hash(const char *hash);
|
||||
|
||||
// Lookup version profile from a Dart version string
|
||||
// Returns NULL if version is not recognized
|
||||
// Lookup version profile from a Dart version string using floor semantics.
|
||||
// Returns NULL if the version string is not a dotted numeric version.
|
||||
const DartVerLayout *dart_profile_from_version(const char *version);
|
||||
|
||||
// Pick a layout structure based on hash, with fallback to defaults
|
||||
@@ -50,6 +50,10 @@ void dart_ver_layout_free(DartVerLayout *layout);
|
||||
|
||||
void dart_version_set_verbose(int level);
|
||||
|
||||
// Compare dotted Dart SDK versions numerically.
|
||||
// Returns -1, 0, 1, or -2 when either input is not a dotted numeric version.
|
||||
int dart_version_compare(const char *a, const char *b);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
+51
-34
@@ -4,66 +4,83 @@
|
||||
"code_owner_offsets": [56],
|
||||
"function_name_offsets": [24, 8]
|
||||
},
|
||||
"versions": {
|
||||
"2.10.0": { "cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_INT32", "header_fields": 4 },
|
||||
"2.13.0": { "cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_INT32", "header_fields": 5 },
|
||||
"2.14.0": { "cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5 },
|
||||
"2.15.0": { "cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5 },
|
||||
"2.16.0": { "cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 6 },
|
||||
"2.17.6": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 6 },
|
||||
"2.18.0": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5 },
|
||||
"2.18.2": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"2.19.0": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5 },
|
||||
"3.0.5": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5 },
|
||||
"3.1.3": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5 },
|
||||
"3.2.5": { "cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5 },
|
||||
"3.3.0": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5 },
|
||||
"3.4.3": { "cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"3.5.0": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"3.6.2": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"3.7.0": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"3.8.1": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"3.9.2": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"3.10.7": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"3.11.5": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"3.12.0": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 },
|
||||
"3.12.1": { "cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5 }
|
||||
"profiles": {
|
||||
"2.10.0": {"cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_INT32", "header_fields": 4, "typed_data_internal_base": 108, "typed_data_internal_limit": 150, "typed_data_stride": 3, "cids": {"ILLEGAL": 0, "CLASS": 4, "PATCH_CLASS": 5, "FUNCTION": 6, "CLOSURE_DATA": 7, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 77, "CODE": 16, "OBJECT_POOL": 20, "PC_DESCRIPTORS": 21, "CODE_SOURCE_MAP": 22, "COMPRESSED_STACK_MAPS": 23, "EXCEPTION_HANDLERS": 25, "CONTEXT": 26, "CONTEXT_SCOPE": 27, "SINGLE_TARGET_CACHE": 29, "UNLINKED_CALL": 30, "MONOMORPHIC_SMIABLE_CALL": 31, "CALL_SITE_DATA": 32, "ICDATA": 33, "MEGAMORPHIC_CACHE": 34, "SUBTYPE_TEST_CACHE": 35, "LOADING_UNIT": 36, "LANGUAGE_ERROR": 39, "UNHANDLED_EXCEPTION": 40, "INSTANCE": 42, "LIBRARY_PREFIX": 43, "TYPE_ARGUMENTS": 44, "TYPE": 46, "TYPE_REF": 47, "TYPE_PARAMETER": 48, "CLOSURE": 49, "MINT": 53, "DOUBLE": 54, "FLOAT32X4": 57, "INT32X4": 58, "FLOAT64X2": 59, "TYPED_DATA": 61, "EXTERNAL_TYPED_DATA": 62, "TYPED_DATA_VIEW": 63, "CAPABILITY": 66, "RECEIVE_PORT": 67, "SEND_PORT": 68, "STACK_TRACE": 69, "REGEXP": 70, "WEAK_PROPERTY": 71, "FUTURE_OR": 74, "USER_TAG": 75, "TRANSFERABLE_TYPED_DATA": 76, "ARRAY": 78, "IMMUTABLE_ARRAY": 79, "GROWABLE_OBJECT_ARRAY": 56, "STRING": 80, "ONE_BYTE_STRING": 81, "TWO_BYTE_STRING": 82, "NUM_PREDEFINED_CIDS": 156}},
|
||||
"2.12.0": {"cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_INT32", "header_fields": 4, "typed_data_internal_base": 100, "typed_data_internal_limit": 142, "typed_data_stride": 3, "cids": {"ILLEGAL": 0, "CLASS": 4, "PATCH_CLASS": 5, "FUNCTION": 6, "CLOSURE_DATA": 7, "FFI_TRAMPOLINE_DATA": 8, "FIELD": 9, "SCRIPT": 10, "LIBRARY": 11, "NAMESPACE": 12, "KERNEL_PROGRAM_INFO": 13, "WEAK_SERIALIZATION_REFERENCE": 74, "CODE": 14, "OBJECT_POOL": 17, "PC_DESCRIPTORS": 18, "CODE_SOURCE_MAP": 19, "COMPRESSED_STACK_MAPS": 20, "EXCEPTION_HANDLERS": 22, "CONTEXT": 23, "CONTEXT_SCOPE": 24, "SINGLE_TARGET_CACHE": 25, "UNLINKED_CALL": 26, "MONOMORPHIC_SMIABLE_CALL": 27, "CALL_SITE_DATA": 28, "ICDATA": 29, "MEGAMORPHIC_CACHE": 30, "SUBTYPE_TEST_CACHE": 31, "LOADING_UNIT": 32, "LANGUAGE_ERROR": 35, "UNHANDLED_EXCEPTION": 36, "INSTANCE": 38, "LIBRARY_PREFIX": 39, "TYPE_ARGUMENTS": 40, "TYPE": 42, "FUNCTION_TYPE": 43, "TYPE_REF": 44, "TYPE_PARAMETER": 45, "CLOSURE": 46, "MINT": 50, "DOUBLE": 51, "FLOAT32X4": 54, "INT32X4": 55, "FLOAT64X2": 56, "TYPED_DATA": 58, "EXTERNAL_TYPED_DATA": 59, "TYPED_DATA_VIEW": 60, "CAPABILITY": 63, "RECEIVE_PORT": 64, "SEND_PORT": 65, "STACK_TRACE": 66, "REGEXP": 67, "WEAK_PROPERTY": 68, "FUTURE_OR": 71, "USER_TAG": 72, "TRANSFERABLE_TYPED_DATA": 73, "ARRAY": 75, "IMMUTABLE_ARRAY": 76, "GROWABLE_OBJECT_ARRAY": 53, "STRING": 77, "ONE_BYTE_STRING": 78, "TWO_BYTE_STRING": 79, "NUM_PREDEFINED_CIDS": 148}},
|
||||
"2.13.0": {"cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_INT32", "header_fields": 5, "typed_data_internal_base": 100, "typed_data_internal_limit": 142, "typed_data_stride": 3, "cids": {"ILLEGAL": 0, "CLASS": 4, "PATCH_CLASS": 5, "FUNCTION": 6, "CLOSURE_DATA": 7, "FFI_TRAMPOLINE_DATA": 8, "FIELD": 9, "SCRIPT": 10, "LIBRARY": 11, "NAMESPACE": 12, "KERNEL_PROGRAM_INFO": 13, "WEAK_SERIALIZATION_REFERENCE": 14, "CODE": 15, "OBJECT_POOL": 18, "PC_DESCRIPTORS": 19, "CODE_SOURCE_MAP": 20, "COMPRESSED_STACK_MAPS": 21, "EXCEPTION_HANDLERS": 23, "CONTEXT": 24, "CONTEXT_SCOPE": 25, "SINGLE_TARGET_CACHE": 26, "UNLINKED_CALL": 27, "MONOMORPHIC_SMIABLE_CALL": 28, "CALL_SITE_DATA": 29, "ICDATA": 30, "MEGAMORPHIC_CACHE": 31, "SUBTYPE_TEST_CACHE": 32, "LOADING_UNIT": 33, "LANGUAGE_ERROR": 36, "UNHANDLED_EXCEPTION": 37, "INSTANCE": 39, "LIBRARY_PREFIX": 40, "TYPE_ARGUMENTS": 41, "TYPE": 43, "FUNCTION_TYPE": 44, "TYPE_REF": 45, "TYPE_PARAMETER": 46, "CLOSURE": 47, "MINT": 51, "DOUBLE": 52, "FLOAT32X4": 55, "INT32X4": 56, "FLOAT64X2": 57, "TYPED_DATA": 59, "EXTERNAL_TYPED_DATA": 60, "TYPED_DATA_VIEW": 61, "CAPABILITY": 64, "RECEIVE_PORT": 65, "SEND_PORT": 66, "STACK_TRACE": 67, "REGEXP": 68, "WEAK_PROPERTY": 69, "FUTURE_OR": 72, "USER_TAG": 73, "TRANSFERABLE_TYPED_DATA": 74, "ARRAY": 75, "IMMUTABLE_ARRAY": 76, "GROWABLE_OBJECT_ARRAY": 54, "STRING": 77, "ONE_BYTE_STRING": 78, "TWO_BYTE_STRING": 79, "NUM_PREDEFINED_CIDS": 148}},
|
||||
"2.14.0": {"cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5, "typed_data_internal_base": 104, "typed_data_internal_limit": 146, "typed_data_stride": 3, "cids": {"ILLEGAL": 0, "CLASS": 4, "PATCH_CLASS": 5, "FUNCTION": 6, "TYPE_PARAMETERS": 7, "CLOSURE_DATA": 8, "FFI_TRAMPOLINE_DATA": 9, "FIELD": 10, "SCRIPT": 11, "LIBRARY": 12, "NAMESPACE": 13, "KERNEL_PROGRAM_INFO": 14, "WEAK_SERIALIZATION_REFERENCE": 15, "CODE": 16, "OBJECT_POOL": 20, "PC_DESCRIPTORS": 21, "CODE_SOURCE_MAP": 22, "COMPRESSED_STACK_MAPS": 23, "EXCEPTION_HANDLERS": 25, "CONTEXT": 26, "CONTEXT_SCOPE": 27, "SENTINEL": 28, "SINGLE_TARGET_CACHE": 29, "UNLINKED_CALL": 30, "MONOMORPHIC_SMIABLE_CALL": 31, "CALL_SITE_DATA": 32, "ICDATA": 33, "MEGAMORPHIC_CACHE": 34, "SUBTYPE_TEST_CACHE": 35, "LOADING_UNIT": 36, "LANGUAGE_ERROR": 39, "UNHANDLED_EXCEPTION": 40, "INSTANCE": 42, "LIBRARY_PREFIX": 43, "TYPE_ARGUMENTS": 44, "TYPE": 46, "FUNCTION_TYPE": 47, "TYPE_REF": 48, "TYPE_PARAMETER": 49, "CLOSURE": 50, "MINT": 54, "DOUBLE": 55, "FLOAT32X4": 58, "INT32X4": 59, "FLOAT64X2": 60, "TYPED_DATA": 62, "EXTERNAL_TYPED_DATA": 63, "TYPED_DATA_VIEW": 64, "CAPABILITY": 67, "RECEIVE_PORT": 68, "SEND_PORT": 69, "STACK_TRACE": 70, "REGEXP": 71, "WEAK_PROPERTY": 72, "FUTURE_OR": 74, "USER_TAG": 75, "TRANSFERABLE_TYPED_DATA": 76, "ARRAY": 79, "IMMUTABLE_ARRAY": 80, "GROWABLE_OBJECT_ARRAY": 57, "STRING": 81, "ONE_BYTE_STRING": 82, "TWO_BYTE_STRING": 83, "NUM_PREDEFINED_CIDS": 152}},
|
||||
"2.15.0": {"cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5, "typed_data_internal_base": 106, "typed_data_internal_limit": 148, "typed_data_stride": 3, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "CODE": 17, "OBJECT_POOL": 21, "PC_DESCRIPTORS": 22, "CODE_SOURCE_MAP": 23, "COMPRESSED_STACK_MAPS": 24, "EXCEPTION_HANDLERS": 26, "CONTEXT": 27, "CONTEXT_SCOPE": 28, "SENTINEL": 29, "SINGLE_TARGET_CACHE": 30, "UNLINKED_CALL": 31, "MONOMORPHIC_SMIABLE_CALL": 32, "CALL_SITE_DATA": 33, "ICDATA": 34, "MEGAMORPHIC_CACHE": 35, "SUBTYPE_TEST_CACHE": 36, "LOADING_UNIT": 37, "LANGUAGE_ERROR": 40, "UNHANDLED_EXCEPTION": 41, "INSTANCE": 43, "LIBRARY_PREFIX": 44, "TYPE_ARGUMENTS": 45, "TYPE": 47, "FUNCTION_TYPE": 48, "TYPE_REF": 49, "TYPE_PARAMETER": 50, "CLOSURE": 51, "MINT": 55, "DOUBLE": 56, "FLOAT32X4": 58, "INT32X4": 59, "FLOAT64X2": 60, "TYPED_DATA": 62, "EXTERNAL_TYPED_DATA": 63, "TYPED_DATA_VIEW": 64, "CAPABILITY": 67, "RECEIVE_PORT": 68, "SEND_PORT": 69, "STACK_TRACE": 70, "REGEXP": 71, "WEAK_PROPERTY": 72, "FUTURE_OR": 74, "USER_TAG": 75, "TRANSFERABLE_TYPED_DATA": 76, "ARRAY": 81, "IMMUTABLE_ARRAY": 82, "GROWABLE_OBJECT_ARRAY": 83, "STRING": 84, "ONE_BYTE_STRING": 85, "TWO_BYTE_STRING": 86, "NUM_PREDEFINED_CIDS": 154}},
|
||||
"2.16.0": {"cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 6, "typed_data_internal_base": 106, "typed_data_internal_limit": 148, "typed_data_stride": 3, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "CODE": 17, "OBJECT_POOL": 21, "PC_DESCRIPTORS": 22, "CODE_SOURCE_MAP": 23, "COMPRESSED_STACK_MAPS": 24, "EXCEPTION_HANDLERS": 26, "CONTEXT": 27, "CONTEXT_SCOPE": 28, "SENTINEL": 29, "SINGLE_TARGET_CACHE": 30, "UNLINKED_CALL": 31, "MONOMORPHIC_SMIABLE_CALL": 32, "CALL_SITE_DATA": 33, "ICDATA": 34, "MEGAMORPHIC_CACHE": 35, "SUBTYPE_TEST_CACHE": 36, "LOADING_UNIT": 37, "LANGUAGE_ERROR": 40, "UNHANDLED_EXCEPTION": 41, "INSTANCE": 43, "LIBRARY_PREFIX": 44, "TYPE_ARGUMENTS": 45, "TYPE": 47, "FUNCTION_TYPE": 48, "TYPE_REF": 49, "TYPE_PARAMETER": 50, "CLOSURE": 51, "MINT": 55, "DOUBLE": 56, "FLOAT32X4": 58, "INT32X4": 59, "FLOAT64X2": 60, "TYPED_DATA": 62, "EXTERNAL_TYPED_DATA": 63, "TYPED_DATA_VIEW": 64, "CAPABILITY": 67, "RECEIVE_PORT": 68, "SEND_PORT": 69, "STACK_TRACE": 70, "REGEXP": 71, "WEAK_PROPERTY": 72, "FUTURE_OR": 74, "USER_TAG": 75, "TRANSFERABLE_TYPED_DATA": 76, "ARRAY": 81, "IMMUTABLE_ARRAY": 82, "GROWABLE_OBJECT_ARRAY": 83, "STRING": 84, "ONE_BYTE_STRING": 85, "TWO_BYTE_STRING": 86, "NUM_PREDEFINED_CIDS": 154}},
|
||||
"2.17.0": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 6, "typed_data_internal_base": 110, "typed_data_internal_limit": 152, "typed_data_stride": 3, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "CODE": 17, "OBJECT_POOL": 21, "PC_DESCRIPTORS": 22, "CODE_SOURCE_MAP": 23, "COMPRESSED_STACK_MAPS": 24, "EXCEPTION_HANDLERS": 26, "CONTEXT": 27, "CONTEXT_SCOPE": 28, "SENTINEL": 29, "SINGLE_TARGET_CACHE": 30, "UNLINKED_CALL": 31, "MONOMORPHIC_SMIABLE_CALL": 32, "CALL_SITE_DATA": 33, "ICDATA": 34, "MEGAMORPHIC_CACHE": 35, "SUBTYPE_TEST_CACHE": 36, "LOADING_UNIT": 37, "LANGUAGE_ERROR": 40, "UNHANDLED_EXCEPTION": 41, "INSTANCE": 43, "LIBRARY_PREFIX": 44, "TYPE_ARGUMENTS": 45, "TYPE": 47, "FUNCTION_TYPE": 52, "TYPE_REF": 53, "TYPE_PARAMETER": 54, "CLOSURE": 55, "MINT": 59, "DOUBLE": 60, "FLOAT32X4": 62, "INT32X4": 63, "FLOAT64X2": 64, "TYPED_DATA": 66, "EXTERNAL_TYPED_DATA": 67, "TYPED_DATA_VIEW": 68, "CAPABILITY": 71, "RECEIVE_PORT": 72, "SEND_PORT": 73, "STACK_TRACE": 74, "REGEXP": 75, "WEAK_PROPERTY": 76, "WEAK_REFERENCE": 77, "FUTURE_OR": 79, "USER_TAG": 80, "TRANSFERABLE_TYPED_DATA": 81, "ARRAY": 86, "IMMUTABLE_ARRAY": 87, "GROWABLE_OBJECT_ARRAY": 88, "STRING": 89, "ONE_BYTE_STRING": 90, "TWO_BYTE_STRING": 91, "NUM_PREDEFINED_CIDS": 158}},
|
||||
"2.18.0": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5, "typed_data_internal_base": 111, "typed_data_internal_limit": 153, "typed_data_stride": 3, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "CODE": 17, "OBJECT_POOL": 21, "PC_DESCRIPTORS": 22, "CODE_SOURCE_MAP": 23, "COMPRESSED_STACK_MAPS": 24, "EXCEPTION_HANDLERS": 26, "CONTEXT": 27, "CONTEXT_SCOPE": 28, "SENTINEL": 29, "SINGLE_TARGET_CACHE": 30, "UNLINKED_CALL": 31, "MONOMORPHIC_SMIABLE_CALL": 32, "CALL_SITE_DATA": 33, "ICDATA": 34, "MEGAMORPHIC_CACHE": 35, "SUBTYPE_TEST_CACHE": 36, "LOADING_UNIT": 37, "LANGUAGE_ERROR": 40, "UNHANDLED_EXCEPTION": 41, "INSTANCE": 43, "LIBRARY_PREFIX": 44, "TYPE_ARGUMENTS": 45, "TYPE": 47, "FUNCTION_TYPE": 52, "TYPE_REF": 53, "TYPE_PARAMETER": 54, "CLOSURE": 55, "MINT": 59, "DOUBLE": 60, "FLOAT32X4": 62, "INT32X4": 63, "FLOAT64X2": 64, "TYPED_DATA": 66, "EXTERNAL_TYPED_DATA": 67, "TYPED_DATA_VIEW": 68, "CAPABILITY": 71, "RECEIVE_PORT": 72, "SEND_PORT": 73, "STACK_TRACE": 74, "SUSPEND_STATE": 75, "REGEXP": 76, "WEAK_PROPERTY": 77, "WEAK_REFERENCE": 78, "FUTURE_OR": 80, "USER_TAG": 81, "TRANSFERABLE_TYPED_DATA": 82, "ARRAY": 87, "IMMUTABLE_ARRAY": 88, "GROWABLE_OBJECT_ARRAY": 89, "STRING": 90, "ONE_BYTE_STRING": 91, "TWO_BYTE_STRING": 92, "NUM_PREDEFINED_CIDS": 159}},
|
||||
"2.18.2": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5, "typed_data_internal_base": 112, "typed_data_internal_limit": 168, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "WEAK_ARRAY": 17, "CODE": 18, "OBJECT_POOL": 23, "PC_DESCRIPTORS": 24, "CODE_SOURCE_MAP": 25, "COMPRESSED_STACK_MAPS": 26, "EXCEPTION_HANDLERS": 28, "CONTEXT": 29, "CONTEXT_SCOPE": 30, "SENTINEL": 31, "SINGLE_TARGET_CACHE": 32, "UNLINKED_CALL": 35, "MONOMORPHIC_SMIABLE_CALL": 33, "CALL_SITE_DATA": 34, "ICDATA": 36, "MEGAMORPHIC_CACHE": 37, "SUBTYPE_TEST_CACHE": 38, "LOADING_UNIT": 39, "LANGUAGE_ERROR": 42, "UNHANDLED_EXCEPTION": 43, "INSTANCE": 45, "LIBRARY_PREFIX": 46, "TYPE_ARGUMENTS": 47, "TYPE": 49, "FUNCTION_TYPE": 50, "RECORD_TYPE": 51, "TYPE_PARAMETER": 52, "CLOSURE": 57, "MINT": 61, "DOUBLE": 62, "FLOAT32X4": 64, "INT32X4": 65, "FLOAT64X2": 66, "RECORD": 67, "TYPED_DATA": 69, "EXTERNAL_TYPED_DATA": 70, "TYPED_DATA_VIEW": 71, "CAPABILITY": 74, "RECEIVE_PORT": 75, "SEND_PORT": 76, "STACK_TRACE": 77, "SUSPEND_STATE": 78, "REGEXP": 79, "WEAK_PROPERTY": 80, "WEAK_REFERENCE": 81, "FUTURE_OR": 83, "USER_TAG": 84, "TRANSFERABLE_TYPED_DATA": 85, "MAP": 86, "CONST_MAP": 87, "SET": 88, "CONST_SET": 89, "ARRAY": 90, "IMMUTABLE_ARRAY": 91, "GROWABLE_OBJECT_ARRAY": 92, "STRING": 93, "ONE_BYTE_STRING": 94, "TWO_BYTE_STRING": 95, "NUM_PREDEFINED_CIDS": 175}, "note": "Uses fallback CIDs from 3.9.2 for the in-tree Flutter engine snapshot; not standalone Dart SDK 2.18.2 CIDs."},
|
||||
"2.18.3": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5, "typed_data_internal_base": 111, "typed_data_internal_limit": 153, "typed_data_stride": 3, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "CODE": 17, "OBJECT_POOL": 21, "PC_DESCRIPTORS": 22, "CODE_SOURCE_MAP": 23, "COMPRESSED_STACK_MAPS": 24, "EXCEPTION_HANDLERS": 26, "CONTEXT": 27, "CONTEXT_SCOPE": 28, "SENTINEL": 29, "SINGLE_TARGET_CACHE": 30, "UNLINKED_CALL": 31, "MONOMORPHIC_SMIABLE_CALL": 32, "CALL_SITE_DATA": 33, "ICDATA": 34, "MEGAMORPHIC_CACHE": 35, "SUBTYPE_TEST_CACHE": 36, "LOADING_UNIT": 37, "LANGUAGE_ERROR": 40, "UNHANDLED_EXCEPTION": 41, "INSTANCE": 43, "LIBRARY_PREFIX": 44, "TYPE_ARGUMENTS": 45, "TYPE": 47, "FUNCTION_TYPE": 52, "TYPE_REF": 53, "TYPE_PARAMETER": 54, "CLOSURE": 55, "MINT": 59, "DOUBLE": 60, "FLOAT32X4": 62, "INT32X4": 63, "FLOAT64X2": 64, "TYPED_DATA": 66, "EXTERNAL_TYPED_DATA": 67, "TYPED_DATA_VIEW": 68, "CAPABILITY": 71, "RECEIVE_PORT": 72, "SEND_PORT": 73, "STACK_TRACE": 74, "SUSPEND_STATE": 75, "REGEXP": 76, "WEAK_PROPERTY": 77, "WEAK_REFERENCE": 78, "FUTURE_OR": 80, "USER_TAG": 81, "TRANSFERABLE_TYPED_DATA": 82, "ARRAY": 87, "IMMUTABLE_ARRAY": 88, "GROWABLE_OBJECT_ARRAY": 89, "STRING": 90, "ONE_BYTE_STRING": 91, "TWO_BYTE_STRING": 92, "NUM_PREDEFINED_CIDS": 159}},
|
||||
"2.19.0": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5, "typed_data_internal_base": 113, "typed_data_internal_limit": 169, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "CODE": 17, "OBJECT_POOL": 21, "PC_DESCRIPTORS": 22, "CODE_SOURCE_MAP": 23, "COMPRESSED_STACK_MAPS": 24, "EXCEPTION_HANDLERS": 26, "CONTEXT": 27, "CONTEXT_SCOPE": 28, "SENTINEL": 29, "SINGLE_TARGET_CACHE": 30, "UNLINKED_CALL": 31, "MONOMORPHIC_SMIABLE_CALL": 32, "CALL_SITE_DATA": 33, "ICDATA": 34, "MEGAMORPHIC_CACHE": 35, "SUBTYPE_TEST_CACHE": 36, "LOADING_UNIT": 37, "LANGUAGE_ERROR": 40, "UNHANDLED_EXCEPTION": 41, "INSTANCE": 43, "LIBRARY_PREFIX": 44, "TYPE_ARGUMENTS": 45, "TYPE": 47, "FUNCTION_TYPE": 48, "RECORD_TYPE": 49, "TYPE_REF": 50, "TYPE_PARAMETER": 51, "CLOSURE": 56, "MINT": 60, "DOUBLE": 61, "FLOAT32X4": 63, "INT32X4": 64, "FLOAT64X2": 65, "RECORD": 66, "TYPED_DATA": 68, "EXTERNAL_TYPED_DATA": 69, "TYPED_DATA_VIEW": 70, "CAPABILITY": 73, "RECEIVE_PORT": 74, "SEND_PORT": 75, "STACK_TRACE": 76, "SUSPEND_STATE": 77, "REGEXP": 78, "WEAK_PROPERTY": 79, "WEAK_REFERENCE": 80, "FUTURE_OR": 82, "USER_TAG": 83, "TRANSFERABLE_TYPED_DATA": 84, "MAP": 85, "CONST_MAP": 86, "SET": 87, "CONST_SET": 88, "ARRAY": 89, "IMMUTABLE_ARRAY": 90, "GROWABLE_OBJECT_ARRAY": 91, "STRING": 92, "ONE_BYTE_STRING": 93, "TWO_BYTE_STRING": 94, "NUM_PREDEFINED_CIDS": 176}},
|
||||
"3.0.0": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5, "typed_data_internal_base": 114, "typed_data_internal_limit": 170, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "WEAK_ARRAY": 17, "CODE": 18, "OBJECT_POOL": 22, "PC_DESCRIPTORS": 23, "CODE_SOURCE_MAP": 24, "COMPRESSED_STACK_MAPS": 25, "EXCEPTION_HANDLERS": 27, "CONTEXT": 28, "CONTEXT_SCOPE": 29, "SENTINEL": 30, "SINGLE_TARGET_CACHE": 31, "UNLINKED_CALL": 32, "MONOMORPHIC_SMIABLE_CALL": 33, "CALL_SITE_DATA": 34, "ICDATA": 35, "MEGAMORPHIC_CACHE": 36, "SUBTYPE_TEST_CACHE": 37, "LOADING_UNIT": 38, "LANGUAGE_ERROR": 41, "UNHANDLED_EXCEPTION": 42, "INSTANCE": 44, "LIBRARY_PREFIX": 45, "TYPE_ARGUMENTS": 46, "TYPE": 48, "FUNCTION_TYPE": 49, "RECORD_TYPE": 50, "TYPE_REF": 51, "TYPE_PARAMETER": 52, "CLOSURE": 57, "MINT": 61, "DOUBLE": 62, "FLOAT32X4": 64, "INT32X4": 65, "FLOAT64X2": 66, "RECORD": 67, "TYPED_DATA": 69, "EXTERNAL_TYPED_DATA": 70, "TYPED_DATA_VIEW": 71, "CAPABILITY": 74, "RECEIVE_PORT": 75, "SEND_PORT": 76, "STACK_TRACE": 77, "SUSPEND_STATE": 78, "REGEXP": 79, "WEAK_PROPERTY": 80, "WEAK_REFERENCE": 81, "FUTURE_OR": 83, "USER_TAG": 84, "TRANSFERABLE_TYPED_DATA": 85, "MAP": 86, "CONST_MAP": 87, "SET": 88, "CONST_SET": 89, "ARRAY": 90, "IMMUTABLE_ARRAY": 91, "GROWABLE_OBJECT_ARRAY": 92, "STRING": 93, "ONE_BYTE_STRING": 94, "TWO_BYTE_STRING": 95, "NUM_PREDEFINED_CIDS": 177}},
|
||||
"3.1.0": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5, "typed_data_internal_base": 113, "typed_data_internal_limit": 169, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "WEAK_ARRAY": 17, "CODE": 18, "OBJECT_POOL": 22, "PC_DESCRIPTORS": 23, "CODE_SOURCE_MAP": 24, "COMPRESSED_STACK_MAPS": 25, "EXCEPTION_HANDLERS": 27, "CONTEXT": 28, "CONTEXT_SCOPE": 29, "SENTINEL": 30, "SINGLE_TARGET_CACHE": 31, "UNLINKED_CALL": 32, "MONOMORPHIC_SMIABLE_CALL": 33, "CALL_SITE_DATA": 34, "ICDATA": 35, "MEGAMORPHIC_CACHE": 36, "SUBTYPE_TEST_CACHE": 37, "LOADING_UNIT": 38, "LANGUAGE_ERROR": 41, "UNHANDLED_EXCEPTION": 42, "INSTANCE": 44, "LIBRARY_PREFIX": 45, "TYPE_ARGUMENTS": 46, "TYPE": 48, "FUNCTION_TYPE": 49, "RECORD_TYPE": 50, "TYPE_PARAMETER": 51, "CLOSURE": 56, "MINT": 60, "DOUBLE": 61, "FLOAT32X4": 63, "INT32X4": 64, "FLOAT64X2": 65, "RECORD": 66, "TYPED_DATA": 68, "EXTERNAL_TYPED_DATA": 69, "TYPED_DATA_VIEW": 70, "CAPABILITY": 73, "RECEIVE_PORT": 74, "SEND_PORT": 75, "STACK_TRACE": 76, "SUSPEND_STATE": 77, "REGEXP": 78, "WEAK_PROPERTY": 79, "WEAK_REFERENCE": 80, "FUTURE_OR": 82, "USER_TAG": 83, "TRANSFERABLE_TYPED_DATA": 84, "MAP": 85, "CONST_MAP": 86, "SET": 87, "CONST_SET": 88, "ARRAY": 89, "IMMUTABLE_ARRAY": 90, "GROWABLE_OBJECT_ARRAY": 91, "STRING": 92, "ONE_BYTE_STRING": 93, "TWO_BYTE_STRING": 94, "NUM_PREDEFINED_CIDS": 176}},
|
||||
"3.2.0": {"cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5, "typed_data_internal_base": 113, "typed_data_internal_limit": 169, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "WEAK_ARRAY": 17, "CODE": 18, "OBJECT_POOL": 22, "PC_DESCRIPTORS": 23, "CODE_SOURCE_MAP": 24, "COMPRESSED_STACK_MAPS": 25, "EXCEPTION_HANDLERS": 27, "CONTEXT": 28, "CONTEXT_SCOPE": 29, "SENTINEL": 30, "SINGLE_TARGET_CACHE": 31, "UNLINKED_CALL": 32, "MONOMORPHIC_SMIABLE_CALL": 33, "CALL_SITE_DATA": 34, "ICDATA": 35, "MEGAMORPHIC_CACHE": 36, "SUBTYPE_TEST_CACHE": 37, "LOADING_UNIT": 38, "LANGUAGE_ERROR": 41, "UNHANDLED_EXCEPTION": 42, "INSTANCE": 44, "LIBRARY_PREFIX": 45, "TYPE_ARGUMENTS": 46, "TYPE": 48, "FUNCTION_TYPE": 49, "RECORD_TYPE": 50, "TYPE_PARAMETER": 51, "CLOSURE": 56, "MINT": 60, "DOUBLE": 61, "FLOAT32X4": 63, "INT32X4": 64, "FLOAT64X2": 65, "RECORD": 66, "TYPED_DATA": 68, "EXTERNAL_TYPED_DATA": 69, "TYPED_DATA_VIEW": 70, "CAPABILITY": 73, "RECEIVE_PORT": 74, "SEND_PORT": 75, "STACK_TRACE": 76, "SUSPEND_STATE": 77, "REGEXP": 78, "WEAK_PROPERTY": 79, "WEAK_REFERENCE": 80, "FUTURE_OR": 82, "USER_TAG": 83, "TRANSFERABLE_TYPED_DATA": 84, "MAP": 85, "CONST_MAP": 86, "SET": 87, "CONST_SET": 88, "ARRAY": 89, "IMMUTABLE_ARRAY": 90, "GROWABLE_OBJECT_ARRAY": 91, "STRING": 92, "ONE_BYTE_STRING": 93, "TWO_BYTE_STRING": 94, "NUM_PREDEFINED_CIDS": 176}},
|
||||
"3.3.0": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "CID_SHIFT1", "header_fields": 5, "typed_data_internal_base": 113, "typed_data_internal_limit": 169, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "WEAK_ARRAY": 17, "CODE": 18, "OBJECT_POOL": 22, "PC_DESCRIPTORS": 23, "CODE_SOURCE_MAP": 24, "COMPRESSED_STACK_MAPS": 25, "EXCEPTION_HANDLERS": 27, "CONTEXT": 28, "CONTEXT_SCOPE": 29, "SENTINEL": 30, "SINGLE_TARGET_CACHE": 31, "UNLINKED_CALL": 32, "MONOMORPHIC_SMIABLE_CALL": 33, "CALL_SITE_DATA": 34, "ICDATA": 35, "MEGAMORPHIC_CACHE": 36, "SUBTYPE_TEST_CACHE": 37, "LOADING_UNIT": 38, "LANGUAGE_ERROR": 41, "UNHANDLED_EXCEPTION": 42, "INSTANCE": 44, "LIBRARY_PREFIX": 45, "TYPE_ARGUMENTS": 46, "TYPE": 48, "FUNCTION_TYPE": 49, "RECORD_TYPE": 50, "TYPE_PARAMETER": 51, "CLOSURE": 56, "MINT": 60, "DOUBLE": 61, "FLOAT32X4": 63, "INT32X4": 64, "FLOAT64X2": 65, "RECORD": 66, "TYPED_DATA": 68, "EXTERNAL_TYPED_DATA": 69, "TYPED_DATA_VIEW": 70, "CAPABILITY": 73, "RECEIVE_PORT": 74, "SEND_PORT": 75, "STACK_TRACE": 76, "SUSPEND_STATE": 77, "REGEXP": 78, "WEAK_PROPERTY": 79, "WEAK_REFERENCE": 80, "FUTURE_OR": 82, "USER_TAG": 83, "TRANSFERABLE_TYPED_DATA": 84, "MAP": 85, "CONST_MAP": 86, "SET": 87, "CONST_SET": 88, "ARRAY": 89, "IMMUTABLE_ARRAY": 90, "GROWABLE_OBJECT_ARRAY": 91, "STRING": 92, "ONE_BYTE_STRING": 93, "TWO_BYTE_STRING": 94, "NUM_PREDEFINED_CIDS": 176}},
|
||||
"3.4.0": {"cws": 8, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5, "typed_data_internal_base": 111, "typed_data_internal_limit": 167, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "WEAK_ARRAY": 17, "CODE": 18, "OBJECT_POOL": 22, "PC_DESCRIPTORS": 23, "CODE_SOURCE_MAP": 24, "COMPRESSED_STACK_MAPS": 25, "EXCEPTION_HANDLERS": 27, "CONTEXT": 28, "CONTEXT_SCOPE": 29, "SENTINEL": 30, "SINGLE_TARGET_CACHE": 31, "UNLINKED_CALL": 32, "MONOMORPHIC_SMIABLE_CALL": 33, "CALL_SITE_DATA": 34, "ICDATA": 35, "MEGAMORPHIC_CACHE": 36, "SUBTYPE_TEST_CACHE": 37, "LOADING_UNIT": 38, "LANGUAGE_ERROR": 41, "UNHANDLED_EXCEPTION": 42, "INSTANCE": 44, "LIBRARY_PREFIX": 45, "TYPE_ARGUMENTS": 46, "TYPE": 48, "FUNCTION_TYPE": 49, "RECORD_TYPE": 50, "TYPE_PARAMETER": 51, "CLOSURE": 56, "MINT": 60, "DOUBLE": 61, "FLOAT32X4": 63, "INT32X4": 64, "FLOAT64X2": 65, "RECORD": 66, "TYPED_DATA": 68, "EXTERNAL_TYPED_DATA": 69, "TYPED_DATA_VIEW": 70, "CAPABILITY": 73, "RECEIVE_PORT": 74, "SEND_PORT": 75, "STACK_TRACE": 76, "SUSPEND_STATE": 77, "REGEXP": 78, "WEAK_PROPERTY": 79, "WEAK_REFERENCE": 80, "FUTURE_OR": 82, "USER_TAG": 83, "TRANSFERABLE_TYPED_DATA": 84, "MAP": 85, "CONST_MAP": 86, "SET": 87, "CONST_SET": 88, "ARRAY": 89, "IMMUTABLE_ARRAY": 90, "GROWABLE_OBJECT_ARRAY": 91, "STRING": 92, "ONE_BYTE_STRING": 93, "TWO_BYTE_STRING": 94, "NUM_PREDEFINED_CIDS": 174}},
|
||||
"3.5.0": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5, "typed_data_internal_base": 111, "typed_data_internal_limit": 167, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "WEAK_ARRAY": 17, "CODE": 18, "OBJECT_POOL": 22, "PC_DESCRIPTORS": 23, "CODE_SOURCE_MAP": 24, "COMPRESSED_STACK_MAPS": 25, "EXCEPTION_HANDLERS": 27, "CONTEXT": 28, "CONTEXT_SCOPE": 29, "SENTINEL": 30, "SINGLE_TARGET_CACHE": 31, "UNLINKED_CALL": 32, "MONOMORPHIC_SMIABLE_CALL": 33, "CALL_SITE_DATA": 34, "ICDATA": 35, "MEGAMORPHIC_CACHE": 36, "SUBTYPE_TEST_CACHE": 37, "LOADING_UNIT": 38, "LANGUAGE_ERROR": 41, "UNHANDLED_EXCEPTION": 42, "INSTANCE": 44, "LIBRARY_PREFIX": 45, "TYPE_ARGUMENTS": 46, "TYPE": 48, "FUNCTION_TYPE": 49, "RECORD_TYPE": 50, "TYPE_PARAMETER": 51, "CLOSURE": 56, "MINT": 60, "DOUBLE": 61, "FLOAT32X4": 63, "INT32X4": 64, "FLOAT64X2": 65, "RECORD": 66, "TYPED_DATA": 68, "EXTERNAL_TYPED_DATA": 69, "TYPED_DATA_VIEW": 70, "CAPABILITY": 73, "RECEIVE_PORT": 74, "SEND_PORT": 75, "STACK_TRACE": 76, "SUSPEND_STATE": 77, "REGEXP": 78, "WEAK_PROPERTY": 79, "WEAK_REFERENCE": 80, "FUTURE_OR": 82, "USER_TAG": 83, "TRANSFERABLE_TYPED_DATA": 84, "MAP": 85, "CONST_MAP": 86, "SET": 87, "CONST_SET": 88, "ARRAY": 89, "IMMUTABLE_ARRAY": 90, "GROWABLE_OBJECT_ARRAY": 91, "STRING": 92, "ONE_BYTE_STRING": 93, "TWO_BYTE_STRING": 94, "NUM_PREDEFINED_CIDS": 174}},
|
||||
"3.6.0": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5, "typed_data_internal_base": 112, "typed_data_internal_limit": 168, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "WEAK_ARRAY": 17, "CODE": 18, "OBJECT_POOL": 23, "PC_DESCRIPTORS": 24, "CODE_SOURCE_MAP": 25, "COMPRESSED_STACK_MAPS": 26, "EXCEPTION_HANDLERS": 28, "CONTEXT": 29, "CONTEXT_SCOPE": 30, "SENTINEL": 31, "SINGLE_TARGET_CACHE": 32, "UNLINKED_CALL": 33, "MONOMORPHIC_SMIABLE_CALL": 34, "CALL_SITE_DATA": 35, "ICDATA": 36, "MEGAMORPHIC_CACHE": 37, "SUBTYPE_TEST_CACHE": 38, "LOADING_UNIT": 39, "LANGUAGE_ERROR": 42, "UNHANDLED_EXCEPTION": 43, "INSTANCE": 45, "LIBRARY_PREFIX": 46, "TYPE_ARGUMENTS": 47, "TYPE": 49, "FUNCTION_TYPE": 50, "RECORD_TYPE": 51, "TYPE_PARAMETER": 52, "CLOSURE": 57, "MINT": 61, "DOUBLE": 62, "FLOAT32X4": 64, "INT32X4": 65, "FLOAT64X2": 66, "RECORD": 67, "TYPED_DATA": 69, "EXTERNAL_TYPED_DATA": 70, "TYPED_DATA_VIEW": 71, "CAPABILITY": 74, "RECEIVE_PORT": 75, "SEND_PORT": 76, "STACK_TRACE": 77, "SUSPEND_STATE": 78, "REGEXP": 79, "WEAK_PROPERTY": 80, "WEAK_REFERENCE": 81, "FUTURE_OR": 83, "USER_TAG": 84, "TRANSFERABLE_TYPED_DATA": 85, "MAP": 86, "CONST_MAP": 87, "SET": 88, "CONST_SET": 89, "ARRAY": 90, "IMMUTABLE_ARRAY": 91, "GROWABLE_OBJECT_ARRAY": 92, "STRING": 93, "ONE_BYTE_STRING": 94, "TWO_BYTE_STRING": 95, "NUM_PREDEFINED_CIDS": 175}},
|
||||
"3.9.0": {"cws": 4, "heap_object_tag": 1, "max_alignment": 16, "it_cap": 20000, "tag_style": "OBJECT_HEADER", "header_fields": 5, "typed_data_internal_base": 112, "typed_data_internal_limit": 168, "typed_data_stride": 4, "cids": {"ILLEGAL": 0, "NATIVE_POINTER": 1, "CLASS": 5, "PATCH_CLASS": 6, "FUNCTION": 7, "TYPE_PARAMETERS": 8, "CLOSURE_DATA": 9, "FFI_TRAMPOLINE_DATA": 10, "FIELD": 11, "SCRIPT": 12, "LIBRARY": 13, "NAMESPACE": 14, "KERNEL_PROGRAM_INFO": 15, "WEAK_SERIALIZATION_REFERENCE": 16, "WEAK_ARRAY": 17, "CODE": 18, "OBJECT_POOL": 23, "PC_DESCRIPTORS": 24, "CODE_SOURCE_MAP": 25, "COMPRESSED_STACK_MAPS": 26, "EXCEPTION_HANDLERS": 28, "CONTEXT": 29, "CONTEXT_SCOPE": 30, "SENTINEL": 31, "SINGLE_TARGET_CACHE": 32, "UNLINKED_CALL": 35, "MONOMORPHIC_SMIABLE_CALL": 33, "CALL_SITE_DATA": 34, "ICDATA": 36, "MEGAMORPHIC_CACHE": 37, "SUBTYPE_TEST_CACHE": 38, "LOADING_UNIT": 39, "LANGUAGE_ERROR": 42, "UNHANDLED_EXCEPTION": 43, "INSTANCE": 45, "LIBRARY_PREFIX": 46, "TYPE_ARGUMENTS": 47, "TYPE": 49, "FUNCTION_TYPE": 50, "RECORD_TYPE": 51, "TYPE_PARAMETER": 52, "CLOSURE": 57, "MINT": 61, "DOUBLE": 62, "FLOAT32X4": 64, "INT32X4": 65, "FLOAT64X2": 66, "RECORD": 67, "TYPED_DATA": 69, "EXTERNAL_TYPED_DATA": 70, "TYPED_DATA_VIEW": 71, "CAPABILITY": 74, "RECEIVE_PORT": 75, "SEND_PORT": 76, "STACK_TRACE": 77, "SUSPEND_STATE": 78, "REGEXP": 79, "WEAK_PROPERTY": 80, "WEAK_REFERENCE": 81, "FUTURE_OR": 83, "USER_TAG": 84, "TRANSFERABLE_TYPED_DATA": 85, "MAP": 86, "CONST_MAP": 87, "SET": 88, "CONST_SET": 89, "ARRAY": 90, "IMMUTABLE_ARRAY": 91, "GROWABLE_OBJECT_ARRAY": 92, "STRING": 93, "ONE_BYTE_STRING": 94, "TWO_BYTE_STRING": 95, "NUM_PREDEFINED_CIDS": 175}}
|
||||
},
|
||||
"hashes": {
|
||||
"8ee4ef7a67df9845fba331734198a953": "2.10.0",
|
||||
"e4a09dbf2bb120fe4674e0576617a0dc": "2.13.0",
|
||||
"d979fa911b038a8682e98cc8c8569261": "2.10.0",
|
||||
"e036be9d5df68283e1a043e348fa7ff4": "2.12.0",
|
||||
"0c7f1aa25fc597a7b3b9a19ed390afa1": "2.13.0",
|
||||
"34f6eec64e9371856eaaa278ccf56538": "2.13.0",
|
||||
"7a5b240780941844bae88eca5dbaa7b8": "2.13.0",
|
||||
"9cf77f4405212c45daf608e1cd646852": "2.14.0",
|
||||
"e4a09dbf2bb120fe4674e0576617a0dc": "2.13.0",
|
||||
"659a72e41e3276e882709901c27de33d": "2.14.0",
|
||||
"f10776149bf76be288def3c2ca73bdc1": "2.15.0",
|
||||
"9cf77f4405212c45daf608e1cd646852": "2.14.0",
|
||||
"c03fb294bfdaca2b44c552ad35e52d45": "2.14.0",
|
||||
"24d9d411c2f90c8fbe8907f99e89d4b0": "2.15.0",
|
||||
"d56742caf7b3b3f4bd2df93a9bbb5503": "2.16.0",
|
||||
"7b96ef6dda75bdd1d70be8c2f7cb814e": "2.15.0",
|
||||
"f10776149bf76be288def3c2ca73bdc1": "2.15.0",
|
||||
"3318fe66091c0ffbb64faec39976cb7d": "2.16.0",
|
||||
"6093345773c65683f60c20c8e62cbe4a": "2.16.0",
|
||||
"adf563436d12ba0d50ea5beb7f3be1bb": "2.16.0",
|
||||
"d56742caf7b3b3f4bd2df93a9bbb5503": "2.16.0",
|
||||
"0eb277b50d6ce4069261c69150ce52c9": "2.17.0",
|
||||
"1441d6b13b8623fa7fbf61433abebd31": "2.17.6",
|
||||
"a0cb0c928b23bc17a26e062b351dc44d": "2.17.6",
|
||||
"ded6ef11c73fdc638d6ff6d3ad22a67b": "2.17.6",
|
||||
"f91b8b03bf7f30a5e983fd19b23d978d": "2.18.2",
|
||||
"6a9b5a03a7e784a4558b10c769f188d9": "2.18.0",
|
||||
"77bd0a83c49bfc555a44a0740f15003a": "2.18.0",
|
||||
"8e50e448b241be23b9e990094f4dca39": "2.18.0",
|
||||
"b0e899ec5a90e4661501f0b69e9dd70f": "2.18.0",
|
||||
"b6d0a1f034d158b0d37b51d559379697": "2.18.0",
|
||||
"8e50e448b241be23b9e990094f4dca39": "2.18.0",
|
||||
"6a9b5a03a7e784a4558b10c769f188d9": "2.18.0",
|
||||
"adb4292f3ec25074ca70abcd2d5c7251": "2.19.0",
|
||||
"f91b8b03bf7f30a5e983fd19b23d978d": "2.18.2",
|
||||
"287683014dfbd311f6400c655c97a26d": "2.18.6",
|
||||
"501ef5cbd64ca70b6b42672346af6a8a": "2.19.0",
|
||||
"adb4292f3ec25074ca70abcd2d5c7251": "2.19.0",
|
||||
"afcf461a16dfa5e88f88a2aa68764c99": "2.19.0",
|
||||
"e727fae79fb45aac639252a9453b785e": "2.19.1",
|
||||
"ce5d37cf26ea4faac543cd216f3b96d1": "3.0.0",
|
||||
"617d044d9faa87a98c29f8aad5d2f220": "3.0.3",
|
||||
"16ad76edd19b537bf6ea64fdd31977a7": "3.0.5",
|
||||
"36b0375d284ee2af0d0fffc6e6e48fde": "3.0.5",
|
||||
"90b56a561f70cd55e972cb49b79b3d8b": "3.0.5",
|
||||
"aa64af18e7d086041ac127cc4bc50c5e": "3.0.5",
|
||||
"36b0375d284ee2af0d0fffc6e6e48fde": "3.0.5",
|
||||
"16ad76edd19b537bf6ea64fdd31977a7": "3.0.5",
|
||||
"5191d02bb1d36a9f8609aa7495894e76": "3.1.0",
|
||||
"7dbbeeb8ef7b91338640dca3927636de": "3.1.3",
|
||||
"9d6362266b78e4198f784da1a28fd82b": "3.2.0",
|
||||
"f71c76320d35b65f1164dbaa6d95fe09": "3.2.5",
|
||||
"77b867742ae1ace67fbbb9a9a0d0334e": "3.3.0",
|
||||
"ee1eb666c76a5cb7746faf39d0b97547": "3.3.0",
|
||||
"fe53c4fdba846005b70514aec3840296": "3.4.0",
|
||||
"d20a1be77c3d3c41b2a5accaee1ce549": "3.4.3",
|
||||
"71dcc635f2e5dca494525aa13ca9006b": "3.5.0",
|
||||
"80a49c7111088100a233b2ae788e1f48": "3.5.0",
|
||||
"cda356e9bae476c70de33809fd92e009": "3.5.0",
|
||||
"30c051cb9192f6d6812be3f0b87a6356": "3.6.0",
|
||||
"2858c2c0920495f00b9bce9edf6a8cd9": "3.6.2",
|
||||
"f956f595844a2f845a55707faaaa51e4": "3.6.2",
|
||||
"bae16a6858d8c0fe2c437b275eb807cd": "3.7.0",
|
||||
"d91c0e6f35f0eb2e44124e8f42aa44a7": "3.7.0",
|
||||
"fa07b8a2d866963d1117ecdcea9287c8": "3.8.0",
|
||||
"830f4f59e7969c70b595182826435c19": "3.8.1",
|
||||
"97ff04a728735e6b6b098bdf983faaba": "3.9.2",
|
||||
"1ce86630892e2dca9a8543fdb8ed8e22": "3.10.7",
|
||||
|
||||
+791
-67
File diff suppressed because it is too large.
Load diff
+32
-1702
File diff suppressed because it is too large.
Load diff
+64
-19
@@ -2,8 +2,8 @@
|
||||
|
||||
// Dart SDK version detection and layout profiles
|
||||
//
|
||||
// Supported Dart SDK versions: 2.10.0 - 3.12.1
|
||||
// Based on unflutter's version profiles and CID tables.
|
||||
// Supported Dart SDK versions: 2.10.0 - 3.12.2
|
||||
// Based on Dart SDK source tags plus external snapshot-hash references.
|
||||
|
||||
#include <r_core.h>
|
||||
#include "../../include/r2flutter/dart_version.h"
|
||||
@@ -14,6 +14,27 @@ void dart_version_set_verbose(int level) {
|
||||
G_VERBOSE = level;
|
||||
}
|
||||
|
||||
static bool parse_dart_version(const char *version, int *major, int *minor, int *patch) {
|
||||
char tail = 0;
|
||||
return version && sscanf (version, "%d.%d.%d%c", major, minor, patch, &tail) == 3;
|
||||
}
|
||||
|
||||
int dart_version_compare(const char *a, const char *b) {
|
||||
int av[3], bv[3];
|
||||
if (!parse_dart_version (a, &av[0], &av[1], &av[2]) || !parse_dart_version (b, &bv[0], &bv[1], &bv[2])) {
|
||||
return -2;
|
||||
}
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (av[i] < bv[i]) {
|
||||
return -1;
|
||||
}
|
||||
if (av[i] > bv[i]) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Known snapshot hashes mapped to Dart SDK versions
|
||||
// Sources: unflutter version.go, reFlutter enginehash.csv, blutter precompiled SDKs
|
||||
static const struct {
|
||||
@@ -22,26 +43,36 @@ static const struct {
|
||||
} known_hashes[] = {
|
||||
// Dart 2.10.x
|
||||
{ "8ee4ef7a67df9845fba331734198a953", "2.10.0" },
|
||||
{ "d979fa911b038a8682e98cc8c8569261", "2.10.0" },
|
||||
// Dart 2.12.x
|
||||
{ "e036be9d5df68283e1a043e348fa7ff4", "2.12.0" },
|
||||
// Dart 2.13.x
|
||||
{ "0c7f1aa25fc597a7b3b9a19ed390afa1", "2.13.0" },
|
||||
{ "34f6eec64e9371856eaaa278ccf56538", "2.13.0" },
|
||||
{ "7a5b240780941844bae88eca5dbaa7b8", "2.13.0" },
|
||||
{ "e4a09dbf2bb120fe4674e0576617a0dc", "2.13.0" },
|
||||
// Dart 2.14.x
|
||||
{ "659a72e41e3276e882709901c27de33d", "2.14.0" },
|
||||
{ "9cf77f4405212c45daf608e1cd646852", "2.14.0" },
|
||||
{ "c03fb294bfdaca2b44c552ad35e52d45", "2.14.0" },
|
||||
// Dart 2.15.x
|
||||
{ "24d9d411c2f90c8fbe8907f99e89d4b0", "2.15.0" },
|
||||
{ "7b96ef6dda75bdd1d70be8c2f7cb814e", "2.15.0" },
|
||||
{ "f10776149bf76be288def3c2ca73bdc1", "2.15.0" },
|
||||
// Dart 2.16.x
|
||||
{ "3318fe66091c0ffbb64faec39976cb7d", "2.16.0" },
|
||||
{ "6093345773c65683f60c20c8e62cbe4a", "2.16.0" },
|
||||
{ "adf563436d12ba0d50ea5beb7f3be1bb", "2.16.0" },
|
||||
{ "d56742caf7b3b3f4bd2df93a9bbb5503", "2.16.0" },
|
||||
// Dart 2.17.x
|
||||
{ "0eb277b50d6ce4069261c69150ce52c9", "2.17.0" },
|
||||
{ "1441d6b13b8623fa7fbf61433abebd31", "2.17.6" },
|
||||
{ "a0cb0c928b23bc17a26e062b351dc44d", "2.17.6" },
|
||||
{ "ded6ef11c73fdc638d6ff6d3ad22a67b", "2.17.6" },
|
||||
// Dart 2.18.x
|
||||
{ "287683014dfbd311f6400c655c97a26d", "2.18.6" },
|
||||
{ "6a9b5a03a7e784a4558b10c769f188d9", "2.18.0" },
|
||||
{ "77bd0a83c49bfc555a44a0740f15003a", "2.18.0" },
|
||||
{ "8e50e448b241be23b9e990094f4dca39", "2.18.0" },
|
||||
{ "b0e899ec5a90e4661501f0b69e9dd70f", "2.18.0" },
|
||||
{ "b6d0a1f034d158b0d37b51d559379697", "2.18.0" },
|
||||
@@ -49,29 +80,41 @@ static const struct {
|
||||
// Dart 2.19.x
|
||||
{ "501ef5cbd64ca70b6b42672346af6a8a", "2.19.0" },
|
||||
{ "adb4292f3ec25074ca70abcd2d5c7251", "2.19.0" },
|
||||
{ "afcf461a16dfa5e88f88a2aa68764c99", "2.19.0" },
|
||||
{ "e727fae79fb45aac639252a9453b785e", "2.19.1" },
|
||||
// Dart 3.0.x
|
||||
{ "16ad76edd19b537bf6ea64fdd31977a7", "3.0.5" },
|
||||
{ "36b0375d284ee2af0d0fffc6e6e48fde", "3.0.5" },
|
||||
{ "617d044d9faa87a98c29f8aad5d2f220", "3.0.3" },
|
||||
{ "90b56a561f70cd55e972cb49b79b3d8b", "3.0.5" },
|
||||
{ "aa64af18e7d086041ac127cc4bc50c5e", "3.0.5" },
|
||||
{ "ce5d37cf26ea4faac543cd216f3b96d1", "3.0.0" },
|
||||
// Dart 3.1.x
|
||||
{ "5191d02bb1d36a9f8609aa7495894e76", "3.1.0" },
|
||||
{ "7dbbeeb8ef7b91338640dca3927636de", "3.1.3" },
|
||||
// Dart 3.2.x
|
||||
{ "9d6362266b78e4198f784da1a28fd82b", "3.2.0" },
|
||||
{ "f71c76320d35b65f1164dbaa6d95fe09", "3.2.5" },
|
||||
// Dart 3.3.x
|
||||
{ "77b867742ae1ace67fbbb9a9a0d0334e", "3.3.0" },
|
||||
{ "ee1eb666c76a5cb7746faf39d0b97547", "3.3.0" },
|
||||
// Dart 3.4.x
|
||||
{ "d20a1be77c3d3c41b2a5accaee1ce549", "3.4.3" },
|
||||
{ "fe53c4fdba846005b70514aec3840296", "3.4.0" },
|
||||
// Dart 3.5.x
|
||||
{ "71dcc635f2e5dca494525aa13ca9006b", "3.5.0" },
|
||||
{ "80a49c7111088100a233b2ae788e1f48", "3.5.0" },
|
||||
{ "cda356e9bae476c70de33809fd92e009", "3.5.0" },
|
||||
// Dart 3.6.x
|
||||
{ "2858c2c0920495f00b9bce9edf6a8cd9", "3.6.2" },
|
||||
{ "30c051cb9192f6d6812be3f0b87a6356", "3.6.0" },
|
||||
{ "f956f595844a2f845a55707faaaa51e4", "3.6.2" },
|
||||
// Dart 3.7.x
|
||||
{ "bae16a6858d8c0fe2c437b275eb807cd", "3.7.0" },
|
||||
{ "d91c0e6f35f0eb2e44124e8f42aa44a7", "3.7.0" },
|
||||
// Dart 3.8.x
|
||||
{ "830f4f59e7969c70b595182826435c19", "3.8.1" },
|
||||
{ "fa07b8a2d866963d1117ecdcea9287c8", "3.8.0" },
|
||||
// Dart 3.9.x
|
||||
{ "97ff04a728735e6b6b098bdf983faaba", "3.9.2" },
|
||||
// Dart 3.10.x
|
||||
@@ -84,31 +127,27 @@ static const struct {
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
// Version profiles with CID tables - based on unflutter's version.go
|
||||
// Range-start version profiles. CID tables are generated in dart_cid.c.
|
||||
static const DartVerLayout version_profiles[] = {
|
||||
{ "", "2.10.0", 8, 1, 16, 20000, DART_TAG_STYLE_CID_INT32, 4 }, // Dart 2.10.0
|
||||
{ "", "2.12.0", 8, 1, 16, 20000, DART_TAG_STYLE_CID_INT32, 4 }, // Dart 2.12.0
|
||||
{ "", "2.13.0", 8, 1, 16, 20000, DART_TAG_STYLE_CID_INT32, 5 }, // Dart 2.13.0
|
||||
{ "", "2.14.0", 8, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 2.14.0
|
||||
{ "", "2.15.0", 8, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 2.15.0
|
||||
{ "", "2.16.0", 8, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 6 }, // Dart 2.16.0
|
||||
{ "", "2.17.6", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 6 }, // Dart 2.17.6
|
||||
{ "", "2.17.0", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 6 }, // Dart 2.17.0
|
||||
{ "", "2.18.0", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 2.18.0
|
||||
{ "", "2.18.2", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 2.18.2
|
||||
{ "", "2.18.3", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 2.18.3
|
||||
{ "", "2.19.0", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 2.19.0
|
||||
{ "", "3.0.5", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 3.0.5
|
||||
{ "", "3.1.3", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 3.1.3
|
||||
{ "", "3.2.5", 8, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 3.2.5
|
||||
{ "", "3.0.0", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 3.0.0
|
||||
{ "", "3.1.0", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 3.1.0
|
||||
{ "", "3.2.0", 8, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 3.2.0
|
||||
{ "", "3.3.0", 4, 1, 16, 20000, DART_TAG_STYLE_CID_SHIFT1, 5 }, // Dart 3.3.0
|
||||
{ "", "3.4.3", 8, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.4.3
|
||||
{ "", "3.4.0", 8, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.4.0
|
||||
{ "", "3.5.0", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.5.0
|
||||
{ "", "3.6.2", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.6.2
|
||||
{ "", "3.7.0", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.7.0
|
||||
{ "", "3.8.1", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.8.1
|
||||
{ "", "3.9.2", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.9.2
|
||||
{ "", "3.10.7", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.10.7
|
||||
{ "", "3.11.5", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.11.5
|
||||
{ "", "3.12.0", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.12.0
|
||||
{ "", "3.12.1", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.12.1
|
||||
{ "", "3.6.0", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.6.0
|
||||
{ "", "3.9.0", 4, 1, 16, 20000, DART_TAG_STYLE_OBJECT_HEADER, 5 }, // Dart 3.9.0
|
||||
{ { 0 }, NULL, 0, 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
@@ -128,12 +167,18 @@ const DartVerLayout *dart_profile_from_version(const char *version) {
|
||||
if (!version) {
|
||||
return NULL;
|
||||
}
|
||||
const DartVerLayout *best = NULL;
|
||||
for (int i = 0; version_profiles[i].dart_version; i++) {
|
||||
if (!strcmp (version_profiles[i].dart_version, version)) {
|
||||
return &version_profiles[i];
|
||||
const int cmp = dart_version_compare (version, version_profiles[i].dart_version);
|
||||
if (cmp == -2) {
|
||||
return NULL;
|
||||
}
|
||||
if (cmp < 0) {
|
||||
break;
|
||||
}
|
||||
best = &version_profiles[i];
|
||||
}
|
||||
return NULL;
|
||||
return best? best: version_profiles;
|
||||
}
|
||||
|
||||
DartVerLayout *dart_pick_layout_by_hash(const char *hash) {
|
||||
|
||||
Reference in new issue
Block a user