)]}'
{
  "commit": "44ecd7424fa0a9e023ecac0d894f50926ed111cf",
  "tree": "58465a160171accbe695c54e8cd62c5aef34d273",
  "parents": [
    "f7f65d44a78bde0d1f2ae4040bdd79d6429adb3f"
  ],
  "author": {
    "name": "Ömer Sinan Ağacan",
    "email": "omersa@google.com",
    "time": "Mon Jul 28 21:39:47 2025 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 28 21:39:47 2025 +0200"
  },
  "message": "Sync JSON web decoders (#1028)\n\nThis syncs the web JSON decoder used internally.\n\nThe new decoder uses `js_interop` instead of the Dart standard library to\nimprove performance when compiled to JS.\n\n## Benchmarks\n\nmaster, JS:\n\n    protobuf_from_json_string(RunTimeRaw): 1423.134328358209 us.\n\nPR, JS:\n\n    protobuf_from_json_string(RunTimeRaw): 971 us. \n\nWasm and VM benchmarks don\u0027t change as they keep using the old implementation.\n\nThe new implementation is slower with Wasm as it does more JS interop, so we\nkeep using the old one.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a987ef80da75d3b625e093216959cb00109094de",
      "old_mode": 33188,
      "old_path": "protobuf/CHANGELOG.md",
      "new_id": "209c21b96a60b0de75b0f3d72d24903b08034208",
      "new_mode": 33188,
      "new_path": "protobuf/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "35caa69bb9241d8335b947edabeb230390b6eb72",
      "old_mode": 33188,
      "old_path": "protobuf/lib/src/protobuf/generated_message.dart",
      "new_id": "9b5c866a46c6ce2fa527849a66206dd2b5be0133",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/generated_message.dart"
    },
    {
      "type": "modify",
      "old_id": "176084d779b1f8426d3451be7397ed1ebd484b8e",
      "old_mode": 33188,
      "old_path": "protobuf/lib/src/protobuf/internal.dart",
      "new_id": "e3a29d072e14bd78a027165cf27949ba5cd22114",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/internal.dart"
    },
    {
      "type": "rename",
      "old_id": "5021fc07fe922569c20684f88682dd0667b97d35",
      "old_mode": 33188,
      "old_path": "protobuf/lib/src/protobuf/json.dart",
      "new_id": "05d1ac11e2076ae7139d583f5541dd1a8c4670ac",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/json/json.dart",
      "score": 84
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "831756abd6bdb4a8ee7d07ec9205604fc3288678",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/json/json_vm.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b0a8e2ec77ed4ae43048da201b9b9876c4f3474b",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/json/json_web.dart"
    }
  ]
}
