)]}'
{
  "commit": "969bc6c859b4bb4a7ab5d01009f73a0ec623340c",
  "tree": "be29b66e75429c16fef822e480c77de8b4f647c4",
  "parents": [
    "df096a9718e41f6883e683f177376a0cfd1b604c"
  ],
  "author": {
    "name": "Ömer Sinan Ağacan",
    "email": "omeragacan@gmail.com",
    "time": "Sat Dec 09 10:47:38 2023 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Dec 09 10:47:38 2023 +0100"
  },
  "message": "Fix JS value to Dart conversion when receiving from a web socket (#298)\n\n`MessageEvent` is a `package:web` type and `data` field is a JS value of type\r\n`JSAny?`.\r\n\r\nThe receiving end of the `sink` is here:\r\nhttps://github.com/dart-lang/sdk/blob/26107a319a7503deafee404e3462644a873e2920/pkg/vm_service/lib/src/vm_service.dart#L1795\r\n\r\nThis code currently does not expect to see JS objects, so passing a `JSAny?` to\r\nthe sink breaks it.\r\n\r\nThe fix should be in the generating end rather than the receiving end: `JSAny?`\r\nis supposed to be an unboxed value, not a boxed Dart value. In an ideal world we\r\nshouldn\u0027t be able to pass it as a Dart object. So we call `dartify` and convert\r\nit to a Dart object.\r\n\r\nThis fixes DevTools when compiled to Wasm.\r\n\r\nThanks to @eyebrowsoffire and @mkustermann for help with debugging.\r\n\r\nCo-authored-by: Kevin Moore \u003ckevmoo@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "82edd2dcdab841b7c036f06f84d7cb651a57ae24",
      "old_mode": 33188,
      "old_path": "lib/html.dart",
      "new_id": "5446b67ab464d1bfda35566131f39cb536559ef7",
      "new_mode": 33188,
      "new_path": "lib/html.dart"
    },
    {
      "type": "modify",
      "old_id": "9d91025719b1fb15814af2a5b38f4670a76f07a6",
      "old_mode": 33188,
      "old_path": "test/html_test.dart",
      "new_id": "69f0cd9b42752a1e7a9a76ac5409af91ee31ce92",
      "new_mode": 33188,
      "new_path": "test/html_test.dart"
    }
  ]
}
