)]}'
{
  "commit": "e4cd515df697343dd0a372efc24b9738dfef88fa",
  "tree": "6abedc9024d2cb95d99cd0f178e40a1111cdfc5b",
  "parents": [
    "b2c5870a2e0fdbb55f541370af9252d8584b48ae"
  ],
  "author": {
    "name": "Martin Kustermann",
    "email": "kustermann@google.com",
    "time": "Wed Mar 05 11:53:38 2025 -0800"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Mar 05 11:53:38 2025 -0800"
  },
  "message": "[dart2wasm] Optimize fused json+utf8 decoder performance\n\nSomewhat similar to what we already do for json object keys, we do now\nfor values: When json decoding from bytes, we look at all the bytes from\nthe string already (e.g. to find out if it\u0027s ASCII) so we may as well\nremember those bytes in a WasmArray\u003cWasmI16\u003e (which we need later on\nwhen creating the JS string). Doing so will avoid another O(n) pass over\nthe bytes.\n\nWe don\u0027t do this when json decoding from string, because here we can\nuse JS substring API (i.e. we don\u0027t have to create a JS string from a\nWasmArray\u003cWasmI16\u003e).\n\nDue to the \"messiness\" of this CL, I\u0027ve pulled it out of the CL\nthat enabled JS strings by-default into this (separate) CL.\n\n\u003d\u003e This brings back performance for utf8+json fused decoders\n\u003d\u003e Significant improvements in `JsonDecode.*FromBytes` benchmarks\n\nChange-Id: I8f6b8b26812bd789b06c82ad4a7404855bec10bd\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/412642\nReviewed-by: Lasse Nielsen \u003clrn@google.com\u003e\nReviewed-by: Ömer Ağacan \u003comersa@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fa422f28bb0a03fdd58d493d9d8685c6a1f75bef",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/wasm/lib/convert_patch.dart",
      "new_id": "cb51a07233716cec95dcc133c613cd22b495256b",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/wasm/lib/convert_patch.dart"
    }
  ]
}
