)]}'
{
  "commit": "ae3dbcdfb14dcd69c6b6e303be647057f1ebcafb",
  "tree": "019fc504ea8eb2bb57c6995b4dca5a236cb87f17",
  "parents": [
    "93054a62d57919c61a102fba7fb498a039a1dd59"
  ],
  "author": {
    "name": "Srujan Gaddam",
    "email": "srujzs@google.com",
    "time": "Thu Aug 01 01:02:47 2024 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Aug 01 01:02:47 2024 +0000"
  },
  "message": "[dart:js_interop] Add toJSCaptureThis\n\nCloses https://github.com/dart-lang/sdk/issues/54381\n\n- Adds an API to capture the this value so that users\ncan use it in the callback.\n- Adds specialized stubs to dart2js similar to what was\ndone for toJS.\n- Adds generic stub to DDC as these stubs don\u0027t get\ntree-shaken away and toJSCaptureThis is less likely to be\nused.\n- Modifies dart2wasm lowerings to add this to the JS\nfunction wrapper if calling toJSCaptureThis.\n\nChange-Id: Ic0a7fd768de1dd6b491998e029ff5eb406ee7992\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/377160\nReviewed-by: Stephen Adams \u003csra@google.com\u003e\nCommit-Queue: Srujan Gaddam \u003csrujzs@google.com\u003e\nReviewed-by: Leaf Petersen \u003cleafp@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5da0808782eaa7eb3aa95d49b4efabffa7cf617b",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "f49e7d0e7b51036ab093ffce98f1a59ae4785282",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "4e172d764b073f3cb7c7f42201232e0291ffae08",
      "old_mode": 33188,
      "old_path": "pkg/_js_interop_checks/lib/src/transformations/js_util_optimizer.dart",
      "new_id": "7795f9a32ac5ea3146488515f2f0ca11f573428b",
      "new_mode": 33188,
      "new_path": "pkg/_js_interop_checks/lib/src/transformations/js_util_optimizer.dart"
    },
    {
      "type": "modify",
      "old_id": "444b9b816abea11186d0479ed5708833ef884126",
      "old_mode": 33188,
      "old_path": "pkg/compiler/lib/src/kernel/dart2js_target.dart",
      "new_id": "a556c26dbb5496454619d1db49dba9d983129d7f",
      "new_mode": 33188,
      "new_path": "pkg/compiler/lib/src/kernel/dart2js_target.dart"
    },
    {
      "type": "modify",
      "old_id": "07404a1ebaa17291dee125bbebb86093092baa73",
      "old_mode": 33188,
      "old_path": "pkg/dart2wasm/lib/js/callback_specializer.dart",
      "new_id": "62cbed104341f8343829394520b74c6a61e56ee4",
      "new_mode": 33188,
      "new_path": "pkg/dart2wasm/lib/js/callback_specializer.dart"
    },
    {
      "type": "modify",
      "old_id": "ff2b1d40da22a3788162bdfeb04250b157a0f8a8",
      "old_mode": 33188,
      "old_path": "pkg/dart2wasm/lib/js/interop_transformer.dart",
      "new_id": "25ab9c875f36110ce0a916c7204f5ca0fc050e01",
      "new_mode": 33188,
      "new_path": "pkg/dart2wasm/lib/js/interop_transformer.dart"
    },
    {
      "type": "modify",
      "old_id": "a6a15fd3662850e52a601cddcc0ade8c4ecce9b8",
      "old_mode": 33188,
      "old_path": "pkg/dart2wasm/lib/js/util.dart",
      "new_id": "0f9f6ae33c6e2f7c673cb5c0a4a1d7c837ed64d6",
      "new_mode": 33188,
      "new_path": "pkg/dart2wasm/lib/js/util.dart"
    },
    {
      "type": "modify",
      "old_id": "471eee1f2d9fa8c8604090849f80935e6e2d18f0",
      "old_mode": 33188,
      "old_path": "pkg/dev_compiler/lib/src/kernel/target.dart",
      "new_id": "f11231af694de52e86866bba671632bf41df9390",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/lib/src/kernel/target.dart"
    },
    {
      "type": "modify",
      "old_id": "87e396448b410dcaf595644f50312e6323dd0ade",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/js_dev_runtime/patch/js_allow_interop_patch.dart",
      "new_id": "ad60d7d4188c13e34b9dc17d97da71b6876c9ae2",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/js_dev_runtime/patch/js_allow_interop_patch.dart"
    },
    {
      "type": "modify",
      "old_id": "0fcf4ab62243d82f8a064bcdeb12229941ba055a",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/js_runtime/lib/js_allow_interop_patch.dart",
      "new_id": "c5d77eb99d9b0df03e5798042d9465be2c82aa38",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/js_runtime/lib/js_allow_interop_patch.dart"
    },
    {
      "type": "modify",
      "old_id": "0a66d9cf1f75aca40f5493c3cd0b82f2a644169d",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/js_shared/lib/js_interop_patch.dart",
      "new_id": "46a92acb217e02baa1ebc426e0d2c1d89fcf81a5",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/js_shared/lib/js_interop_patch.dart"
    },
    {
      "type": "modify",
      "old_id": "a5f04e259ed1e6cffd71619002efe16a2f1eb645",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/wasm/lib/js_interop_patch.dart",
      "new_id": "a8bb27addbe602f38f9228d2b8c4ae67fe854264",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/wasm/lib/js_interop_patch.dart"
    },
    {
      "type": "modify",
      "old_id": "da847ae30c072a4eca2f855fee7484593771ee33",
      "old_mode": 33188,
      "old_path": "sdk/lib/js_interop/js_interop.dart",
      "new_id": "8fe6ccc836100c096f5b5090c31940df2338b969",
      "new_mode": 33188,
      "new_path": "sdk/lib/js_interop/js_interop.dart"
    },
    {
      "type": "modify",
      "old_id": "653438a925a2704c978b69d01efc98c3294e2ee8",
      "old_mode": 33188,
      "old_path": "tests/lib/js/static_interop_test/js_function_arity_test.dart",
      "new_id": "caf624368054827b38ba6aed196842ded369233d",
      "new_mode": 33188,
      "new_path": "tests/lib/js/static_interop_test/js_function_arity_test.dart"
    },
    {
      "type": "modify",
      "old_id": "c001c4da7e4a3c1d1c88c14284d8ee4263e54615",
      "old_mode": 33188,
      "old_path": "tests/lib/js/static_interop_test/js_function_conversions_test.dart",
      "new_id": "97197355af9539b95cc99f60fb28507a2405551c",
      "new_mode": 33188,
      "new_path": "tests/lib/js/static_interop_test/js_function_conversions_test.dart"
    },
    {
      "type": "modify",
      "old_id": "9e2eeb5b382e8d7649b05e8005f9fcf9e806cced",
      "old_mode": 33188,
      "old_path": "tests/lib/js/static_interop_test/js_types_test.dart",
      "new_id": "f596895e102df48de05582c93e9bcc28484b81a9",
      "new_mode": 33188,
      "new_path": "tests/lib/js/static_interop_test/js_types_test.dart"
    }
  ]
}
