)]}'
{
  "commit": "dc88076767c19a46669255d44ab4fa440f2293a2",
  "tree": "03019eef9985390e2b737a343e4d64086d842c1d",
  "parents": [
    "d8f2b7cc44b7f32e16b84b0ca7dfd2165968dffd"
  ],
  "author": {
    "name": "Tess Strickland",
    "email": "sstrickl@google.com",
    "time": "Wed Apr 14 08:44:58 2021 +0000"
  },
  "committer": {
    "name": "commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Wed Apr 14 08:44:58 2021 +0000"
  },
  "message": "[vm] Handle WSRs more generally in v8 snapshot profile writing.\n\nInstead of special-casing the current fields that may have\nWeakSerializationReferences, handle WSRs appearing as elements\nor properties of objects more generally. This removes existing\nspecial casing and avoids the need for it in case of new\nfuture uses of WSRs.\n\nFor artificial nodes being added for dropped\nWeakSerializationReference targets, add them as kArtificial nodes\n(not kSnapshot) that has the original offset (element) or\nname (property). The replacement is added as a kSnapshot node\nthat has a negative offset with the same magnitude as the\nartificial node (element) or \":real_\u003cproperty name\u003e\" (property).\nThis simplifies the work done in pkg/vm_snapshot_analysis to\nuse the artificial nodes instead of replacement ones for\nreassembling hierarchies and the like.\n\nThis CL also cleans up the old SerializerWritingObjectScope\nclass, both moving it to Serializer::WritingObjectScope and\nallowing nesting of WritingObjectScopes with the correct\nsemantics.\n\nThanks to this, not only can we recur when under a WritingObjectScope\ninstead of lifting recursion outside of those scopes, but we can\nalso create artificial nodes for non-empty per-code object pools and\nstatic call target tables instead of attributing their contents\nas supposed elements of the Code object being written.\n\nTEST\u003dpkg/vm_snapshot_analysis/test/instruction_sizes_test\n\nCq-Include-Trybots: luci.dart.try:pkg-linux-release-try,pkg-mac-release-try,pkg-win-release-try\nChange-Id: Ib945c5afcd89b1458b8be3559b6eae24048aba2f\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/194243\nCommit-Queue: Tess Strickland \u003csstrickl@google.com\u003e\nReviewed-by: Ryan Macnak \u003crmacnak@google.com\u003e\nReviewed-by: Vyacheslav Egorov \u003cvegorov@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5ef79afa243134cf80cd7f8bcd81b5c27d7ac31d",
      "old_mode": 33188,
      "old_path": "pkg/vm_snapshot_analysis/lib/v8_profile.dart",
      "new_id": "cbbe717a474b82ce80b43ba7be34d90ed5d37a9e",
      "new_mode": 33188,
      "new_path": "pkg/vm_snapshot_analysis/lib/v8_profile.dart"
    },
    {
      "type": "modify",
      "old_id": "bdc14e773b408135f86f2d0363b45090e36ff11b",
      "old_mode": 33188,
      "old_path": "pkg/vm_snapshot_analysis/test/utils.dart",
      "new_id": "830ca06492ae480f708ea14de42b2380071fda12",
      "new_mode": 33188,
      "new_path": "pkg/vm_snapshot_analysis/test/utils.dart"
    },
    {
      "type": "modify",
      "old_id": "12f1e10aaf22d9fa3b031dbad301a48b7e7167a5",
      "old_mode": 33188,
      "old_path": "runtime/vm/clustered_snapshot.cc",
      "new_id": "8841d37b3f7a103ca1d6b16ceb20f8121628a18f",
      "new_mode": 33188,
      "new_path": "runtime/vm/clustered_snapshot.cc"
    },
    {
      "type": "modify",
      "old_id": "cbb34de4c75d75dba40c75f456f3da8ce2924a47",
      "old_mode": 33188,
      "old_path": "runtime/vm/clustered_snapshot.h",
      "new_id": "ebaa3a438f5f545d62200c26ca05364cf05143e1",
      "new_mode": 33188,
      "new_path": "runtime/vm/clustered_snapshot.h"
    },
    {
      "type": "modify",
      "old_id": "f20022eb7da39dcc6bb022880b9766281e376ac2",
      "old_mode": 33188,
      "old_path": "runtime/vm/image_snapshot.cc",
      "new_id": "982cb7ad4e0a369d055ec7cd007ed94133b90308",
      "new_mode": 33188,
      "new_path": "runtime/vm/image_snapshot.cc"
    },
    {
      "type": "modify",
      "old_id": "a11356fb75262935d402c2e7ac8bd2309360e29b",
      "old_mode": 33188,
      "old_path": "runtime/vm/image_snapshot.h",
      "new_id": "84040d44b93e8db2be9f284bbbd5836934fd1fa1",
      "new_mode": 33188,
      "new_path": "runtime/vm/image_snapshot.h"
    },
    {
      "type": "modify",
      "old_id": "4f4c1c12de2de369b44c8f259b980ec181acaa8a",
      "old_mode": 33188,
      "old_path": "runtime/vm/v8_snapshot_writer.cc",
      "new_id": "c828b4f9c2da1e12fb74fe2df9b91cba64501969",
      "new_mode": 33188,
      "new_path": "runtime/vm/v8_snapshot_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "34486ffc22d4c97a3c02d32b0a4858b893d2968b",
      "old_mode": 33188,
      "old_path": "runtime/vm/v8_snapshot_writer.h",
      "new_id": "3fc3e6183a6243b1de24cd4528785c54925585df",
      "new_mode": 33188,
      "new_path": "runtime/vm/v8_snapshot_writer.h"
    }
  ]
}
