)]}'
{
  "commit": "1e85c8f7cc632686bbb704245d9eec4ce895171f",
  "tree": "cf5c2e98dc262b8624d3309e0eb6406cc669cf52",
  "parents": [
    "35f197f1e5f5cf5410712a71dfb7f65c7473831d"
  ],
  "author": {
    "name": "Alexander Aprelev",
    "email": "aam@google.com",
    "time": "Sat Jul 12 21:04:34 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Jul 13 04:04:34 2025 +0000"
  },
  "message": "Roll dart sdk to 3.9.0-333.0.dev (#172052)\n\nChanges since last dart roll:\n```\n3ad640094c3 (tag: 3.9.0-333.0.dev) Version 3.9.0-333.0.dev\na706ea8a9b5 Remove left-over debugging code that saved files to disk.\nc47a8b0adaa [vm/shared] Restore fast-path for RunWithStoppedMutators.\n3e462c1343f [vm,dyn_modules] Support external/native methods in bytecode\ne69b7eafcaa [co19] Roll co19 to a5d7b62b78dd9278c30a44cb2d22b8870b360a0e\ncb5aed532f1 (tag: 3.9.0-332.0.dev) Version 3.9.0-332.0.dev\n15a00898af8 Add the ability to copy pipes using File.Copy\n08e5a2d5281 (tag: 3.9.0-331.0.dev) Version 3.9.0-331.0.dev\nc87169ef1a2 Remove InfoDeclarationStore.\nd6c4707b938 Elements. Remove InterfaceElementImpl.lookUpInheritedMethod()\n279b379ef92 Elements. Replace FragmentImpl.nameOffset with firstTokenOffset.\n14bb2be360d [ddc] Optimize building type environments at runtime\n7e4fca78a87 [changelog] Clean up recent changelog entries\nf3d9d5e6868 (tag: 3.9.0-330.0.dev) Version 3.9.0-330.0.dev\n313fd866d1f [deps] rev http, i18n, tools, web\n895413f982f [analyzer] Add special case for bool.fromEnvironment(\u0027dart.library.js_interop\u0027)\n5ce3cd24d20 [ddc] Fix hot reload test runner ternary.\n9737e0c8530 analyzer: Simplify the sealed supertype check\n3220f9b511f (tag: 3.9.0-329.0.dev) Version 3.9.0-329.0.dev\nb207705bd58 [dart2wasm] Update interop specializers to live in library with specialized member.\n83d862217e5 Bump pub to c3e50919d11896f014cb971e1776d00a0e2d18b3\n```\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\n*Replace this paragraph with a description of what this PR is changing\nor adding, and why. Consider including before/after screenshots.*\n\n*List which issues are fixed by this PR. You must list at least one\nissue. An issue is not required if the PR fixes something trivial like a\ntypo.*\n\n*If you had to change anything in the [flutter/tests] repo, include a\nlink to the migration guide as per the [breaking change policy].*\n\n## Pre-launch Checklist\n\n- [ ] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [ ] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [ ] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [ ] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [ ] I updated/added relevant documentation (doc comments with `///`).\n- [ ] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [ ] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [ ] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "10816ee654af9ce88dd4fdd252352e133e4d379e",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "04f3793a0f7c89e922477e2ce17b8f79a4d27990",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "53adf99a433682ebcb320cc21dc5690d79b1f116",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/ci/licenses_golden/licenses_dart",
      "new_id": "968247e9a072427f19ea365311d69b2bdf625267",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/ci/licenses_golden/licenses_dart"
    }
  ]
}
