)]}'
{
  "commit": "3d44d5598f621fc081104b4eb13f0eb95579876e",
  "tree": "8101de3085972ed12f792a549ec4ce136f47a8bd",
  "parents": [
    "a02427fdf7400f6a50e26dcc01a63fc2123c1ae3"
  ],
  "author": {
    "name": "Daco Harkes",
    "email": "dacoharkes@google.com",
    "time": "Mon Aug 26 08:10:23 2024 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Aug 26 08:10:23 2024 +0000"
  },
  "message": "[dart2wasm][ffi] Don\u0027t crash compiler on `Native.addressOf`\n\n`Native.addressOf` is not implemented in dart2wasm (yet).\n\nHowever, crashing the compiler means we cannot use packages which use\n`Native.addressOf` even if these are not invoked.\n\nThis CL changes these expressions to a `throw` at runtime. This enables\nusing the subset of packages that use `@Native`s.\n\nImplementation note: The existing FfiNative transformer doesn\u0027t\nrecurse into visitors. And it extends the transformer for the VM which\ndoesn\u0027t recurse. So I don\u0027t want to change it to recurse over the\nwhole AST. Instead, this introduces a new transformer that traverses\nthe whole AST.\n\nTEST\u003dtests/web/wasm/ffi/ffi_native_test.dart\nTEST\u003dexisting tests with rolling `package:ffi` in via DEPS.\n\nCloses: https://github.com/dart-lang/sdk/issues/56461\nChange-Id: If8fab07a852939a4b519ae7cc47b4071adda8a3a\nCq-Include-Trybots: luci.dart.try:dart2wasm-linux-jscm-chrome-try,dart2wasm-linux-firefox-try,dart2wasm-linux-d8-try,dart2wasm-linux-chrome-try,dart2wasm-asserts-linux-chrome-try\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/380260\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nCommit-Queue: Daco Harkes \u003cdacoharkes@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7af64f6f968aa0f35c3883a0173a22d50d282fc9",
      "new_mode": 33188,
      "new_path": "pkg/dart2wasm/lib/ffi_native_address_transformer.dart"
    },
    {
      "type": "modify",
      "old_id": "d5fd6ff0450872410f4c479280ccfd8bc35a3346",
      "old_mode": 33188,
      "old_path": "pkg/dart2wasm/lib/target.dart",
      "new_id": "884fe30e1762b5d0775df23ea02fc58f01bee415",
      "new_mode": 33188,
      "new_path": "pkg/dart2wasm/lib/target.dart"
    },
    {
      "type": "modify",
      "old_id": "e5f4b2e8b213efaaf146f0e4a6b8620e24039a25",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/vm/lib/ffi_patch.dart",
      "new_id": "868d49f5c50bde14fd633087191028ed261f02f8",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/vm/lib/ffi_patch.dart"
    },
    {
      "type": "modify",
      "old_id": "c5bdc30d153bc92321b4bd073b47c749d939e508",
      "old_mode": 33188,
      "old_path": "tests/web/wasm/ffi/ffi_native_test.dart",
      "new_id": "1619f8e28ed1c3a9ed3b09c84a2a1575dc808b8b",
      "new_mode": 33188,
      "new_path": "tests/web/wasm/ffi/ffi_native_test.dart"
    }
  ]
}
