)]}'
{
  "log": [
    {
      "commit": "988e983b0f1c3b45d6279985ae8233df63735ea0",
      "tree": "5505a0257aff32a69d6f71f0c1bb7e8c7d380179",
      "parents": [
        "5c57af235e4ce65e12fc3acaac7d42a867a491a3"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Wed Sep 16 14:50:25 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 14:50:25 2026 -0700"
      },
      "message": "[Flow analysis] Remove unnecessary `staticType` arguments from API.\n\nThe flow analysis methods `thisOrSuper` and\n`whyNotPromotedImplicitThis` no longer need the caller to provide the\n`staticType` of `this`, since flow analysis knows the type of `this`\nat every point in program execution.\n\nChange-Id: I19ced27bdc5fec964fce6f930fccc8ff6a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550841\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "5c57af235e4ce65e12fc3acaac7d42a867a491a3",
      "tree": "d4c12b359b4499551e8b5626dfcce65eeaa66fbb",
      "parents": [
        "7d4149628c50e0faa7422c931d508519cbe93eb4"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Wed Sep 16 14:49:46 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 14:49:46 2026 -0700"
      },
      "message": "[Flow analysis] Share logic between null-check and `!\u003d null` patterns.\n\nA null-check pattern (`subpattern?`) matches if and only if the\nmatched value is not `null`, which is precisely the behavior of the\nconstant pattern `!\u003d null`. Similarly, the constant pattern `\u003d\u003d null`\nis the same test with the \"matched\" and \"unmatched\" outcomes\nswapped. But flow analysis implemented these two forms independently,\nin `nullCheckOrAssertPattern_begin` and in the\n`_EqualityCheckIsNullCheck` case of `_handleEqualityCheckPattern`, so\nthe reasoning about which flow state applies on which path was written\nout twice.\n\nThis CL introduces `_handleNullTestPattern`, which takes a\n`matchesIfNull` flag, and uses it for both forms. Aside from reducing\nduplication, this makes it clear that the two forms really do behave\nidentically; previously that was obscured by the fact that\n`nullCheckOrAssertPattern_begin` skips updating the \"unmatched\" state\nwhen the matched value type is known to be non-nullable (because in\nthat case the pattern is guaranteed to match), whereas the constant\npattern logic had no such special case. It turns out that the special\ncase is simply unreachable via the constant pattern path: if the\nmatched value type were non-nullable, `_equalityCheck` would have\nfound the operand types to be disjoint, and would have returned\n`_EqualityCheckHasKnownResult` or `_NoEqualityInformation` rather than\n`_EqualityCheckIsNullCheck`. An assertion and a comment now record\nthat reasoning; 13 of the flow analysis unit tests exercise this code\npath, so the assertion is meaningfully checked.\n\nAlso, `nullCheckOrAssertPattern_begin`\u0027s return value was previously\ncomputed as a side effect of trying to promote the matched value\n(`ifNotNull \u003d\u003d null`), and was undocumented. It\u0027s now computed\ndirectly as `_isNonNullableType(matchedValueType)`, which is\nequivalent, and the interface documents what it means (the client uses\nit to report that the null check or null assert is unnecessary).\n\nThis is a pure refactor; there are no behavioral changes, and no test\nexpectations needed to be updated.\n\nChange-Id: I483aee7bbafceae4d26647a27517a7d66a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549340\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "7d4149628c50e0faa7422c931d508519cbe93eb4",
      "tree": "bd2ab90749200f718ae58d26d8718b1ccbac5169",
      "parents": [
        "a2bcc807b0dacbb7f91c2b6e3ae148282983f7b4"
      ],
      "author": {
        "name": "Brian Quinlan",
        "email": "bquinlan@google.com",
        "time": "Wed Sep 16 14:17:35 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 14:17:35 2026 -0700"
      },
      "message": "[deps] rev core, http, native, tools\n\nChange-Id: I28ee9bc42ca0ff2e9f7411569f89bc0e52aba1ae\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550420\nReviewed-by: Nate Bosch \u003cnbosch@google.com\u003e\nCommit-Queue: Brian Quinlan \u003cbquinlan@google.com\u003e\n"
    },
    {
      "commit": "a2bcc807b0dacbb7f91c2b6e3ae148282983f7b4",
      "tree": "49610a142bc9d92b3ea0bc5454f26dc8be67cd4b",
      "parents": [
        "19546b608a206534b8b30149a7b70f9f09fc6b09"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Wed Sep 16 14:10:58 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 14:10:58 2026 -0700"
      },
      "message": "Issue 64288. Fix for UnimplementedError for dot-shorthand constructor invocation and missing positional formal.\n\nRecognize `DotShorthandConstructorInvocation2` when formatting\nnot-enough-positional-arguments diagnostics and use its parsed name.\n\nWithout this AST V2 case, resolving a dot-shorthand constructor call\nwith missing required positional arguments falls through to the\n`UnimplementedError` path instead of reporting the expected diagnostic.\n\nBug: https://github.com/dart-lang/sdk/issues/64288\nChange-Id: Idd6e9e23c6ecf0d20b9a2ff2ad267336924555f8\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/551121\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "19546b608a206534b8b30149a7b70f9f09fc6b09",
      "tree": "7e52600ce09b80fe0bab5e22ab3236a6e1167a6d",
      "parents": [
        "0ea6854116d98346f6572154cf9214604776c3bf"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Wed Sep 16 14:09:21 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 14:09:21 2026 -0700"
      },
      "message": "[Flow analysis] Combine the two \"guaranteed\" equality check results into one.\n\n`_FlowAnalysisImpl._equalityCheck` reports its findings using a sealed\nclass, `_EqualityCheckResult`. Two of its variants, `_GuaranteedEqual`\nand `_GuaranteedNotEqual`, represent the same situation (flow analysis\nwas able to statically determine the outcome of the equality check),\ndiffering only in which outcome was determined.\n\nBoth of the callers of `_equalityCheck` are parameterized by a\n`notEqual` flag, indicating whether the operation being analyzed is\n`!\u003d` rather than `\u003d\u003d`.  So each caller had to combine two pieces of\ninformation (which of the two variants was returned, and whether\n`notEqual` is set) in order to reach one of two conclusions. Spelling\nthat out as a variant switch containing an `if`/`else` meant four\nblocks of code and four comments at each call site, where each comment\nwas a near-verbatim copy of one of the others.\n\nReplacing the two variants with a single\n`_EqualityCheckHasKnownResult` carrying a boolean `areEqual` field\nlets each caller combine the two pieces of information with a single\n`!\u003d` (exclusive or), halving the number of cases to be documented and\nmaking it obvious that the two callers agree about how `notEqual`\ninteracts with the result of the check:\n\n- `equalityOperation_end` (which analyzes `a \u003d\u003d b` and `a !\u003d b`) now\n  simply returns `booleanLiteral(areEqual !\u003d notEqual)`.\n\n- `_handleEqualityCheckPattern` (which analyzes `case \u003d\u003d c` and `case\n  !\u003d c`) now tests `areEqual !\u003d notEqual` to decide whether the\n  pattern is guaranteed to match or guaranteed not to match.\n\nThis is a pure refactor; there are no behavioral changes, and no test\nexpectations needed to be updated.\n\nChange-Id: Idde742f62b527acf9780280664734de16a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549320\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "0ea6854116d98346f6572154cf9214604776c3bf",
      "tree": "85e7b58c7d1e54440c404c73a2ce0e5d76c5243d",
      "parents": [
        "1b8a9f2ac07fdeb7602567a2d3cc105fd2855fcc"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Wed Sep 16 13:05:08 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 13:05:08 2026 -0700"
      },
      "message": "Issue 62858. Report useOfVoidResult for both key and value of a MapLiteralEntry.\n\nThe bug happened because `LiteralElementVerifier._verifyMapLiteralEntry`\nhandled both key and value verification within a single method, meaning\nthat if the key triggered a void error, verification returned\nimmediately without checking the value. Similarly, if the value\ntriggered a void error, the subsequent check for key assignability was\nskipped.\n\nThe solution is to split the verification into two independent methods,\none for the key and one for the value.\n\nBug: https://github.com/dart-lang/sdk/issues/62858\nChange-Id: Ic1b7c7a899b44c7f7d4557a159c0249712538ca7\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549720\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "1b8a9f2ac07fdeb7602567a2d3cc105fd2855fcc",
      "tree": "cc2cca59143845486f10126f4209452148706905",
      "parents": [
        "1bc02771f3d2091d11afb60bd0a70c4bb3be994b"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Wed Sep 16 12:51:53 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 12:51:53 2026 -0700"
      },
      "message": "[Flow analysis] Give names to nullability-based reasoning steps.\n\nFlow analysis reasons about the nullability of a value\u0027s static type\nin a number of places: when analyzing `??`, `?.`, `?k:` map entries,\n`!`, null-check and null-assert patterns, equality tests, and pattern\ntype tests. Each of these places spelled out its own\n`operations.classifyType(...)` switch or comparison, and each one had\nto independently get right the question of whether the reasoning step\nin question needs to be guarded by\n`typeAnalyzerOptions.soundFlowAnalysisEnabled`. That guard is easy to\noverlook, and the switches are verbose enough that the interesting\npart (which control flow path is unreachable) is hard to see.\n\nThis CL introduces three small predicates:\n\n- `_isNullType`: whether a type is `Null` or equivalent (and hence a\n  value of that type is guaranteed to be `null`).\n- `_isNonNullableType`: whether a type is non-nullable.\n- `_isGuaranteedNonNullWithSoundNullSafety`: `_isNonNullableType`,\n  guarded by `soundFlowAnalysisEnabled`, with a doc comment explaining\n  why the guard is needed.\n\nplus `_typesAreDisjointDueToNullability`, which captures the \"one type\nis `Null` and the other is non-nullable, so no value has both types\"\nreasoning step that was duplicated between `_equalityCheck`,\n`_isTypeCheckGuaranteedToFailWithSoundNullSafety` and\n`promoteForPattern`.\n`_isTypeCheckGuaranteedToFailWithSoundNullSafety` is now just that\npredicate plus the `soundFlowAnalysisEnabled` guard, and\n`promoteForPattern` reuses it instead of repeating the reasoning with\nits own two-level switch.\n\nAfter this change, `operations.classifyType` is called from only two\nplaces in this library (the two primitive predicates), so any future\nchange to how flow analysis reasons about nullability has one obvious\nplace to go.\n\nThis is a pure refactor; there are no behavioral changes, and no test\nexpectations needed to be updated.\n\nOne pre-existing asymmetry is now more visible, and is called out in a\ncomment: in `nullAwareMapEntry_valueBegin`, the conclusion drawn from\na non-nullable key type is *not* guarded by `soundFlowAnalysisEnabled`\n(whereas the analogous conclusions for `??` and `?.` are), and the\nconclusion drawn from a `Null` key type *is* guarded (whereas the\nanalogous conclusions elsewhere aren\u0027t). This CL preserves that\nbehavior exactly.\n\nChange-Id: Ie762d3af19d26cf542e75533118b618c6a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549280\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "1bc02771f3d2091d11afb60bd0a70c4bb3be994b",
      "tree": "5636f811856831eb1e40e79745b0c14bb24a060c",
      "parents": [
        "f28f3d27ecc77b9251b001bacb89d8bf052850f8"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Wed Sep 16 12:44:19 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 12:44:19 2026 -0700"
      },
      "message": "[Flow analysis] Don\u0027t promote a pattern match\u0027s scrutinee based on a subpattern.\n\nWhen flow analysis analyzes a pattern that performs a type test or a\nnull check, it promotes the value being matched by that pattern; in\naddition, if the corresponding part of scrutinee of the enclosing\npattern match is known to denote the same value as the matched value,\nit promotes that part of the scrutinee too, so that the promotion is\nvisible to code that refers to the scrutinee directly, e.g.:\n\n    if (x case int()) {\n      // `x` is promoted to `int` here.\n    }\n\nThere was a flaw in the logic used to find the corresponding part of\nthe scrutinee: when visiting a subpattern via `pushSubpattern` (a list\nelement, map value, or record field), the field tracking the\ncorresponding part of the scrutinee was not updated, causing the\nmatched value reference and the scrutinee reference to fall out of\nsync.\n\nMost of the time this was benign, since the effect was that the two\nreferences had different SSA nodes, and promotion of the scrutinee is\nsuppressed when the SSA nodes don\u0027t match (to avoid unsoundness when\nthe scrutinee is a variable that gets reassigned before the pattern\nmatch takes place). But in the case where the scrutinee was a\npromotable property of `this`, no such suppression occurred. This was\nunsound:\n\n    class C {\n      final Object? _property;\n      C(this._property);\n    }\n\n    void main() {\n      var c \u003d C([1]);\n      if (c._property case [int()]) {\n        print(c._property.isEven); // Accepted; threw NoSuchMethodError.\n      }\n    }\n\nNote that there was no bug for object pattern fields, because they go\nthrough `pushPropertySubpattern`, which properly replaces the\ncorresponding scrutinee reference with a reference to the property\nbeing matched.\n\nThe fix is to make `pushSubpattern` save and clear the corresponding\nscrutinee reference (restoring it in `popSubpattern`), mirroring what\n`pushPropertySubpattern`/`popPropertySubpattern` already do. This\ndirectly encodes the fact that, while a subpattern is being analyzed,\nnothing is being matched against the full scrutinee. To avoid\nduplicating the save/restore logic, `_PropertyPatternContext` is now a\nsubclass of a new `_SubpatternContext` class, which holds the saved\nscrutinee reference.\n\nTo make things clearer for future maintainers, I\u0027ve renamed the field\nholding the scrutinee reference from `scrutineeReference` to\n`correspondingScrutineeReference`, and added a comment to clarify that\nthe reference is to the portion of the scrutinee that might correspond\nto the matched value (if any).\n\nNote that patterns which push subpatterns still promote the scrutinee\nto their own required type, and record patterns still promote the\nscrutinee to their demonstrated type; the change only removes\npromotions that were derived from the subpatterns themselves.\n\nFixes https://github.com/dart-lang/sdk/issues/64269.\n\nChange-Id: Ic7948f4b1c65e6a7b8edc283efb552b66a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549260\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "f28f3d27ecc77b9251b001bacb89d8bf052850f8",
      "tree": "4bc61ba648b5b5fe5bb572b46718cc12e43be718",
      "parents": [
        "e234d8a47cb71888a4760664ccd534841a085ad7"
      ],
      "author": {
        "name": "Alexander Aprelev",
        "email": "aam@google.com",
        "time": "Wed Sep 16 11:32:29 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 11:32:29 2026 -0700"
      },
      "message": "[vm/shared] Unship isolate api related to isolate groups proposal.\n\nGuard NativeCallable.isolateGroupBound with --experimental-shared-data flag too.\n\nBUG\u003dhttps://github.com/dart-lang/sdk/issues/64285\nTEST\u003dci\nCoreLibraryReviewExempt: only vm is affected\nChange-Id: Iecf87af093a34cbfff881681cc6eb2f4d80b723a\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550341\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nCommit-Queue: Alexander Aprelev \u003caam@google.com\u003e\n"
    },
    {
      "commit": "e234d8a47cb71888a4760664ccd534841a085ad7",
      "tree": "1d65fd238bf181d45e4eb3dd5be3e1fc0314ac22",
      "parents": [
        "4333ee40af705d2b3467331126f24b1244d8f0ea"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Wed Sep 16 10:31:44 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 10:31:44 2026 -0700"
      },
      "message": "AST. Directly resolve import prefixed invocation, constructor, extension override.\n\nResolve parsed chains of the form `prefix.name(...)` directly against\nthe import namespace instead of constructing an expression receiver.\nThis lets AST V2 distinguish import-prefixed functions, constructors,\nextension overrides, and callable values, including calls with type\narguments.\n\nAdd dedicated resolution for import-prefixed function invocations,\nincluding deferred `loadLibrary`, deprecated exports, multiply-defined\nelements, and getter-backed callable values. Share named invocation\ninference and resolution with unqualified calls to keep their behavior\nand recovery consistent.\n\nThis avoids treating an import prefix as an expression receiver and\npreserves the specialized AST representation during resolution.\n\nBug: https://github.com/dart-lang/sdk/issues/63882\nChange-Id: I84d0e2d189e4acd0504164628a97c69ecc3f46ba\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549880\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "4333ee40af705d2b3467331126f24b1244d8f0ea",
      "tree": "f008ff9106b4fed8f450d63853a19e32f21dadfb",
      "parents": [
        "b9f62b8837606aca97bb2b140af9a597a2e4af5a"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Wed Sep 16 09:12:54 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 09:12:54 2026 -0700"
      },
      "message": "AST. Directly resolve unqualified invocation chains without intermediate MethodInvocation.\n\nResole simple unqualified call chains directly to constructor, extension\noverride, or UnqualifiedFunctionInvocation nodes based on lexical\nlookup, instead of first building a MethodInvocation.\n\nResolve UnqualifiedFunctionInvocation using the recorded scope lookup.\nExecutable functions and methods remain direct named invocations, while\nvariables, getters, and record fields are resolved as\nUnqualifiedNameExpression reads and then invoked through CallInvocation.\nThis preserves promotion, flow analysis, and property-read semantics\nwithout using the legacy identifier representation.\n\nUpdate inference and diagnostics to operate on the canonical V2 nodes\nand preserve the existing diagnostic locations and recovery behavior.\n\nChange-Id: I3e7d73527d494bbdd33519da900798a5283265af\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549540\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n"
    },
    {
      "commit": "b9f62b8837606aca97bb2b140af9a597a2e4af5a",
      "tree": "6324f0050cc4737e696683d0420cc5d313d62009",
      "parents": [
        "da2645cce6795fd4a2465ceb29a1b6ed8d86ddb2"
      ],
      "author": {
        "name": "bkonyi",
        "email": "bkonyi@google.com",
        "time": "Wed Sep 16 09:09:15 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 09:09:15 2026 -0700"
      },
      "message": "[Service] Add DevTools in dart_runtime_service_dds\n\n- Move \u0027DevToolsServer\u0027 helper into\n  \u0027package:dart_runtime_service_dds/devtools_server.dart\u0027.\n- Support DevTools asset serving and custom DevTools handler routing.\n\nChange-Id: I4768b4ef214ec6489815a51cb59746eecad9e96e\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/540940\nCommit-Queue: Ben Konyi \u003cbkonyi@google.com\u003e\nReviewed-by: Nicholas Shahan \u003cnshahan@google.com\u003e\n"
    },
    {
      "commit": "da2645cce6795fd4a2465ceb29a1b6ed8d86ddb2",
      "tree": "3acec6893d59f85c26c594698c1eb78f0ad0d5d7",
      "parents": [
        "a8df0e37095d4b432d805b6ea4910224dd4ac145"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Wed Sep 16 09:01:49 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 09:01:49 2026 -0700"
      },
      "message": "[This-promotion] Language test improvements.\n\nTwo minor changes:\n\n- Adds `equalNullPatternIfCase`, which is similar to\n  `notEqualNullPatternIfCase`, but checks that the promotion happens\n  in the `else` branch of the `if`.\n\n- Adds missing `void` return type to `main` functions.\n\nSee the code review of\nhttps://dart-review.googlesource.com/c/sdk/+/549100, in which these\nimprovements were requested.\n\nChange-Id: If3e175e1c49a275ae3c923628128ec7f6a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550340\nReviewed-by: Lasse Nielsen \u003clrn@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "a8df0e37095d4b432d805b6ea4910224dd4ac145",
      "tree": "9734019e8f1ce4c99ccb254da867a3a8f6b0e415",
      "parents": [
        "16542c389cc6f999ed5dd796a025252fc7e48d7c"
      ],
      "author": {
        "name": "herdiyanitdev",
        "email": "82978131+herdiyana256@users.noreply.github.com",
        "time": "Wed Sep 16 08:17:18 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 08:17:18 2026 -0700"
      },
      "message": "[dds] Apply the DevTools server Origin check to all api/* methods\n\nCloses https://github.com/dart-lang/sdk/pull/64077\n\nGitOrigin-RevId: 9049bf6c96d83202fafc13b9a9b788243ebc036a\nChange-Id: I6533eda5c1956eee00a793b6ff2daa3a82fa0ffb\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/538360\nCommit-Queue: Ben Konyi \u003cbkonyi@google.com\u003e\nReviewed-by: Ben Konyi \u003cbkonyi@google.com\u003e\n"
    },
    {
      "commit": "16542c389cc6f999ed5dd796a025252fc7e48d7c",
      "tree": "a0b950b90a7038f833db94bfd035e6105a985d6a",
      "parents": [
        "24dfb97e77cb13e4014b23d26b91efacf63fcbbf"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Wed Sep 16 07:48:52 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 07:48:52 2026 -0700"
      },
      "message": "AST. Avoid using isSynthetic during AST building.\n\nIt is surprising, but it is expensive - materializes the lexeme.\n\n| Revision | Instructions | Cycles | Wall time |\n|---|---:|---:|---:|\n| Parent of CL 549380 (before named chains) | 53.852 B | 43.252 B | 11.144 s |\n| Parent of CL 549500 | 54.833 B | 45.247 B | 11.647 s |\n| CL 549500 | 56.810 B | 49.961 B | 12.812 s |\n| Previous optimizations included, before this change | 55.115 B | 45.731 B | 11.743 s |\n| With synthetic-name checks deferred to resolution | **54.697 B** | **45.379 B** | **11.680 s** |\n\n| With this change compared with | Instructions | Cycles | Wall time |\n|---|---:|---:|---:|\n| Before this change | **−0.76%** | **−0.77%** | **−0.53%** |\n| CL 549500 | **−3.72%** | **−9.17%** | **−8.83%** |\n| Parent of CL 549500 | **−0.25%** | +0.29% | +0.29% |\n| Parent of CL 549380 | +1.57% | +4.92% | +4.81% |\n\nTogether, the optimizations recover **the entire instruction increase introduced by CL 549500**, finishing 0.25% below its parent. The remaining instruction gap against the pre-chain baseline is **1.57%**.\n\nChange-Id: I387fc532acf67bc337f3c3f88d968b40213d1186\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550323\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n"
    },
    {
      "commit": "24dfb97e77cb13e4014b23d26b91efacf63fcbbf",
      "tree": "91e7da0eb2f42a12b07e911462bb0a66af2ba6fb",
      "parents": [
        "c108e1c54a7260020cc56da2e2b113925d5ede4b"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Wed Sep 16 07:04:31 2026 -0700"
      },
      "committer": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Wed Sep 16 07:04:31 2026 -0700"
      },
      "message": "[modular_aot] Recognized methods for Float32, Float64 typed data indexing\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: I5a838bca90bd5bcd11a07e31e272f485f16a11ad\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550382\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n"
    },
    {
      "commit": "c108e1c54a7260020cc56da2e2b113925d5ede4b",
      "tree": "2ffc9f99bbebc0e5bdb8842e920d9459a92e6479",
      "parents": [
        "4b544c4fc28ad177fd35095ced03097b6d206c79"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Wed Sep 16 07:03:55 2026 -0700"
      },
      "committer": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Wed Sep 16 07:03:55 2026 -0700"
      },
      "message": "[modular_aot] Fix incorrect constant evaluation of \u0027null is T\u0027\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: I0ff87923dc8bd4caefc3f7e399a8ee0724e14fbc\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549900\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n"
    },
    {
      "commit": "4b544c4fc28ad177fd35095ced03097b6d206c79",
      "tree": "ba43b03b46455a61ec94a5ce694ec376bfbf67a8",
      "parents": [
        "d7bd01de6c9d1ccf8b589bd32a101e96a33a0fba"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Wed Sep 16 07:03:35 2026 -0700"
      },
      "committer": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Wed Sep 16 07:03:35 2026 -0700"
      },
      "message": "[modular_aot] Fix ClassID.getID for Smis\n\nReplace loadClassIdMayBeSmi with a required parameter \u0027canBeSmi\u0027 of\nloadClassId and use branchIsSmi / branchIfNotSmi where appropriate.\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: I299bc23b15090252bf3581327b9969e1c7c44d11\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549840\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Alexander Aprelev \u003caam@google.com\u003e\n"
    },
    {
      "commit": "d7bd01de6c9d1ccf8b589bd32a101e96a33a0fba",
      "tree": "224d60278aa483f727a0457d2479a29c3012ae96",
      "parents": [
        "410777e1824f738e3287ef8e06ca86b64868c926"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Wed Sep 16 06:11:32 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 06:11:32 2026 -0700"
      },
      "message": "[CFE] Incremental compiler fix package invalidation when also (almost) everything else is invalidated\n\nBefore this CL we first checked if a file was invalidated, then if it\nwasn\u0027t we\u0027d check (if we found it necessary) if the package was updated\nso that would invalidate it. If the later was the case we\u0027d also set a\nbit saying that it was invalidated because of a package update which\nwould in turn disable advanced invalidation.\n\nWhat this means is that if all files in the package was marked as\ninvalidated too the bit would never be set and we would try do advanced\ninvalidation. If then the bodies didn\u0027t change we\u0027d just recompile with\nthe old translations and the output would just be wrong.\n\nThis CL fixes the issue by checking for package config changes first.\n\nChange-Id: Ib6862d92f9de2b98824b9cb861c121d8e16d076e\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550780\nCommit-Queue: Jens Johansen \u003cjensj@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n"
    },
    {
      "commit": "410777e1824f738e3287ef8e06ca86b64868c926",
      "tree": "1b8a7c04f02d8bc85d230d1ffe508d22819836a8",
      "parents": [
        "4e82e630d1a06121a38adc39707802d8ca760c19"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Wed Sep 16 05:53:44 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 05:53:44 2026 -0700"
      },
      "message": "AST. Build ParsedExpressionChainImpl without closures.\n\n| Revision | Instructions | Cycles | Wall time |\n|---|---:|---:|---:|\n| Parent of CL 549500 | 54.833 B | 45.675 B | 11.763 s |\n| CL 549500 | 56.811 B | 50.001 B | 12.847 s |\n| ast-perf-04/05 included, before builder change | 55.875 B | 47.750 B | 12.311 s |\n| With builder change | **55.115 B** | **46.012 B** | **11.847 s** |\n\n| With builder change compared with | Instructions | Cycles | Wall time |\n|---|---:|---:|---:|\n| Before builder change | **−1.36%** | **−3.64%** | **−3.77%** |\n| CL 549500 | **−2.98%** | **−7.98%** | **−7.78%** |\n| Parent of CL 549500 | +0.51% | +0.74% | +0.71% |\n\nTogether, the changes recover **85.7% of the additional instructions** introduced by CL 549500 on this workload.\n\nChange-Id: Ie2e59297c62d3792389b29ad5027ffb9503b0bb2\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550403\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "4e82e630d1a06121a38adc39707802d8ca760c19",
      "tree": "596a0102882dbbdb12eb9c7fd1333db98825f7f1",
      "parents": [
        "1ae9946ea46c98ccf11b815c96d7dc46fa400362"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Wed Sep 16 05:47:36 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 05:47:36 2026 -0700"
      },
      "message": "AST. Avoid creating accidental V1 projections inside the analyzer.\n\nMostly inside ConstantVisitor.\n\nChange-Id: Id05090da4c286d7e8f297edb2e41a4f1a5b4d7af\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550322\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n"
    },
    {
      "commit": "1ae9946ea46c98ccf11b815c96d7dc46fa400362",
      "tree": "30f0080a3cf22920fa0830ebff45d3546ddeb5e3",
      "parents": [
        "c8a06fdd9912f1bf66c41793d72947c4f1844954"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Wed Sep 16 05:45:40 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 05:45:40 2026 -0700"
      },
      "message": "AST. Avoid creating V1 projections just to set parent.\n\n| Revision | Instructions | Cycles | Wall time |\n|---|---:|---:|---:|\n| Parent of CL 549500 | 54.833 B | 44.911 B | 11.648 s |\n| CL 549500 | 56.810 B | 49.387 B | 12.729 s |\n| This CL | 55.877 B | 46.858 B | 12.147 s |\n\n| This CL compared with | Instructions | Cycles | Wall time |\n|---|---:|---:|---:|\n| CL 549500 | **−1.64%** | **−5.12%** | **−4.57%** |\n| Its parent | +1.90% | +4.34% | +4.28% |\n\nChange-Id: I4de83d14efbfc51649b976cd52e19e3aad83f365\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550660\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "c8a06fdd9912f1bf66c41793d72947c4f1844954",
      "tree": "e448dce07daf86349a150eec10ce04cd9a2903b8",
      "parents": [
        "71f486b95e4565d7cc06d7c546eac16a00ff4ddd"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Wed Sep 16 04:40:03 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 04:40:03 2026 -0700"
      },
      "message": "[vm] Intrinsify Int32x4 withX/withY/withZ/withW\n\nbenchmarks/SimdInt32x4 withLaneSimd, macOS arm64:\nJIT ~5.66 -\u003e ~4.22 us (1.34x), AOT ~6.13 -\u003e ~4.45 us (1.38x).\n\nTEST\u003dlib/typed_data/int32x4_test\n\nIssue: https://github.com/dart-lang/sdk/issues/64170\nChange-Id: I1b5201e065c66e150d13c150b4bcd26748af7a18\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550201\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nCommit-Queue: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n"
    },
    {
      "commit": "71f486b95e4565d7cc06d7c546eac16a00ff4ddd",
      "tree": "727f6f6e82370d89de4a780be38b4dd52bfb759c",
      "parents": [
        "6708c9ffb7882de64f1bb07b74946dda83b5e5d0"
      ],
      "author": {
        "name": "UB",
        "email": "ubed@bugqore.com",
        "time": "Wed Sep 16 03:03:07 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 03:03:07 2026 -0700"
      },
      "message": "generate the websocket handshake nonce with a secure prng\n\nCloses https://github.com/dart-lang/sdk/pull/63865\n\nGitOrigin-RevId: a78c3b81a4ac5186baabcafab7e8cd25c02205e2\nChange-Id: I4d6e19b34799f57903b42306e104704485c891b7\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/526540\nReviewed-by: Ryan Macnak \u003crmacnak@google.com\u003e\nCommit-Queue: Slava Egorov \u003cvegorov@google.com\u003e\n"
    },
    {
      "commit": "6708c9ffb7882de64f1bb07b74946dda83b5e5d0",
      "tree": "35aa85200bd4ce6cf3fe5df8b3a53dc72c9ade8b",
      "parents": [
        "5ec61e213b6831a1696130ecf722ae6cf82e183d"
      ],
      "author": {
        "name": "Yusuf İhsan Görgel",
        "email": "developeryusuf@icloud.com",
        "time": "Wed Sep 16 03:00:14 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 03:00:14 2026 -0700"
      },
      "message": "[analyzer] Report a version number error for `@dart\u003d\"2.0\"`\n\nCloses https://github.com/dart-lang/sdk/pull/63946\n\nGitOrigin-RevId: 0f51b29f82d0c0f8d971f7225f13ab31364cda11\nChange-Id: I2862e01d71396f1a70a9cf186aef706beac97374\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/530240\nReviewed-by: Chloe Stefantsova \u003ccstefantsova@google.com\u003e\nCommit-Queue: Chloe Stefantsova \u003ccstefantsova@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "5ec61e213b6831a1696130ecf722ae6cf82e183d",
      "tree": "cfb8c7c038204419e8c397cc74c0a8feb5c06fbd",
      "parents": [
        "afecec56bcb5ce4c9b75e1b859826479714e4ed3"
      ],
      "author": {
        "name": "Laha Luhem",
        "email": "ahalmehul+github@gmail.com",
        "time": "Wed Sep 16 02:32:17 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 02:32:17 2026 -0700"
      },
      "message": "[benchmarks] Add record lanes to SubtypeTestCache\n\nCloses https://github.com/dart-lang/sdk/pull/64154\n\nGitOrigin-RevId: 22c96a8780cfac5633c373c322b6c353cd4c4f83\nChange-Id: I089d9b38e25c926ce185f34116e6e9d276946bdf\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/542340\nCommit-Queue: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n"
    },
    {
      "commit": "afecec56bcb5ce4c9b75e1b859826479714e4ed3",
      "tree": "60e6d9895a11d49cdd2fc935d297d08cc8088efb",
      "parents": [
        "178e4a2fe9dd5d770ac9e9b018026ff3c3450363"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Wed Sep 16 02:31:21 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 02:31:21 2026 -0700"
      },
      "message": "[vm] Share the IL opcode walker between il tests\n\nTEST\u003druntime/tests/vm/dart/no_bound_check_il_test.dart\nTEST\u003druntime/tests/vm/dart/no_deeply_immutable_runtime_check_il_test.dart\n\nIssue: https://github.com/dart-lang/sdk/issues/64170\nChange-Id: I0d775928ec3911160ca9bb3663b9a2111d724239\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549400\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n"
    },
    {
      "commit": "178e4a2fe9dd5d770ac9e9b018026ff3c3450363",
      "tree": "f6aff8a2f1bf3c7b014e7f844280ba99a053460c",
      "parents": [
        "88717978b86df28966e31a35469288f7a6079b0b"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Wed Sep 16 02:11:57 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 02:11:57 2026 -0700"
      },
      "message": "[vm] More cleanups from the attempted V128 extension type migration\n\nFollow-up to 548320.\n\n- Add Interpreter::AllocateInt32x4, symmetric with AllocateFloat32x4 and\n  AllocateFloat64x2.\n- Handle kUnboxedFloat64x2 in ConstantPropagator::VisitInstanceOf.\n- Mention Int32x4 in AllocateBoxABI\u0027s comment, on all five architectures.\n- Use the SIMPLE macro in il_x64.cc and il_arm.cc, matching il_arm64.cc.\n- List every SIMD factory constructor in InlineSimdOp\u0027s\n  CreateFromFactoryCall group, which named 7 of the 13.\n- Cover Int32x4 in builtin_type_names_test.\n\nTEST\u003druntime/tests/vm/dart/builtin_type_names_test\n\nIssue: https://github.com/dart-lang/sdk/issues/64170\nChange-Id: Ib6d93b97bc8e509fe98996c5ef7d4351c60b8c6d\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550440\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\n"
    },
    {
      "commit": "88717978b86df28966e31a35469288f7a6079b0b",
      "tree": "887d2ff48fd274fe2c407f01fa9089eb273dc66a",
      "parents": [
        "875e0ce664254160b8f8455fbd28cd43a13092f9"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Wed Sep 16 01:42:51 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 01:42:51 2026 -0700"
      },
      "message": "[vm/SIMD] ~1.5x perf on hot view-based SIMD loops\n\n_ByteBuffer.asXList was never inlined.\n\nInlining costs code size, but I believe it is worth it here, especially\nfor the SIMD views, where performance is critical for the use cases I\nwould like to enable. If code size becomes an issue we could drop the\ninlining from the non-SIMD views, and point people to the SIMD views for\noptimal performance.\n\nbenchmarks/BitArray, Apple M5 Max MacBook Pro, release ARM64, AOT:\n\n  BitArray32.intersection.accelerated   ~1.47x\n  BitArray32.union.accelerated          ~1.36x\n  BitArray32.xor.accelerated            ~1.48x\n  BitArray32.difference.accelerated     ~1.55x\n  BitArray32.complement.accelerated     ~1.56x\n\nJIT already inlined this and is unchanged. The .view factories are\nmarked so that it stays that way.\n\nTEST\u003dlib/typed_data\nCoreLibraryReviewExempt: No functional change, VM specific optimization pragma added.\nIssue: https://github.com/dart-lang/sdk/issues/64170\nChange-Id: I09c7b0ead312860a23603be71f9bc54cb0494c56\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548400\nCommit-Queue: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\n"
    },
    {
      "commit": "875e0ce664254160b8f8455fbd28cd43a13092f9",
      "tree": "07446774cdf0dd5b84630dc7b810250c48639918",
      "parents": [
        "1c002cd182752441fde07ae815dd60f369685b23"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Wed Sep 16 01:31:35 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 01:31:35 2026 -0700"
      },
      "message": "[frontend_server] Dispose of dill and compiler when options change\n\nBefore compiling a dill when passing -Dfoo\u003dbar, then the same entry\npoint with -Dfoo\u003dsomethingelse would just return the old dill file\nwhich isn\u0027t correct.\n\nThis CL disposes of both the compiler and the cached dill so we don\u0027t\ninitialize from a wrong dill.\n\nChange-Id: Ia33d3ed38a31f780df099127d8552cac066ed4c7\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549680\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Jens Johansen \u003cjensj@google.com\u003e\n"
    },
    {
      "commit": "1c002cd182752441fde07ae815dd60f369685b23",
      "tree": "a5ed3fac0a78a4ca8576234b77571b741beb3aea",
      "parents": [
        "97c398d7a0f28ed7db928a7aceed5a309e73c294"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Wed Sep 16 01:30:53 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 16 01:30:53 2026 -0700"
      },
      "message": "[frontend_server] First fixes to resident_frontend_server_test\n\n* Move createCompileJSON into test code which is the only place it\u0027s\n  used. Add asserts in it that showed how it was given bad data in some\n  tests.\n* Fix the \u0027compile options\u0027 test to pass enableExperiment as expected by\n  the code; add some sort of verification that it was also read on the\n  receiver side by reading the json file it writes.\n\nNot done in this CL:\n* Running the output dill, verifying that -D actually goes into effect.\n\nChange-Id: I3c8791880f1b714cb781cd3244074eed3a1e11a2\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549640\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Jens Johansen \u003cjensj@google.com\u003e\n"
    },
    {
      "commit": "97c398d7a0f28ed7db928a7aceed5a309e73c294",
      "tree": "b7281de1cfb12518430de984986720f8f994e930",
      "parents": [
        "9a097b7923e08d0ebc26b3f5339aa80ad53e88bf"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Tue Sep 15 23:41:48 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 23:41:48 2026 -0700"
      },
      "message": "[dartdev] dart run -r passes all -D - also those specified before run\n\nPassing -D before or after run doesn\u0027t matter for `dart run`.\nFor non-const uses it doesn\u0027t matter for `dart run -r` either, but for\nthe const uses not all -D are passed to the compiler.\n\nSame goes for --enable-assert and --enable-experiment.\n\nThat\u0027s fixed in this CL.\n\nChange-Id: I8efc39b6fd262c88fed7945278c5c9dd289f431d\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548140\nCommit-Queue: Jens Johansen \u003cjensj@google.com\u003e\nReviewed-by: Ben Konyi \u003cbkonyi@google.com\u003e\n"
    },
    {
      "commit": "9a097b7923e08d0ebc26b3f5339aa80ad53e88bf",
      "tree": "60437c653d96ad7a66046406ce76eee50010ea47",
      "parents": [
        "1f5f3d677cd3d88aad612c34497629d35e1689d2"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 15 19:19:22 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 19:19:22 2026 -0700"
      },
      "message": "AST. Add ParsedTypeArguments and ParsedArguments, lifting to V1 or V2.\n\nRepresent argument lists and explicit type arguments as components of\nParsedExpressionChain, alongside name accesses. This keeps name-led\ninvocation syntax neutral until resolution determines whether names\ndenote functions, methods, constructors, or other values.\n\nProvide V1 projections for the corresponding method invocations,\nfunction instantiations, and constructor invocations so the legacy AST\nview preserves its existing shapes.\n\nDuring resolution, temporarily convert these chains to the existing\nunresolved expression forms. This allows invocation lookup to continue\nusing the current resolver while more parser output moves to the V2\nparsed-chain model.\n\nBug: https://github.com/dart-lang/sdk/issues/63882\nChange-Id: I62f35da50cc5bc3f4321d56dec6c313b51962ab7\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549500\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "1f5f3d677cd3d88aad612c34497629d35e1689d2",
      "tree": "f8c30e96a63fa387f2168870db8f4ac5976d8ab4",
      "parents": [
        "e53b8f55f8e56df6b17a0e580d54d9f75b7b44ed"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 15 18:49:35 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 18:49:35 2026 -0700"
      },
      "message": "AST. Implement ParsedAssignmentTargetChain and its rewriting.\n\nFixes bug with `--foo.bar` V1 AST, now again `PrefixedIdentifier`.\n\nRepresent identifier-based assignment targets as\nParsedAssignmentTargetChain during parsing, mirroring\nParsedExpressionChain and deferring their interpretation until\nresolution.\n\nLower these chains based on name lookup to unqualified, import-prefixed,\nor receiver property assignment targets. Share receiver construction\nwith parsed expression chains so assignment receivers can resolve to\nvalue expressions or static qualifiers, including constructor tear-offs\nin intermediate reads.\n\nExtend receiver property assignment targets to accept NamedReceiver and\nupdate property resolution for static qualifiers. Preserve the existing\nV1 AST shapes through compatibility projections while updating visitors,\nserialization, indexing, and other consumers for the new parser-only\ntarget form.\n\nChange-Id: Ib536174d197efa8f8a6c45e97a4012c75c4e5aee\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549480\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "e53b8f55f8e56df6b17a0e580d54d9f75b7b44ed",
      "tree": "399a04df894a8760357fcaa78adf036c0f3e42f2",
      "parents": [
        "b82e4adb991629a5943112b5a824b1a430719630"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 15 18:03:16 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 18:03:16 2026 -0700"
      },
      "message": "AST. Expand ParsedExpressionChain: add ParsedNameAccess and rewrites.\n\nFix null-aware constant evaluation for existing V2 property reads,\nincluding parenthesized receivers such as `(s)?.length` when `s` is\n`null`.\n\nWe now resolve `(dynamicTyped).hashCode` to have `Object.hashCode`\nelement, to make it consistent with `dynamicTyped.hashCode`.\n\nPreserve `Never` expression types after property lookup, including when\nthe receiver type is an alias of `Never`. Previously the identity check\nin the bare-name resolver missed aliased `Never` types.\n\nRepresent parser-built chains such as `a.b` and `a?.b` as a\n`ParsedExpressionChain` containing `ParsedNameAccess` components instead\nof committing to `PrefixedIdentifier` or `PropertyAccess` before lookup.\n\nLower these chains after name resolution. Introduce `NamedReceiver` and\n`StaticQualifier` so property extraction can distinguish value receivers\nfrom types, extensions, and import-prefixed static namespaces, while\nrecognizing constructor tear-offs where applicable.\n\nPreserve legacy V1 AST projections and update resolution, constant\nevaluation, reference tracking, diagnostics, visitors, and summary\nserialization for the new canonical V2 shapes.\n\nBug: https://github.com/dart-lang/sdk/issues/63882\nChange-Id: Idd3eceebd29e6b603ff8597cdbafda537a4579ea\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549420\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "b82e4adb991629a5943112b5a824b1a430719630",
      "tree": "e5df6b922894d86dfa0eef0036f8d0581474bf5f",
      "parents": [
        "d87cf30c54787de5c4b1ebf763ae189c013c156d"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 15 15:31:40 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 15:31:40 2026 -0700"
      },
      "message": "AST. Start implementing ParsedExpressionChain, add ParsedNameHead.\n\nIntroduce parser-only ParsedExpressionChain and ParsedNameHead nodes so\nbare names can remain syntactically neutral when committed to value\nexpression slots. This avoids choosing a value-read representation\nbefore name lookup can distinguish values from type literals.\n\nConvert bare non-synthetic identifiers at migrated expression boundaries\nand preserve SimpleIdentifier as their V1 projection. During resolution,\nlower the parsed chain to either UnqualifiedNameExpression or\nTypeLiteral based on name lookup, before type inference processes the\nexpression.\n\nWire the new nodes through AST visitors, lint registration, source\ngeneration, referenced-name collection, and informative data collection.\nUpdate parser expectations to reflect the new V2 representation.\n\nBug: https://github.com/dart-lang/sdk/issues/63882\nChange-Id: I5ba96f80816cfb422a030cab9fcf053cff760424\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549380\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "d87cf30c54787de5c4b1ebf763ae189c013c156d",
      "tree": "cf0f51f4e5137273572cd1763b0d59399e4ed1a1",
      "parents": [
        "890ba94d77981188cfbb098a4a85eb1b5bd071be"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Tue Sep 15 14:13:03 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 14:13:03 2026 -0700"
      },
      "message": "DAS testing: Remove updateTestSource from AbstractSingleUnitTest\n\nWork towards https://github.com/dart-lang/sdk/issues/61785\n\nChange-Id: I3c21e7d00c29bf0be2bb1138344e0128ac06e334\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550381\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\n"
    },
    {
      "commit": "890ba94d77981188cfbb098a4a85eb1b5bd071be",
      "tree": "c4d6aff5c6e6c944d18882bd3bb2e4e230da1cb6",
      "parents": [
        "ea1133243534bd2d969028f6bef3721e24cd695d"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Tue Sep 15 14:12:25 2026 -0700"
      },
      "committer": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Tue Sep 15 14:12:25 2026 -0700"
      },
      "message": "[modular_aot] Slow paths for BoxInt and BoxDouble\n\nTEST\u003dci\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: Ib7476c8835f2cf97ec9cd3ddd8da0051ffbfe04e\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550360\nReviewed-by: Alexander Aprelev \u003caam@google.com\u003e\n"
    },
    {
      "commit": "ea1133243534bd2d969028f6bef3721e24cd695d",
      "tree": "46c6d99f4e552deb5cc61ee973a7b4db42701121",
      "parents": [
        "7182b8bb09534e1865bdf3496b6b9460dd9ddbe2"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Tue Sep 15 14:11:25 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 14:11:25 2026 -0700"
      },
      "message": "[modular_aot] Fix throwing RangeError in case of a failed index check\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: I325cd26f33a5fb21ae3fd816dc933a024289bcfa\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550300\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\nReviewed-by: Alexander Aprelev \u003caam@google.com\u003e\n"
    },
    {
      "commit": "7182b8bb09534e1865bdf3496b6b9460dd9ddbe2",
      "tree": "22cb859ad83b4e5dcd0f686cc71b3a8c1b5789e2",
      "parents": [
        "894d6d63fce988e2b237660d20ea27fc451c8ed3"
      ],
      "author": {
        "name": "Varad Raj Agrawal",
        "email": "agrawalvaradraj2007@gmail.com",
        "time": "Tue Sep 15 13:34:34 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 13:34:34 2026 -0700"
      },
      "message": "Skip effectively private classes in public_member_api_docs primary constructors\n\nCloses https://github.com/dart-lang/sdk/pull/64287\n\nGitOrigin-RevId: db58c697ba089fab4f3809fbce3bc77c9d58c4e1\nChange-Id: I92f0c0c0ca27e507dbf1cf1e4e91a2b340c66cae\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550260\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Samuel Rawlins \u003csrawlins@google.com\u003e\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\nCommit-Queue: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n"
    },
    {
      "commit": "894d6d63fce988e2b237660d20ea27fc451c8ed3",
      "tree": "ca9d473d0b1ff8508c2ddc14c0e32f3e039c6d3a",
      "parents": [
        "c8d0a0938e12f438ff08ce42c0b0a765b13fe14a"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Tue Sep 15 13:19:06 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 13:19:06 2026 -0700"
      },
      "message": "[Service] Add CLI for dart_runtime_service_dds\n\n- Add CLI argument parsing (\u0027arg_parser.dart\u0027).\n- Add \u0027dds_cli_entrypoint.dart\u0027 and \u0027bin/dds_entrypoint.dart\u0027.\n- Add console logging helper (\u0027utils/console.dart\u0027).\n\nChange-Id: I4722588145f65f72cfda6e944ea595d2c2fdfdf7\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/540843\nCommit-Queue: Ben Konyi \u003cbkonyi@google.com\u003e\nReviewed-by: Nicholas Shahan \u003cnshahan@google.com\u003e\n"
    },
    {
      "commit": "c8d0a0938e12f438ff08ce42c0b0a765b13fe14a",
      "tree": "3c5b3244d15ff7ae35855e06f077532130bf0774",
      "parents": [
        "b87316d6c3987e29e4a3599976e50995426a70a4"
      ],
      "author": {
        "name": "Ratnesh Jhavar",
        "email": "ratjhavar05@gmail.com",
        "time": "Tue Sep 15 13:04:43 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 13:04:43 2026 -0700"
      },
      "message": "Fix broken analysis_options.yaml links in Insights contexts page\n\nCloses https://github.com/dart-lang/sdk/pull/64281\n\nGitOrigin-RevId: b7ab56415ddb2d9a52834c95e49afecb5a2e0e8d\nChange-Id: I21e5d9fc1c5e3f7a924a931fec3e4cfbb8652dc7\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550060\nReviewed-by: Samuel Rawlins \u003csrawlins@google.com\u003e\nCommit-Queue: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n"
    },
    {
      "commit": "b87316d6c3987e29e4a3599976e50995426a70a4",
      "tree": "cf90dd4e9155ee8589015cfac48f4a026169d54a",
      "parents": [
        "fbf14c27e6fa4abef16c21ee3f8b987b10091b01"
      ],
      "author": {
        "name": "Varad Raj Agrawal",
        "email": "agrawalvaradraj2007@gmail.com",
        "time": "Tue Sep 15 13:04:37 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 13:04:37 2026 -0700"
      },
      "message": "Add a regression test for convertIntoBlockBody on a class keyword\n\nCloses https://github.com/dart-lang/sdk/pull/64289\n\nGitOrigin-RevId: 6c8e84f40be81122229bb5c5bc0f3521fb5d1036\nChange-Id: I47fb0ea9a7cd496b1d1a513398201f1da60cb898\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550280\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Keerti Parthasarathy \u003ckeertip@google.com\u003e\nCommit-Queue: Keerti Parthasarathy \u003ckeertip@google.com\u003e\n"
    },
    {
      "commit": "fbf14c27e6fa4abef16c21ee3f8b987b10091b01",
      "tree": "72e51f3d96fb41bffc980fbaa3782c7e591bbd52",
      "parents": [
        "436195b1a3a623eac7f4247f80e02be85e3a6625"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Tue Sep 15 11:46:27 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 11:46:27 2026 -0700"
      },
      "message": "[Service] Share expression evaluation implementation\n\n- Refactor ExpressionEvaluator in package:dart_runtime_service to provide shared evaluate and evaluateInFrame template methods.\n- Implement abstract hooks in ExpressionEvaluator: buildScope, evaluateCompiledExpression, and fallbackCompileAndEvaluate.\n- Refactor VmExpressionEvaluator in package:dart_runtime_service_vm to extend the updated ExpressionEvaluator.\n- Add DdsExpressionEvaluator in package:dart_runtime_service_dds to evaluate expressions against a remote VM service.\n- Wire DdsExpressionEvaluator into DartRuntimeServiceDdsBackend.\n- Add unit tests covering expression evaluation across dart_runtime_service and dart_runtime_service_dds.\n\nTEST\u003dpkg/dart_runtime_service/test/expression_evaluator_test.dart,pkg/dart_runtime_service_dds/test/dds_expression_evaluator_test.dart\n\nChange-Id: I1e8f676f1a24703972ff7a4451a35107f19fb812\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/542480\nReviewed-by: Nicholas Shahan \u003cnshahan@google.com\u003e\nCommit-Queue: Ben Konyi \u003cbkonyi@google.com\u003e\n"
    },
    {
      "commit": "436195b1a3a623eac7f4247f80e02be85e3a6625",
      "tree": "9b069db613e1601b45966a21b587cc48b1772bb5",
      "parents": [
        "b4c8814196670e0dda4f40ae2bdce87f713e70e5"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Tue Sep 15 09:20:31 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 09:20:31 2026 -0700"
      },
      "message": "[Flow analysis] Extract a helper for promoting a pattern\u0027s matched value and scrutinee.\n\n`_FlowAnalysisImpl.promoteForPattern` and\n`_FlowAnalysisImpl._nullCheckPattern` each contained a copy of the\nlogic that promotes the synthetic cache variable representing the\nvalue being matched, and then additionally promotes the scrutinee of\nthe enclosing pattern match, if the scrutinee is known to denote the\nsame value. Keeping the two copies in sync by hand was error prone;\nit\u0027s what led to https://github.com/dart-lang/sdk/issues/64084, where\nthe `this` clause of the condition was added to one copy but not the\nother.\n\nThis CL replaces the two copies with a single helper,\n`_promoteMatchedValueAndScrutinee`, which takes a callback describing\nthe promotion to perform (a type test in the case of\n`promoteForPattern`, a null check in the case of\n`_nullCheckPattern`). The condition that decides whether the scrutinee\nmay be promoted is factored out into a separate predicate,\n`_scrutineeDenotesMatchedValue`. Since each of the three clauses of\nthat condition is sound for a different reason, the explanatory\ncomment (which previously appeared as one block above the condition)\nis now split up, so that each reason sits next to the clause it\njustifies.\n\nOne incidental difference: `_nullCheckPattern` now computes a flow\nmodel describing the state in which the null check fails, and discards\nit. This is harmless, because `FlowModel.tryMarkNonNullable` and\n`FlowModel.tryPromoteForTypeCheck` are pure; they build new immutable\nflow models rather than mutating flow analysis state.\n\nThis is a pure refactor; there are no behavioral changes, and no test\nexpectations needed to be updated.\n\nChange-Id: I2ebd1faba4191c5f807807f5978839c46a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549200\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Chloe Stefantsova \u003ccstefantsova@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "b4c8814196670e0dda4f40ae2bdce87f713e70e5",
      "tree": "b0115c3b17a863991225634ef43df01d8948cda4",
      "parents": [
        "35059d0656046e2c7dd0f36c1d126e20d7bc0de7"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Tue Sep 15 09:16:41 2026 -0700"
      },
      "committer": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Tue Sep 15 09:16:41 2026 -0700"
      },
      "message": "[vm,modular_aot] Add an internal VM flag for modular AOT mode\n\nWhen a module snapshot is loaded, enable the new flag and set\nother VM flags accordingly (e.g. disable background compilation,\nfield guards etc).\n\nTEST\u003dci\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: Ida1b1fdc58ed6ede2110cf45803bb8ba93195cbf\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547742\nReviewed-by: Alexander Aprelev \u003caam@google.com\u003e\n"
    },
    {
      "commit": "35059d0656046e2c7dd0f36c1d126e20d7bc0de7",
      "tree": "e8c362c3a138a68a22e066b03eb6d2e7d6c264b1",
      "parents": [
        "2759c6881689fcaddf58bbdca0b612511d48e804"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 15 09:06:40 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 09:06:40 2026 -0700"
      },
      "message": "AST. Add NamedAssignmentTarget.\n\nIntroduce NamedAssignmentTarget as the common interface for assignment\ntargets that operate on a written name. It owns the name, read\nresolution, and write resolution shared by unqualified, import-prefixed,\nand property assignment targets.\n\nRename PropertyAssignmentTarget.propertyName to name and update analyzer\nconsumers to use the shared abstraction. This removes duplicated\ntarget-specific handling in indexing, search, reference collection,\nusage and visibility verification, serialization, and AST projections.\n\nBug: https://github.com/dart-lang/sdk/issues/63882\nChange-Id: If0f6196d14b87e8cdcd7a714b1faa452f0235095\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549300\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n"
    },
    {
      "commit": "2759c6881689fcaddf58bbdca0b612511d48e804",
      "tree": "2edf72e5870c14389df3c6b0382694acd809aa91",
      "parents": [
        "f8fb134c609280e8c99391822c9fbb2cc619f571"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 15 08:57:11 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 08:57:11 2026 -0700"
      },
      "message": "CQ. Use deprecatedMemberUseImplicitSuperConstructorInvocation, rename deprecatedMemberUseImplicitType.\n\nChange-Id: I9b32872961d9cb07c28fcc5100121b7f2635ee42\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548340\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "f8fb134c609280e8c99391822c9fbb2cc619f571",
      "tree": "f6edca289764b60312be883a89a9ef5836f02a19",
      "parents": [
        "9e44b6a4dc2ee97ce6c291b29facc36c133947d2"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Tue Sep 15 08:06:56 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 08:06:56 2026 -0700"
      },
      "message": "[dartdev] Switch \u0027dart fix\u0027 to use LSP server\n\nIn addition to the automated tests still passing, I did some manual testing in analysis_server by enabling some extra lints:\n\n```\n    - prefer_double_quotes\n    - prefer_is_empty\n    - prefer_is_not_empty\n```\n\nI ran `dart fix` both with/without this change and the output was identical, producing 81k fixes:\n\n```\n81115 fixes made in 1955 files.\n```\n\nThe timings were:\n\n- legacy: 70s, 72s, 75s\n- lsp: ~63s, 68s, 58s\n\nIt\u0027s possible the difference is just noise, but it might also be slightly faster because the looping and overlays are all managed on the server (so there weren\u0027t overlay requests for 1955 files going between the processes).\n\nFixes https://github.com/dart-lang/sdk/issues/64142\n\nChange-Id: I6e8648b749895d70e2fbda4edb32cefbdf63d366\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546541\nCommit-Queue: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Keerti Parthasarathy \u003ckeertip@google.com\u003e\n"
    },
    {
      "commit": "9e44b6a4dc2ee97ce6c291b29facc36c133947d2",
      "tree": "42569a16cddba100cee8d98c01825ecce8f22d93",
      "parents": [
        "b47a983bb651d542564decdd7720ae9948c0ccac"
      ],
      "author": {
        "name": "Jonas Finnemann Jensen",
        "email": "jonasfj@google.com",
        "time": "Tue Sep 15 07:49:48 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 07:49:48 2026 -0700"
      },
      "message": "[dartpad] Map sandbox stack traces back to Dart source\n\nDart stack traces printed from a pad rendered as raw JavaScript\nframes pointing into a `blob:` URL: DDC modules were compiled\nwithout a source map, and nothing in the sandbox mapped the frames\nback.\n\nCompile with `buildSourceMap`/`inlineSourceMap` so that\n`ddcLibraryBundle` registers a real map in its trailing\n`setSourceMap(...)` call, load `dart_stack_trace_mapper.js` into the\nsandbox and install it as `$dartStackTraceUtility`, and give every\ngeneration of the module its own script URL so that a hot reload\nremaps against the new map rather than the one cached for the\nprevious generation.\n\nUncaught errors reach the host as a raw JavaScript `Error.stack` and\nare mapped explicitly; mapping drops the header, so it is re-attached\nfrom the Dart error, which is the only place the message appears.\n\nFrames now render relative to the root of the worker\u0027s in-memory\nfilesystem, for example `workspace/pad_0/main.dart 14:21  baz`.\nFrames in a dependency map to\n`pub-cache/hosted/\u003chost\u003e/\u003cname\u003e-\u003cversion\u003e/lib/...` rather than a\n`package:` URI; shortening those would require compiling one module\nper package.\n\nBug: https://github.com/dart-lang/dart-pad/issues/3853\nChange-Id: Ia87c136175c33e098cd50e62bcd509ff476014e2\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549460\nAuto-Submit: Jonas Jensen \u003cjonasfj@google.com\u003e\nReviewed-by: Sigurd Meldgaard \u003csigurdm@google.com\u003e\nCommit-Queue: Jonas Jensen \u003cjonasfj@google.com\u003e\n"
    },
    {
      "commit": "b47a983bb651d542564decdd7720ae9948c0ccac",
      "tree": "44eb3a30bf9fd204e3d5659dcba551db8ed05733",
      "parents": [
        "7b30c921769d276576038a52e891ad72d3b92eff"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Tue Sep 15 07:14:26 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 07:14:26 2026 -0700"
      },
      "message": "[Flow analysis] Extract a helper for creating a reference to a pattern\u0027s matched value.\n\n`promoteForPattern`, `_handleEqualityCheckPattern`, and\n`_nullCheckPattern` each began by fishing the `_PatternContext` off of\n`_stack` and asking it to create a `_Reference` to the matched value.\nReplace the three copies with a single `_createMatchedValueReference`\nhelper.\n\nNote that the `assert(identical(matchedValueType,\n_getMatchedValueType()))` checks are deliberately left at the call\nsites rather than moved into the helper: `promoteForPattern` doesn\u0027t\nhave such an assert, and can\u0027t, because when it\u0027s called to account\nfor the demonstrated type of a record pattern, the matched value type\nit receives predates the promotion performed by the record pattern\u0027s\nown type test.\n\nThis is a pure refactor; no behavior changes.\n\nChange-Id: I1435dde170fd0c24c47c9687fe1b121f6a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549081\nReviewed-by: Chloe Stefantsova \u003ccstefantsova@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "7b30c921769d276576038a52e891ad72d3b92eff",
      "tree": "201fdc08ad6497c845b32476f8070a3fbe43f173",
      "parents": [
        "0778b1cd31d4fb0516d6994173e935e4b69b5636"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Tue Sep 15 06:59:42 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 06:59:42 2026 -0700"
      },
      "message": "[analyzer] Initialize flow analysis even when primaryConstructorDeclaration is null.\n\nThis gives the analyzer better error recovery behavior when there is\nan orphan primary constructor body (a primary constructor body without\na corresponding primary constructor declaration). This is important to\nsupport interactive coding, since a user might, for example, add a\nprimary constructor body to a class before adding a primary\nconstructor declaration to the class header.\n\nIt also avoids an analyzer crash in the case where the orphan primary\nconstructor body makes use of a construct that requires flow analysis\nand is implemented using a method in `_fe_analyzer_shared`\u0027s\n`TypeAnalyzer` class, since these methods require flow analysis to be\ninitialized.\n\nTest cases have been added illustrating that flow analysis now works\nin an orphan primary constructor body. The new test case\n`test_primaryConstructorBody_noDeclaration_flowAnalysis_promotion`\ncrashes without this change.\n\nChange-Id: I12dd67a2154128376d2c7cd68129ea9e6a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547741\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "0778b1cd31d4fb0516d6994173e935e4b69b5636",
      "tree": "db29d530c66f6f53110892687b65be700f672e6b",
      "parents": [
        "ea39bd159d799233c918ab79530940226125f60b"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Tue Sep 15 06:51:23 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 06:51:23 2026 -0700"
      },
      "message": "[analyzer] Don\u0027t include end-of-comment */ markers as part of unclosed code blocks\n\nIf a fenced code block is not closed, the code blocks consumes the rest of the comment. For For multiline comments, although the leading `*`s were extracted from the comment ranges, the end of comment marker was not, which resulted in `*/` being highlighted as code.\n\nThis changes the `_CharacterSequenceFromMultiLineComment` implementation to ignore the end-of-comment marker in the same way that it ignores the leading star/star-space.\n\nFixes https://github.com/Dart-Code/Dart-Code/issues/6154\n\nChange-Id: I815d9d2a6fe0bd771d14c2cfaf6043bf3c9169fa\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547224\nReviewed-by: Samuel Rawlins \u003csrawlins@google.com\u003e\nCommit-Queue: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "ea39bd159d799233c918ab79530940226125f60b",
      "tree": "3dff47ae42f280b8cce3c9ee728e5a94c3d11ebc",
      "parents": [
        "d85531e28b13c25eeb87d7a7db4f8248bf8fa60d"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Tue Sep 15 06:51:23 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 06:51:23 2026 -0700"
      },
      "message": "[analysis_server] Fix \\r\\n and leading spaces in parsing of code/directives\n\nThis address two issues:\n\n1. Incorrect handling of `\\r\\n` when parsing dartdocs which could result in code blocks that end in between `\\r` and `\\n` (this is fixed by looking for `\\r?\\n` instead of only `\\n`)\n2. Consume the leading space after `///`, matching the behaviour of ` * ` in multiline comments\n\nAs well as solving the original issues I was looking at, this appears to have fixed (if I interpret correctly) some ranges of dartdoc directive errors that previously had off-by-one ranges running past the end of the line, which caused the tests to print the offset/lengths instead of making them with `^^^^^^`, so those tests now show what I suspect was the intended range.\n\nFixes https://github.com/dart-lang/sdk/issues/64155\n\nChange-Id: Id16882c9d5f9fe4dece17911766449c07c647f19\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/544140\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "d85531e28b13c25eeb87d7a7db4f8248bf8fa60d",
      "tree": "6a752f583c511fce75501a5c48e68935ad782aa3",
      "parents": [
        "3976bc37950609d2abbb12f37c6257db88ce1fa3"
      ],
      "author": {
        "name": "Jonas Finnemann Jensen",
        "email": "jonasfj@google.com",
        "time": "Tue Sep 15 06:39:23 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 06:39:23 2026 -0700"
      },
      "message": "[dartpad] Optionally build the web SDK for the Flutter DartPad SDK\n\n`setup_local_flutter.dart` takes `dart_sdk.js` and `ddc_outline.dill`\nout of `bin/cache/flutter_web_sdk/`. Those kernel files are stamped\nwith the Dart revision Flutter pins and the reader demands an exact\nmatch, so the tool dies with `Unexpected Kernel SDK Version` as soon as\nthis checkout has drifted. Flutter pins the dev channel, and a dev\nrevision is never an ancestor of `main`, so a `main` checkout can never\nmatch one.\n\nAdd `--web-sdk\u003dcopy|build`. In `build` mode those two files are\ncompiled here instead, from Flutter\u0027s `dart:ui` sources and this SDK\u0027s\n`dart:` sources: a libraries spec combining this SDK\u0027s `dartdevc`\ntarget with Flutter\u0027s entries is resolved over three multi-roots, then\n`kernel_worker` writes the outline and `dartdevc --compile-sdk` the\nJavaScript. The arguments mirror `web_sdk/BUILD.gn` in the Flutter\nengine, which builds the same two files.\n\nThe Dart SDK sources, `libraries.json` and `version` placed in\n`sdk.tar` follow along, so the analyzer sees the `dart:` libraries the\npad is actually compiled against.\n\nThe SDK source map is written to a separate `dart_sdk.js.map` instead of\nbeing inlined, mirroring the Dart DartPad SDK, so it can be fetched on\ndemand rather than on every load.\n\nThis assumes Flutter\u0027s `dart:ui` compiles against our `dart:core`,\nwhich holds in practice: it imports only public `dart:` libraries, and\nthe revision guard still applies to everything it is combined with.\n\n`copy` stays the default and behaves as before.\n\nChange-Id: I6b3333c7a1c2e4375f2d4ab0d8e9b442d285ed8c\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549440\nAuto-Submit: Jonas Jensen \u003cjonasfj@google.com\u003e\nReviewed-by: Sigurd Meldgaard \u003csigurdm@google.com\u003e\nCommit-Queue: Jonas Jensen \u003cjonasfj@google.com\u003e\n"
    },
    {
      "commit": "3976bc37950609d2abbb12f37c6257db88ce1fa3",
      "tree": "1ec20a46c43657dd6d2686fc17706ac0e66caba2",
      "parents": [
        "09b8f9d4582ff24199e271f2e4c89945e8b54f28"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Tue Sep 15 06:03:32 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 06:03:32 2026 -0700"
      },
      "message": "[vm] Intrinsify Int32x4.splat\n\nTEST\u003dlib/typed_data/int32x4_test lib/typed_data/int32x4_arithmetic_test lib/typed_data/int32x4_list_test\n\nIssue: https://github.com/dart-lang/sdk/issues/64170\nChange-Id: Ic8b2571469ff9e1dfe509cfe8b0bce3f07ab0f56\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/550200\nCommit-Queue: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n"
    },
    {
      "commit": "09b8f9d4582ff24199e271f2e4c89945e8b54f28",
      "tree": "81d6e7a3678f35e790c3bc98b658cab3e3ac63d8",
      "parents": [
        "a43a34eb4380da57c936d08bf1a6fce0c556a7a4"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Tue Sep 15 06:03:32 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 06:03:32 2026 -0700"
      },
      "message": "[typed_data] Cleanups from the attempted V128 extension type migration\n\nSmall independent cleanups around the SIMD value types, found while attempting\nthe extension type migration. They stand on their own and are worth having even\nif that migration never lands.\n\n- Add the missing @Since(\"3.14\") to Int32x4 members.\n- Add _getFloat64x2 and _setFloat64x2 to POLYMORPHIC_TARGET_LIST.\n- Test the front end typed-data denylist with `is ClassBuilder` instead of\n  casting to it.\n- Handle ExtensionType in the modular deeply-immutable validator.\n- Give the SIMD tests the static types inference could not supply, mostly\n  locals declared without an initializer. The deoptimisation helpers keep their\n  dynamic parameters and are left alone.\n- Drop the vm:exact-result-type pragma from _toClampedUint8, which is not\n  external.\n- Use the SIMPLE macro in il_arm64.cc, matching the other architectures.\n\nTEST\u003dlib/typed_data\n\nIssue: https://github.com/dart-lang/sdk/issues/64170\nCoreLibraryReviewExempt: only adds @Since annotations\nChange-Id: I55319b4691cd0da2a1a2c0092a43d2d1ce2db2c7\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548320\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nCommit-Queue: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n"
    },
    {
      "commit": "a43a34eb4380da57c936d08bf1a6fce0c556a7a4",
      "tree": "fc2b8695776ac0d8a0fe96092578e392fb228a3f",
      "parents": [
        "f1bf2afcffacddc72de7716b8b58ea635daf3707"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Tue Sep 15 05:53:16 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 05:53:16 2026 -0700"
      },
      "message": "analyzer_cli: Fix test broken on Windows\n\nConvert test to using TestCode.\n\nWork towards https://github.com/dart-lang/sdk/issues/64267\n\nA recent commit which _reduces_ the number of `convertPath` calls\nunfortunately missed this test. The test started failing because the\n_length_ of newlines on Windows is different from the length on POSIX\n(`\\r\\n` vs `\\n`).\n\nTestCode just avoids the issue by indicating in the text where\ndiagnostics are expected to be reported.\n\nChange-Id: Iec68cace9380767d44340c3a133b3c2bbab411a2\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548900\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\n"
    },
    {
      "commit": "f1bf2afcffacddc72de7716b8b58ea635daf3707",
      "tree": "77ea74c5dbb0b5c026d1b7b0c611a4909c19febc",
      "parents": [
        "74896e35b9e59e2fc8bc69386f5278d4b718348b"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Tue Sep 15 05:28:18 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 05:28:18 2026 -0700"
      },
      "message": "[This-promotion] Fix handling of null-check and null-assert patterns.\n\nPromotion of the scrutinee of a pattern match is handled in two places\nin flow analysis: `promoteForPattern` (for promotions arising from a\ntype test) and `_nullCheckPattern` (for promotions arising from a null\ncheck).\n\nWhen `this` promotion was first implemented, and later when it was\nfixed to account for the special control flow path used by switches\nand if/case constructs\n(https://dart-review.googlesource.com/c/sdk/+/515100), only\n`promoteForPattern` was updated. As a result, `this` failed to be\npromoted by null-assert patterns (`_!`), null-check patterns (`_?`),\nand `\u003d\u003d null`/`!\u003d null` constant patterns, in all the constructs that\ncan have `this` as their scrutinee (pattern assignments, pattern\nvariable declarations, `if`/`case`, and switches).\n\nThis CL makes the analogous change to `_nullCheckPattern`, and adds\ntests.\n\nFixes https://github.com/dart-lang/sdk/issues/64084\n\nChange-Id: If32ff1d854d1be2effa5c62dea7b0a206a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549100\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Chloe Stefantsova \u003ccstefantsova@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "74896e35b9e59e2fc8bc69386f5278d4b718348b",
      "tree": "699dff1defda048e8ee87472fff437567d0e4b9a",
      "parents": [
        "0f92a643ffe066b26527b8d6e3db153a1bd681d0"
      ],
      "author": {
        "name": "Sinan Oz",
        "email": "sinanoz@google.com",
        "time": "Tue Sep 15 01:22:41 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 15 01:22:41 2026 -0700"
      },
      "message": "analysis-server: fixed benchmark uploader for Windows benchmarks\n\nChange-Id: Iae46a7f6f755c8e0d217c2f7f18d84551c18193c\nCq-Include-Trybots: luci.dart.try:analyzer-win-release-try\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548200\nReviewed-by: Alexander Thomas \u003cathom@google.com\u003e\nCommit-Queue: Sinan Oz \u003csinanoz@google.com\u003e\n"
    },
    {
      "commit": "0f92a643ffe066b26527b8d6e3db153a1bd681d0",
      "tree": "8c98985e0a277600a482ae29cdc50d331e474c4b",
      "parents": [
        "8d04fb56de3dce8b1894dddb51363a409ce4cbfe"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Mon Sep 14 17:31:42 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 17:31:42 2026 -0700"
      },
      "message": "[analyzer] Add additional indentation for BNF snippets in analyzer types\n\nThese snippets were indented by 4 spaces to make them code blocks. However dartdoc requires 5 spaces (4 + 1 after the comment marker) meaning these were rendered incorrectly.\n\nI\u0027m working on a change at https://dart-review.googlesource.com/c/sdk/+/544140 to make analyzer consistent with dartdoc, which results in warnings on some of these snippets because they are no longer treated as code and some bracketed references do not resolve.\n\nThis CL adds an extra space of indenting to them all (not just those that produce warnings, to keep them all consistent) to unblock my CL, but I\u0027ve also opened https://github.com/dart-lang/sdk/issues/64206 to discuss/decide whether they should instead by non-code blocks and the references fixed up.\n\nChange-Id: I1a218591a7623e96abf30c9e9fe045158b30b46a\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546420\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n"
    },
    {
      "commit": "8d04fb56de3dce8b1894dddb51363a409ce4cbfe",
      "tree": "e1572a88dcfeefa1238b894bf10803c593b16dc4",
      "parents": [
        "01e2c549bf9eff71731f8dff0b7782bb5151b1d2"
      ],
      "author": {
        "name": "dart-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "dart-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Mon Sep 14 17:05:29 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 17:05:29 2026 -0700"
      },
      "message": "Roll BoringSSL from f00ee8085f98 to 2b60ed4ed5bd (7 revisions)\n\nhttps://boringssl.googlesource.com/boringssl.git/+log/f00ee8085f98..2b60ed4ed5bd\n\n2026-09-10 davidben@google.com Call va_end even if OPENSSL_vasprintf_internal fails\n2026-09-10 chlily@google.com Revert \"Make all non-asm-included BoringSSL headers at least include \u003copenssl/base.h\u003e.\"\n2026-09-10 metemad@google.com Add OID and NID definitions for SLH-DSA (RFC 9909).\n2026-09-10 davidben@google.com Fix typo in comment\n2026-09-10 swiggett@google.com Use pwd_seed to determine y parity for sae hunt-and-peck.\n2026-09-10 rpolzer@google.com ML-KEM, ML-DSA: fix a -Wsign-compare warning.\n2026-09-09 chlily@google.com Add ssl_compliance_policy_fips_202609\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/boringssl-dart-sdk\nPlease CC dart-engprod@google.com,dart-vm-gardener@rotations.google.com,dart-vm-team@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in BoringSSL: https://crbug.com/boringssl/new\nTo file a bug in Dart SDK: https://github.com/dart-lang/sdk/issues\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nTbr: dart-vm-gardener@rotations.google.com\nChange-Id: Ife8e2032ca5156c0d823eec366f0925108ff291f\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548920\nReviewed-by: Liam Appelbe \u003cliama@google.com\u003e\nReviewed-by: Brian Quinlan \u003cbquinlan@google.com\u003e\nCommit-Queue: Liam Appelbe \u003cliama@google.com\u003e\n"
    },
    {
      "commit": "01e2c549bf9eff71731f8dff0b7782bb5151b1d2",
      "tree": "4b0fba7711cd62f523dd9099b92361de02bb8af1",
      "parents": [
        "86e3dc70655715ca0f7e0184d8fc671f5900eaf0"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Mon Sep 14 16:30:22 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 16:30:22 2026 -0700"
      },
      "message": "[wasm_builder] Add fixed-width and relaxed SIMD opcodes\n\nIssue: https://github.com/dart-lang/sdk/issues/64170\nIssue: https://github.com/dart-lang/sdk/issues/64216\nChange-Id: Id17ae0696863bfdaa491197e441304eca6dabb28\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547700\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nCommit-Queue: Søren Pedersen \u003csorensp@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Søren Pedersen \u003csorensp@google.com\u003e\n"
    },
    {
      "commit": "86e3dc70655715ca0f7e0184d8fc671f5900eaf0",
      "tree": "784d5bc49bd66ebced5d78c6e81942070a10fc66",
      "parents": [
        "cd5816e001399ffcc45f1050917acbbad7ae33d4"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Mon Sep 14 15:59:55 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 15:59:55 2026 -0700"
      },
      "message": "[analyzer] Adopt \"flow analysis root\" terminology\n\n`FlowAnalysisHelper.bodyOrInitializer_enter` and\n`bodyOrInitializer_exit` predate the introduction of the\n`FlowAnalysisRootImpl` mixin, and their name no longer describes what\nthey do. The region they delimit isn\u0027t always a body or an\ninitializer: it can be an annotation, a primary constructor body, or\n(for a constructor) the initializer list *and* the body\ntogether. `FlowAnalysisRootImpl` already defines the right term for\nsuch a region, and the helper\u0027s private `_flowAnalysisRoot` field\nalready uses it, so the two methods are renamed to\n`flowAnalysisRoot_enter` and `flowAnalysisRoot_exit`.\n\nThe corresponding inference log hooks,\n`InferenceLogWriter.enterBodyOrInitializer` and\n`exitBodyOrInitializer`, are renamed to `enterFlowAnalysisRoot` and\n`exitFlowAnalysisRoot`, along with the `_inBodyOrInitializer` state\nflag that tracks them.\n\nEach class keeps its own existing naming convention:\n`FlowAnalysisHelper` uses `subject_enter` / `subject_exit` (matching\n`executableDeclaration_enter` and `labeledStatement_enter`), while\n`InferenceLogWriter` uses `enterSubject` / `exitSubject` (matching\n`enterExpression` and `enterAnnotation`).\n\nSeveral doc comments repeated the same enumeration of region kinds\n(\"the body of a top level function or method, or the initializer of a\ntop level variable or field, or the initializers and body of a\nconstructor\"). These now defer to `FlowAnalysisRootImpl`, which\ndocuments the enumeration and the nesting rule in one place. Two\nincidental fixes made along the way: the doc comment on\n`exitBodyOrInitializer` was a copy of the one on\n`enterBodyOrInitializer` and claimed the method was called on *entry*,\nand an assertion message referred to `setExpressionVisitSource`, which\nis actually named `setExpressionVisitCodePath`.\n\nThis is a pure rename with no behavioural change, so no tests are\nadded; the renamed declarations are all private to\n`pkg/analyzer/lib/src`, so there is no API or CHANGELOG impact.\n\nCode review note: this change forced files\n`flow_analysis_visitor.dart` and `inference_log.dart` to be\nre-sorted. The re-sorting is isolated to patchset 3, so if you want to\nreview the substance of the change without sorting noise, compare base\nto patchset 2.\n\nTAG\u003dagy\nCONV\u003d23626714-5e17-463a-909b-247d292151c4\n\nChange-Id: Iba4b96a9911c4d46641b2fe585032d246a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549700\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "cd5816e001399ffcc45f1050917acbbad7ae33d4",
      "tree": "213f5a9b3f561213cd1cfd32bc5793a54cf5a82c",
      "parents": [
        "7cbc2c910321f947ae9422a24c65b088df5acf74"
      ],
      "author": {
        "name": "Nicholas Shahan",
        "email": "nshahan@google.com",
        "time": "Mon Sep 14 14:22:12 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 14:22:12 2026 -0700"
      },
      "message": "[ddc] Fix invocation of getter with generic type\n\nInvoking a getter as if it is a method should correctly recognize a\n\"callable\" class and invoke the result of invoking the getter.\n\nFix the inspection of the getter type to correctly recognize when the\nstatically instantiated generic type is a callable interface and\nproduce the invocation with the expected calling convention.\n\nFixes: https://github.com/dart-lang/sdk/issues/64079\n\nChange-Id: I5663a34b9f39490460faf3a790d8e8c65add738c\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545980\nReviewed-by: Kallen Tu \u003ckallentu@google.com\u003e\nReviewed-by: Mark Zhou \u003cmarkzipan@google.com\u003e\nCommit-Queue: Nicholas Shahan \u003cnshahan@google.com\u003e\n"
    },
    {
      "commit": "7cbc2c910321f947ae9422a24c65b088df5acf74",
      "tree": "9017c2c118654cd0a42fcb03194c5e70441c760b",
      "parents": [
        "2446bf49a2c4d4861e9ebc40d24a7005be730eaa"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Mon Sep 14 14:17:18 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 14:17:18 2026 -0700"
      },
      "message": "[analyzer] Resolve formal parameters inside the enclosing flow region\n\n`visitFunctionDeclaration` enters flow analysis before visiting a\nfunction\u0027s formal parameters, so the expressions in their default\nvalues are analyzed as part of the function\u0027s own flow analysis\nregion.  `visitMethodDeclaration` and `visitConstructorDeclaration`\ndid the opposite: they visited the parameters first, while flow\nanalysis was still inactive.\n\nThat wasn\u0027t a correctness bug. `visitFormalParameterList` wraps its\nwork in `withFlowAnalysis`, which opens a fresh body-or-initializer\nregion whenever one isn\u0027t already active, so flow analysis has always\nbeen available in a default value regardless of the order. But it does\nmean that methods and constructors established a second, redundant\nflow analysis region rooted at the `FormalParameterList`, costing an\nextra `AssignedVariables` walk over the parameter list (which then\ngets walked again when the declaration\u0027s own assigned variables are\ncomputed), an extra `FlowAnalysis` instance, and an extra\n`FlowAnalysisLog` retained on the AST for as long as the resolved unit\nlives. That last one matters most: logs are retained so that\n`CompilationUnit.lookupThisType` can answer queries, so this was a\nper-method and per-constructor cost paid in every file the analysis\nserver has open -- even for parameter lists with no default values at\nall, which is the common case.\n\nMake the two visitors match `visitFunctionDeclaration`. For\nconstructors this also requires moving the flow analysis entry offset\nback from the initializer list to the formal parameter list, since the\nregion now has to start before the parameters it contains; otherwise\n`FlowAnalysisLogBuilder.checkOffset` would see decreasing offsets.\n`executableDeclaration_enter` moves to the same offset, so that\nconstructors use a single entry offset the way functions and methods\ndo.\n\nPrimary constructors are deliberately left alone. Their formal\nparameter list lives in the class header rather than inside the\nprimary constructor body, so the two aren\u0027t nested and there is no\nenclosing region for the parameter list to join; it legitimately\nremains a flow analysis root of its own.\n\nAdds `FlowAnalysisRootTest`, which asserts exactly which nodes end up\ncarrying a `FlowAnalysisLog` -- previously nothing covered this, so\nthe redundant regions were invisible. Also adds `lookupThisType` cases\nfor an anonymous method in a default value of each kind of\ndeclaration; those pass both before and after this change, confirming\nthe reordering is observationally neutral.\n\nTAG\u003dagy\nCONV\u003d23626714-5e17-463a-909b-247d292151c4\n\nChange-Id: I621578210359425374dcb42d07fa8b3d6a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548980\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "2446bf49a2c4d4861e9ebc40d24a7005be730eaa",
      "tree": "2c3bcb74b457de0a25d5150b3426860c2cb7ffb4",
      "parents": [
        "5600be7840137c7276c72ac2a450d26889f3f46c"
      ],
      "author": {
        "name": "Kallen Tu",
        "email": "kallentu@google.com",
        "time": "Mon Sep 14 13:37:59 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 13:37:59 2026 -0700"
      },
      "message": "[migrate] Split bump and prepare, rename ExecutionOutcome.\n\n- Break `_executePrepareAndBump` into `_applyPreparatoryFixes`, `_requirePreparedCode`, and `_bump`.\n- Replace the public `ExecutionOutcome` with a private `_StepOutcome` (`completed`/`failed`)\n- Rename `_executeCleanup` to `_cleanup`.\n\nThere are no behavioral changes in this CL. This is done also in\npreparation for changing the multi-version bump to update all packages\nversion by version rather than one package all the way through.\n\nChange-Id: I50b60444e7cac7cbf3fe91df331be4bfafea031e\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549160\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Kallen Tu \u003ckallentu@google.com\u003e\n"
    },
    {
      "commit": "5600be7840137c7276c72ac2a450d26889f3f46c",
      "tree": "8c5359f41c8832954d6f3226698559129ab0f93f",
      "parents": [
        "06d46df61df127e5af8ed21c1827f944a8beebc3"
      ],
      "author": {
        "name": "Kallen Tu",
        "email": "kallentu@google.com",
        "time": "Mon Sep 14 13:33:34 2026 -0700"
      },
      "committer": {
        "name": "Kallen Tu",
        "email": "kallentu@google.com",
        "time": "Mon Sep 14 13:33:34 2026 -0700"
      },
      "message": "[migrate] Clean up version normalization and fix tight upper bound bug.\n\n- Small clean up to reuse a helper for version normalization.\n- If the upper bound doesn\u0027t allow for the given minimum version, we use\nthe caret syntax. Otherwise bumping a constraint like `\u003e\u003d3.12 \u003c3.13`\nwould give non-usable constraints.\n- Move package constraint extracting into its own helper\n`packageSdkConstraint`.\n\nChange-Id: I76a30710449003a335cdf8cd1ead3d50b758339c\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548962\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Kallen Tu \u003ckallentu@google.com\u003e\n"
    },
    {
      "commit": "06d46df61df127e5af8ed21c1827f944a8beebc3",
      "tree": "b179b3f500bcf5c6022087723f7189ec85bcb073",
      "parents": [
        "587a8696b746f2766c13c2b774b5f5f3f82aea76"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Sep 14 13:15:51 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 13:15:51 2026 -0700"
      },
      "message": "Fix analyzer_public_api_test on Windows\n\nFixes https://github.com/dart-lang/sdk/issues/64267\n\nThis CL mainly switches this test to use TestCode, which is used by\nall other lint rule tests.\n\nThis test doesn\u0027t really fit the `assertDiagnosticsFromMarkup` that\nall other lint rules use, so it overrides it.\n\nChange-Id: I14592e5fb75817c8d6f1b4364ede17d76e369a8f\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548963\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\n"
    },
    {
      "commit": "587a8696b746f2766c13c2b774b5f5f3f82aea76",
      "tree": "8bddfd22560c31c659673a18ace6a9b6fbe3a4ce",
      "parents": [
        "3937b51eadeb31f9b87a5f990546907db97dc628"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Mon Sep 14 11:59:05 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 11:59:05 2026 -0700"
      },
      "message": "[analyzer] Don\u0027t try to serialize anonymous method invocations\n\n`AstBinaryWriter` is a `ThrowingAstVisitor2` that only knows how to\nserialize expressions; the summary format has no representation for\nstatements or function bodies. So any expression that carries a function\nbody is inherently unserializable, and the linker deals with this by\nrunning `replaceNotSerializableExpression` over every expression that is\nabout to be summarized (constant variable initializers, formal parameter\ndefault values, constructor initializers, and annotation arguments),\nsubstituting a `_notSerializableExpression` marker for anything it can\u0027t\nhandle.\n\nThe visitor that drives that check knew about function expressions, for\nloop elements, pattern assignments and switch expressions, but not about\nanonymous method invocations, which also carry a function body. As a\nresult an anonymous method invocation in any of those positions survived\n`detachElementsFromNodes`, reached `AstBinaryWriter`, and threw\n`Missing implementation of visitAnonymousMethodInvocation`. Because that\nhappens inside `Linker.link`, the failure isn\u0027t localized to the offending\nexpression: the entire library cycle fails to link, so analysis of the\nwhole cycle is lost.\n\nFix this by adding `AnonymousMethodInvocation` to the set of node kinds\n`_IsSerializableNodeVisitor` rejects. Anonymous methods now behave exactly\nlike function literals in these positions. Teaching `AstBinaryWriter` to\nserialize them instead would mean adding statement bodies to the binary\nformat, which no client needs -- an anonymous method invocation can never\nbe a constant expression, so the marker is the correct outcome.\n\nThe new test suite covers all six positions that reach the summary\nwriter. Every one of its tests fails without this change, in both the\n`keepLinking` and `fromBytes` variants, since `link()` always writes\nlibraries regardless of whether the test later reads elements back from\nbytes.\n\nTAG\u003dagy\nCONV\u003d23626714-5e17-463a-909b-247d292151c4\n\nChange-Id: I301c555f86aab768c1e05dc375cae14a6a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548780\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "3937b51eadeb31f9b87a5f990546907db97dc628",
      "tree": "d17b06ad9320c61395a1cdfe64623d74e55d95df",
      "parents": [
        "4936de1ebbe1eb8e5be9e9702c8c862fbd215fd0"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Mon Sep 14 11:39:12 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 11:39:12 2026 -0700"
      },
      "message": "Issue 64175. Include each part only once.\n\nBug: https://github.com/dart-lang/sdk/issues/64175\nChange-Id: I113fea10bbed32c33c4af7cfda7704a609dd48ff\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546060\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "4936de1ebbe1eb8e5be9e9702c8c862fbd215fd0",
      "tree": "20a8361c8d328c314b3bca916106905a0c10b96d",
      "parents": [
        "d2796c9813483a8c2a69592af5ead8a74b4abbf3"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Mon Sep 14 11:35:50 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 11:35:50 2026 -0700"
      },
      "message": "[modular_aot] Use platform snapshot when running tests\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: I25ea5ba3528683a838f58fa14e3ed6b795b69e41\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/539560\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n"
    },
    {
      "commit": "d2796c9813483a8c2a69592af5ead8a74b4abbf3",
      "tree": "cefa4ff0dc6ea6e473a6745072a361595362c220",
      "parents": [
        "0bbd7234fe89ebbd266c75d9f654252df053e2ca"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Sep 14 11:30:08 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 11:30:08 2026 -0700"
      },
      "message": "DAS: Improve performance of the documentColor request\n\nFixes https://github.com/dart-lang/sdk/issues/64268\n\nHere are the performance issues, several bottlenecks and bugs causing\nhigh latency and even crashes:\n\n1. Unconstrained node traversal in `_ColorBuilder`:\n   * `visitSimpleIdentifier` visited every simple identifier in the\n     compilation unit (declarations, parameters, member names, class\n     names, variables).\n   * If an identifier had static type Color (e.g., theme, color,\n     background), it invoked `computer.tryAddColor(node)`.\n2. Redundant constant evaluation on incompatible expressions:\n   * `getExpressionColorInformation` was calling\n     `getExpressionColorObject` (which invokes\n     `computeConstantValue()`) before attempting to parse known\n     constructors.\n   * For `MethodInvocation`, `PropertyAccess`, and non-const\n     `InstanceCreationExpression`, calling `computeConstantValue()`\n     was guaranteed to fail, yet ran expensive constant analysis\n     across child subtrees.\n   * In `metadata.dart` (another file in devtools I opened),\n     expressions like\n     `this.backgroundColor ?? theme.colorScheme.secondaryContainer`\n     caused `computeConstantValue()` to be called on V1\n     SimpleIdentifierImpl nodes, throwing\n     \u0027Bad state: SimpleIdentifierImpl is not in the V2 AST view.\u0027\n     and failing the request with code -32001.\n3. Expensive type hierarchy traversal in\n   `getConstructorInvocationColorInformation`:\n   * Checking `expression.staticType.isColor` walked the entire\n     supertype list for each constructor invocation even when the class\n     and library name were already matched.\n\nThis CL contains these changes to fix the above:\n\n1. Optimized identifier filtering:\n   * Updated `_ColorBuilder.visitSimpleIdentifier` to skip declaration\n     identifiers, property names of PropertyAccess, members of\n     PrefixedIdentifier, method names of MethodInvocation, constructor\n     names, named types, labels, and any identifier that does not\n     resolve to a compile-time constant variable or const getter\n     (`isConst`).\n2. Fast-path constructor invocations and constant evaluation gating:\n   * Fast-pathed constructor invocations in\n     `getExpressionColorInformation` so `Color(...)`,\n     `Color.fromARGB(...)`, etc. are parsed directly without invoking\n     constant evaluation.\n   * In `getExpressionColorObject`, immediately returned null for\n     MethodInvocation, avoided calling `computeConstantValue()` on\n     PropertyAccess or IndexExpression (delegating directly to\n     `realTarget` member/index lookup), and ensured\n     only const variables or const constructor expressions trigger\n     constant evaluation.\n   * Wrapped `computeConstantValue()` in try/catch to guard against\n     unexpected AST view issues.\n   * Simplified `getConstructorInvocationColorInformation` to match\n     class names before checking library names, avoiding redundant\n     `isColor` hierarchy walks.\n\nI repro\u0027d this by opening `codeview.dart` in the devtools repo. The replay tool showed a 99% savings on warm opening, 58% savings on cold opening.\n\nChange-Id: I88e471178aafd37b7a892ea5127e839a08bdcc0d\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549080\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n"
    },
    {
      "commit": "0bbd7234fe89ebbd266c75d9f654252df053e2ca",
      "tree": "fbc46d7ed59a6214f800c29385e7e43c08bd18f4",
      "parents": [
        "337d0eef48090ea115e7cd5028618543849431f4"
      ],
      "author": {
        "name": "Alexander Aprelev",
        "email": "aam@google.com",
        "time": "Mon Sep 14 10:55:49 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 10:55:49 2026 -0700"
      },
      "message": "Roll Clang from dde579becf31 to 5e63f2ce42db\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/clang-dart-sdk\nPlease CC dart-engprod@google.com,dart-vm-gardener@rotations.google.com,dart-vm-team@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Clang: https://bugs.fuchsia.dev/p/fuchsia/issues/list?q\u003dcomponent%3AToolchain\nTo file a bug in Dart SDK: https://github.com/dart-lang/sdk/issues\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nTEST\u003dci\n\nCq-Include-Trybots: luci.dart.try:dart-sdk-linux-try;luci.dart.try:dart-sdk-linux-arm64-try;luci.dart.try:dart-sdk-mac-try;luci.dart.try:dart-sdk-mac-arm64-try;luci.dart.try:dart-sdk-win-try;luci.dart.try:vm-asan-mac-release-arm64-try\nChange-Id: I279b350f255a13e837b6a6856de40e79ba4593ab\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/538661\nReviewed-by: Ryan Macnak \u003crmacnak@google.com\u003e\nReviewed-by: Alexander Aprelev \u003caam@google.com\u003e\nCommit-Queue: Alexander Aprelev \u003caam@google.com\u003e\n"
    },
    {
      "commit": "337d0eef48090ea115e7cd5028618543849431f4",
      "tree": "c3eb3a49afe20bdde49c8e35940affeb1da7c302",
      "parents": [
        "f6d9db77591ef33799b024981d552709511d0848"
      ],
      "author": {
        "name": "Alexander Aprelev",
        "email": "aam@google.com",
        "time": "Mon Sep 14 09:24:56 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 09:24:56 2026 -0700"
      },
      "message": "[vm/shared] Remove isolate_group forwarder from pkg:dart_internal\n\nChange-Id: I5078d70730b5a85b5588c79d5608e6ba90619a69\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548280\nCommit-Queue: Alexander Aprelev \u003caam@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n"
    },
    {
      "commit": "f6d9db77591ef33799b024981d552709511d0848",
      "tree": "b797c3d9e73d46c176d5af6eab0d11c6eae8427f",
      "parents": [
        "b09dd715a2f8347ea880b3a1321ac03a18dd0984"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Mon Sep 14 09:16:56 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 09:16:56 2026 -0700"
      },
      "message": "[analyzer] Move `lookupThisType` from `FunctionBody` to `CompilationUnit`\n\nThe experimental `FunctionBody.lookupThisType` let clients ask what\nthe type of `this` is at a given source offset, by consulting the\n`FlowAnalysisLog` that flow analysis had stored on the function body.\nThat API shape had two problems.\n\nFirst, `this` can be meaningful at offsets that aren\u0027t inside any\nfunction body. The initializer of a `late` instance field binds\n`this`, and with anonymous methods, an anonymous method binds `this`\ninside a top level variable initializer, a field initializer, or a\nconstructor initializer list. In none of those positions is there a\n`FunctionBody` for a client to start from, so the information was\nsimply unreachable.\n\nSecond, even where a `FunctionBody` did exist, finding the right one\nwas the client\u0027s problem. Both in-tree callers coped by walking up to\nthe *outermost* enclosing `FunctionBody`, which happened to work only\nbecause logs were stored on bodies in the first place.\n\nSo the query now lives on `CompilationUnit`, which is what the\nintended clients (code completion, debugger expression evaluation)\nactually have in hand, alongside an offset.\n\nMoving log ownership to the flow analysis root\n----------------------------------------------\n\nTo make that possible, ownership of the log moves from the function\nbody to the node that actually delimits the region flow analysis is\nrun over (the *flow analysis root*). A new internal mixin,\n`FlowAnalysisRootImpl`, holds the log, and\n`FlowAnalysisHelper.bodyOrInitializer_enter` now requires a\n`FlowAnalysisRootImpl`; `bodyOrInitializer_exit` stores the log itself\nrather than returning it for the caller to file away.\n\nMaking the storage automatic fixes a whole class of bug. A\nconstructor\u0027s log covers the initializer list, but was stored on\n`node.body`, a sibling of the initializers. And of the eight flow\nanalysis roots, four (top level getter declarations, variable\ndeclarations, annotations and enum constant declarations) had no\n`FunctionBody` to store their log on, so they silently threw it\naway. That\u0027s why a promoted `this` inside a `late` instance field\ninitializer was unqueryable, a bug that exists today, independently of\nanonymous methods.\n\nRequiring the parameter to be a `FlowAnalysisRootImpl` also flushed\nout two roots that weren\u0027t in the original inventory:\n`FormalParameterList`, which wraps default values in their own flow\nanalysis region whenever flow analysis isn\u0027t already active, and\n`FormalParameterDefaultClause`, the root reached by\n`AstResolver.resolveExpression` during summary linking. Both now mix\nin `FlowAnalysisRootImpl`. Relatedly,\n`AstResolver.resolvePrimaryConstructor` was passing the\n`PrimaryConstructorDeclaration` where `ResolverVisitor` passes the\n`PrimaryConstructorBody`; it now passes the body, so the two paths\nagree on which node owns the log.\n\nInnermost, not outermost\n------------------------\n\n`CompilationUnit.lookupThisType` walks up from the node covering the\noffset and takes the first ancestor with a non-null log. It matters\nthat this is the *innermost* such ancestor rather than the outermost:\nflow analysis roots nest, because the metadata of a method declaration\nis resolved, and therefore flow analyzed, before flow analysis begins\nfor the method itself. The walk also has to skip nodes that mix in\n`FlowAnalysisRootImpl` but never actually acted as a root (a local\nvariable declaration or a local function declaration, for instance)\nwhich it does by requiring the log to be non-null.\n\nClient migration\n----------------\n\nThe one in-tree client (the `thisTypeAt` extension in the analysis\nserver\u0027s `DeclarationHelper`) is deleted outright; its single call\nsite becomes `request.unit.lookupThisType(offset: offset)`. This also\nretires the extension\u0027s \"assumes the receiver is inside the same\nfunction body as the offset\" precondition, which stops being\nmeaningful once the lookup is purely offset-driven.\n\nThe behavior change is strictly an improvement. Where completion\nalready worked it\u0027s unaffected, and the unpromoted field-initializer\ncase is unaffected too, since a `null` `thisType` and the enclosing\nclass produce the same fallback in `_addInheritedMembers`. What\u0027s new\nis that a promoted `this` in a `late` instance field initializer now\nreaches completion, and that completion inside an anonymous method in\nany initializer position sees the right receiver type.\n\nPart of https://github.com/dart-lang/sdk/issues/63816.\n\nTAG\u003dagy\nCONV\u003d23626714-5e17-463a-909b-247d292151c4\n\nChange-Id: I927c579be92a1765df269a229cff72bf6a6a6964\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548581\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "b09dd715a2f8347ea880b3a1321ac03a18dd0984",
      "tree": "e3252c19385d28c2b8d67320dac310eb75e90d3a",
      "parents": [
        "bff9cd958103f19539b0fdbc0871e09aed4056fa"
      ],
      "author": {
        "name": "David Morgan",
        "email": "davidmorgan@google.com",
        "time": "Mon Sep 14 09:11:23 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 09:11:23 2026 -0700"
      },
      "message": "[linter] avoid_positional_boolean_parameters: allow function types in a fixed signature.\n\nA method that overrides another method, or augments one, cannot change\nthe types of its parameters. Reporting positional boolean parameters of\na function type written in such a signature is therefore a false\npositive; the author has no way to act on it. Function types written in\na method body are still reported.\n\nBug: https://github.com/dart-lang/sdk/issues/64219\nChange-Id: I855d675b3c3fa4be588aa841df0d2b4c08c79110\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548800\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Morgan :) \u003cdavidmorgan@google.com\u003e\n"
    },
    {
      "commit": "bff9cd958103f19539b0fdbc0871e09aed4056fa",
      "tree": "0a026c89294b42953a7898c324a7cb35cf78a0b4",
      "parents": [
        "d3e628b7d7788b0fec7320549e3cacaa896810de"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Mon Sep 14 09:03:19 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 09:03:19 2026 -0700"
      },
      "message": "[vm,modular_aot] Disable deoptimization of code generated by modular AOT\n\nTEST\u003dci\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: Iaca9bcc212086c5ea7a199e6929e94224424b47b\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547840\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\n"
    },
    {
      "commit": "d3e628b7d7788b0fec7320549e3cacaa896810de",
      "tree": "a6d42fbe8abcc2db1c1c979d2e95567d96d5cbde",
      "parents": [
        "c5a3ec81dc717b2abaa43784099ca18b7ea39b5c"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Mon Sep 14 09:00:49 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 09:00:49 2026 -0700"
      },
      "message": "[modular_aot] Unary double operations\n\nTEST\u003dci\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: Ib210b619af0030a29dbd74c385b1cbe1015b8280\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548460\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\n"
    },
    {
      "commit": "c5a3ec81dc717b2abaa43784099ca18b7ea39b5c",
      "tree": "a2ecf78195016ec4550359166f4e8e411fc66104",
      "parents": [
        "6eb8d5c99d649b27ad338c123909dda9cc082cec"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Mon Sep 14 07:35:48 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 07:35:48 2026 -0700"
      },
      "message": "[vm, corelib] Update index in _LinkedHashMapMixin.removeWhere and _LinkedHashSetMixin.removeWhere\n\nStale index after \u0027removeWhere\u0027 could confuse subsequent operations\nsuch as \u0027[]\u003d\u0027 or \u0027putIfAbsent\u0027 to treat deleted key marker (_data) as\na regular key.\n\nFixes https://github.com/dart-lang/sdk/issues/64217\n\nChange-Id: Iaa61794ee9d288cf398f71a41c2f6de030510032\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548300\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\nReviewed-by: Lasse Nielsen \u003clrn@google.com\u003e\n"
    },
    {
      "commit": "6eb8d5c99d649b27ad338c123909dda9cc082cec",
      "tree": "ff8bdcac4aac7d4763ef6c27791e28ddc459cecf",
      "parents": [
        "62d09beafc7358fe975c4dde9522432977a04f2b"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Mon Sep 14 06:18:30 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 06:18:30 2026 -0700"
      },
      "message": "[dart2wasm] Use inferred type also for optional parameters\n\nIf a parameter is optional it is still guaranteed to have a value that\nis an instance of the parameter\u0027s type.\n\n\u003d\u003e There\u0027s no need to make an optional parameter always nullable.\n\nThis allows using unboxed values in signatures that have\ninferred type of non nullable bool/int/...\n\nChange-Id: I0131c269922393e7679ec22d90eb0b4a0c7e6322\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549600\nReviewed-by: Søren Pedersen \u003csorensp@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n"
    },
    {
      "commit": "62d09beafc7358fe975c4dde9522432977a04f2b",
      "tree": "9896372f571f255a38343785bb25955c81f4c94a",
      "parents": [
        "97f557c9d651ca0e9806c1dbe46949d664669ccb"
      ],
      "author": {
        "name": "Jonas Finnemann Jensen",
        "email": "jonasfj@google.com",
        "time": "Mon Sep 14 02:42:36 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 02:42:36 2026 -0700"
      },
      "message": "[dartpad] Fix hardcoded SDK platformVersion in pub tool\n\n`pub()` hardcoded `platformVersion: \u00273.12.0\u0027`, which is stale.\n\nRead the version from the `version` file that ship at `DartPadConfig.dartSdkPath`.\n\nChange-Id: I797c979c4495440a72c0bebf5eddd877e54eb588\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549360\nCommit-Queue: Jonas Jensen \u003cjonasfj@google.com\u003e\nReviewed-by: Sigurd Meldgaard \u003csigurdm@google.com\u003e\nAuto-Submit: Jonas Jensen \u003cjonasfj@google.com\u003e\nCommit-Queue: Sigurd Meldgaard \u003csigurdm@google.com\u003e\n"
    },
    {
      "commit": "97f557c9d651ca0e9806c1dbe46949d664669ccb",
      "tree": "6f0a0b3ff0da942ddf32734a0dfd44077819803c",
      "parents": [
        "df422e81e0fba24ddbfe85a1abbe82dd603ef1d1"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Mon Sep 14 01:57:09 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 01:57:09 2026 -0700"
      },
      "message": "[dartdev] Add test for passing -D both before and after run\n\nThis currently works for `run` but the const version doesn\u0027t work for\n`run -r`.\n\nChange-Id: I27eed49d5e3b032a88d864bc390c9945cf3a8987\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548121\nReviewed-by: Ben Konyi \u003cbkonyi@google.com\u003e\nCommit-Queue: Jens Johansen \u003cjensj@google.com\u003e\n"
    },
    {
      "commit": "df422e81e0fba24ddbfe85a1abbe82dd603ef1d1",
      "tree": "f0de1dd3563ecb4b23e582cff8c95e44496cfa1e",
      "parents": [
        "7c902ea79d639d6de8f3279d9a1982c85e57e943"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Mon Sep 14 01:55:31 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 01:55:31 2026 -0700"
      },
      "message": "[dartdev] Pass -D to the compiler on dart run -r\n\nAdd tests and pass the defines prepended with `--define\u003d` as the\nreceiver side expects and as done with `--enable-experiment\u003d`.\n\nChange-Id: I8772349ec6a6c25a24532f85c0fa2c876173f940\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548120\nReviewed-by: Ben Konyi \u003cbkonyi@google.com\u003e\nCommit-Queue: Jens Johansen \u003cjensj@google.com\u003e\n"
    },
    {
      "commit": "7c902ea79d639d6de8f3279d9a1982c85e57e943",
      "tree": "840b9a5d30de708dda396836cac9268ff40e5160",
      "parents": [
        "00b48179383d08d6d72c959bf82e6d07e371403e"
      ],
      "author": {
        "name": "David Morgan",
        "email": "davidmorgan@google.com",
        "time": "Mon Sep 14 00:52:33 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 14 00:52:33 2026 -0700"
      },
      "message": "[docs] Drop outdated claim that growing Uint8List implementations exist.\n\nUint8List is `abstract final`, so it cannot be extended or implemented\noutside the platform libraries and is always fixed length. The\nparenthetical in the BytesBuilder constructor docs describing growing\nUint8List implementations was therefore wrong.\n\nCoreLibraryReviewExempt: doc cleanup\nBug: https://github.com/dart-lang/sdk/issues/60399\nChange-Id: I5e06f73205c33d7a8adb585c221d1cc5b732d1e9\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548740\nCommit-Queue: Morgan :) \u003cdavidmorgan@google.com\u003e\nReviewed-by: Lasse Nielsen \u003clrn@google.com\u003e\n"
    },
    {
      "commit": "00b48179383d08d6d72c959bf82e6d07e371403e",
      "tree": "3c87ab03db2e81382214428329e00b850cbafe74",
      "parents": [
        "4ea61e6b866863f4f2c20ca7b1999b9d6dfabfc3"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Sat Sep 12 10:32:45 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Sep 12 10:32:45 2026 -0700"
      },
      "message": "AO. Remove deprecated updateAnalysisOptions4 and setters from AnalysisOptionsImpl.\n\nWith https://github.com/dart-lang/dartdoc/pull/4262 landed, we can\nremove mutations from AnalysisOptionsImpl, so that mutations only\nhappen via AnalysisOptionsBuilder.\n\nChange-Id: I9ddab8f810827f352d43de5ba11e65c1576ebe17\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/529541\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Samuel Rawlins \u003csrawlins@google.com\u003e\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "4ea61e6b866863f4f2c20ca7b1999b9d6dfabfc3",
      "tree": "0ddce49b05316555dee369353e6e6045e3e20fdb",
      "parents": [
        "39d9e82229787cbbdcb8e2811421307822f2d61a"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Sat Sep 12 10:28:19 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Sep 12 10:28:19 2026 -0700"
      },
      "message": "Remove extra prose for ambiguousImport added in CL/548000.\n\nChange-Id: I7c31bc0a9bcc6d765afbb48d88af2e5bdcff3eb0\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549240\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n"
    },
    {
      "commit": "39d9e82229787cbbdcb8e2811421307822f2d61a",
      "tree": "69736852c3d2c236d3f704a7e383e08fa95133c0",
      "parents": [
        "c9c204c2b479a4ba7687485feac1adef29b63b43"
      ],
      "author": {
        "name": "Stephen Adams",
        "email": "sra@google.com",
        "time": "Fri Sep 11 20:08:42 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 20:08:42 2026 -0700"
      },
      "message": "[dart2js] Use exactOrEmpty in RecordTypeMask.toFlatTypeMask\n\nWhen a record shape is uninstantiated in the closed world,\nRecordTypeMask.toFlatTypeMask falls back to the record arity class\n(e.g. _Record3). If no record literals are instantiated anywhere in the\nprogram, the arity class itself is also uninstantiated and has no strict\nsubclasses.\n\nUsing TypeMask.exactOrEmpty / TypeMask.nonNullExactOrEmpty ensures that\nan uninstantiated record arity class normalizes to an empty mask instead\nof triggering an assertion failure in TypeMask.assertIsNormalized.\n\nAlso preserve special values (null, lateSentinel) in\nRecordTypeMask.createRecordWithPowerset when any field type is empty.\n\nFixes https://github.com/dart-lang/sdk/issues/64100\n\nTAG\u003dagy\nCONV\u003dbca542cb-694d-48a1-baac-322aa1508f0c\n\nChange-Id: Icd22328a35481d2af7e179a5e98c59d5163d05a6\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549040\nReviewed-by: Nate Biggs \u003cnatebiggs@google.com\u003e\nCommit-Queue: Stephen Adams \u003csra@google.com\u003e\n"
    },
    {
      "commit": "c9c204c2b479a4ba7687485feac1adef29b63b43",
      "tree": "05c96d3d1ffaf0d0bf6c784f76e186bc15f4ef72",
      "parents": [
        "7e2a6cc6434ceda99b3e9976ab10fbc009bb184b"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Fri Sep 11 17:08:57 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 17:08:57 2026 -0700"
      },
      "message": "DAS: Write up some docs on the record-replay tool\n\nChange-Id: Idda2ab77909fefc4511292f1bf43170b97eafd1e\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549121\nReviewed-by: Keerti Parthasarathy \u003ckeertip@google.com\u003e\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\n"
    },
    {
      "commit": "7e2a6cc6434ceda99b3e9976ab10fbc009bb184b",
      "tree": "00773d2cc6f7d64d64b403842838d363d0f9c23d",
      "parents": [
        "5c6e43c34da197bbe7aa5f76042ae82bd1ca7253"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Fri Sep 11 15:53:42 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 15:53:42 2026 -0700"
      },
      "message": "Integrate devtools tests\n\nWork towards https://github.com/flutter/devtools/issues/9787\n\nThis introduces a test_devtools.py script, which mostly just finds\nappropriate paths and binaries, and then calls `tool/ci/bots.sh` and\n`tool/ci/package_tests.sh`.\n\nWhen devtools\u0027s source-of-truth is the Dart SDK, we will unravel the\ntest_devtools.py / tool/ci scripts integration into something simpler.\nFor now, we need to run tests on both GitHub CI, local dev machines,\nand LUCI, so it\u0027s a little muddy.\n\nChange-Id: Iae174c32e9ec5bef87f23fdc4aa35806def8cac0\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/541442\nReviewed-by: Nate Bosch \u003cnbosch@google.com\u003e\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\nReviewed-by: Alexander Aprelev \u003caam@google.com\u003e\nReviewed-by: Kenzie Davisson \u003ckenzieschmoll@google.com\u003e\n"
    },
    {
      "commit": "5c6e43c34da197bbe7aa5f76042ae82bd1ca7253",
      "tree": "bec0d26671e4d9bd657b9d018098aedd05482a42",
      "parents": [
        "7328d4a6e1008edbdd6152e77b8fb7768c70ee4f"
      ],
      "author": {
        "name": "FMorschel",
        "email": "git@fmorschel.dev",
        "time": "Fri Sep 11 14:35:47 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 14:35:47 2026 -0700"
      },
      "message": "[DAS] Sort `@docImport` directives when organizing imports\n\nFixes: https://github.com/dart-lang/sdk/issues/56179\nChange-Id: Idff8c30f26a21ab2e5dab03d8e014f5975b65118\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548360\nReviewed-by: Samuel Rawlins \u003csrawlins@google.com\u003e\nAuto-Submit: FMorschel \u003cgit@fmorschel.dev\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n"
    },
    {
      "commit": "7328d4a6e1008edbdd6152e77b8fb7768c70ee4f",
      "tree": "a54fbd69034139647e5c2aba5b1ee0a2257f98c0",
      "parents": [
        "d5fd1dd51847d86bc77cc9c0f869808ba516b394"
      ],
      "author": {
        "name": "Keerti Parthasarathy",
        "email": "keertip@google.com",
        "time": "Fri Sep 11 14:34:47 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 14:34:47 2026 -0700"
      },
      "message": "Add test for closed issue, update closing-obsolete-issues skill\n\nChange-Id: I6aa63c5be38de3c7292af027341d518c1953cb66\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549041\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\nAuto-Submit: Keerti Parthasarathy \u003ckeertip@google.com\u003e\nReviewed-by: Samuel Rawlins \u003csrawlins@google.com\u003e\n"
    },
    {
      "commit": "d5fd1dd51847d86bc77cc9c0f869808ba516b394",
      "tree": "acb6ffc64510f4b1fcd2c0bd6c78422bc183774f",
      "parents": [
        "61ab60dabfc21860db029adb1e081a3da328b8a9"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "paulberry@google.com",
        "time": "Fri Sep 11 13:51:45 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 13:51:45 2026 -0700"
      },
      "message": "[analyzer] Assign InvalidType to `this` and `super` when illegally accessed.\n\nWhen an explicit \u0027this\u0027 or \u0027super\u0027 expression is used in a context\nwhere \u0027this\u0027 is inaccessible (such as static methods, static field\ninitializers, factory constructors, or non-late field initializers),\nassign it a static type of InvalidType.\n\nThis improves error recovery by suppressing secondary cascade\ndiagnostics (such as undefined member, assignment to final, or\ninstance access to static member on the invalid receiver) and prevents\nsuggesting instance members in code completion.\n\nImportantly, lexical enclosing type tracking (resolver.thisType /\n_unpromotedThisType) is kept intact so that implicit member lookups\ncontinue to produce accurate contextual diagnostics (such as\ninstanceMemberAccessFromStatic or implicitThisReferenceInInitializer)\nand IDE quick-fixes continue to suggest appropriate class-level\nmembers.\n\nChange-Id: Ie9787b22197833c5aeafe4282c2e3d986a6a6964\nTAG\u003dagy\nCONV\u003dd452b05c-fced-459b-bf5e-628a90ed1f87\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547660\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "61ab60dabfc21860db029adb1e081a3da328b8a9",
      "tree": "e826c948fa9a52f46a41155ee40e231c67b19cfa",
      "parents": [
        "f817ebef33ce580e414d374b935dd0331d11587a"
      ],
      "author": {
        "name": "Nate Bosch",
        "email": "nbosch@google.com",
        "time": "Fri Sep 11 13:26:30 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 13:26:30 2026 -0700"
      },
      "message": "[deps] rev core, native, protobuf, webdriver\n\nRevisions updated by `dart tools/rev_sdk_deps.dart`.\n\ncore (https://github.com/dart-lang/core/compare/7e8caaf..51cf766):\n  51cf7664  Thu Sep 10 17:49:25 2026 -0700  Kevin Moore  test(crypto): add C2SP/Wycheproof test vectors for HMAC (dart-lang/core#993)\n\nnative (https://github.com/dart-lang/native/compare/84d7eda..f2b4942):\n  f2b4942cc  Fri Sep 11 07:59:55 2026 +0530  Sivapriya  [jnigen] Relax binding verification test (dart-lang/native#3627)\n\nprotobuf (https://github.com/dart-lang/protobuf/compare/cde8e28..a73edc9):\n  a73edc9  Fri Sep 11 12:54:45 2026 +0100  Martin Kustermann  Remove legacy interop use (conditional import on dart.library.html) (dart-lang/protobuf#1102)\n\nwebdriver (https://github.com/google/webdriver.dart/compare/9b2e87d..8e5c611):\n  8e5c611  Fri Sep 11 01:32:05 2026 -0400  Nate Biggs  Refactor matchState initialization to use untyped literal (google/webdriver.dart#349)\n\nTAG\u003dagy\nCONV\u003d688fe3c8-47b5-4273-96f1-b13470d355b6\nR\u003dbquinlan@google.com\n\nChange-Id: I3c2cb3870ccc229206da7d27a3b8ece7a1492842\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548981\nReviewed-by: Brian Quinlan \u003cbquinlan@google.com\u003e\nCommit-Queue: Nate Bosch \u003cnbosch@google.com\u003e\n"
    },
    {
      "commit": "f817ebef33ce580e414d374b935dd0331d11587a",
      "tree": "51eb228a9f136abfcc8236a0cebe0cfbcd65e0f4",
      "parents": [
        "62c637a45b329e15ac32f695826fd2a0f583b292"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Fri Sep 11 13:24:47 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 13:24:47 2026 -0700"
      },
      "message": "AST. Use elementOrRecovery extension methods to simplify consumers.\n\nSimplify invalid named and index resolutions to retain a single\n`recoveryElement` instead of candidate lists and hypothetical valid\nresolutions. Add `elementOrRecovery` extensions and update consumers to\naccess selected or recovered declarations consistently.\n\nRetain operator `[]` and `[]\u003d` declarations as recovery elements even\nwhen they declare the wrong number of parameters. This enables\nnavigation, index-argument context inference, and argument-type\ndiagnostics that were previously missing.\n\nRetain setters found during invalid reads as recovery elements and\nexpose recovery elements to diagnostics, navigation, search, and\nindexing. This adds previously missing diagnostics and index relations,\nincluding internal-member diagnostics on invalid writes. Classify\nsetter-only reads as references rather than successful reads.\n\nThe resolutions remain invalid and retain `InvalidType`.\n\nChange-Id: Idb5dbdb5ba3fa884999c1fb26c97e5f7f76cd1e6\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548600\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\n"
    },
    {
      "commit": "62c637a45b329e15ac32f695826fd2a0f583b292",
      "tree": "1b39909be115e9eca5bef3e7163625f5b6d9e4ea",
      "parents": [
        "a69f16fb8af55c5ed270c7448536462decf1b667"
      ],
      "author": {
        "name": "Robert Nystrom",
        "email": "rnystrom@google.com",
        "time": "Fri Sep 11 12:41:51 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 12:41:51 2026 -0700"
      },
      "message": "Roll dart_style into the SDK.\n\nThere are no user-visible changes in this roll. It only contains a fix\nto a test that failed when run using the Dart SDK\u0027s test runner on\nWindows.\n\nSee: https://github.com/dart-lang/sdk/issues/64107\nChange-Id: Ic9b7acb8852fbe3ffa12b0752d49394f6ccba3cf\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548960\nAuto-Submit: Bob Nystrom \u003crnystrom@google.com\u003e\nReviewed-by: Nicholas Shahan \u003cnshahan@google.com\u003e\nCommit-Queue: Nicholas Shahan \u003cnshahan@google.com\u003e\n"
    },
    {
      "commit": "a69f16fb8af55c5ed270c7448536462decf1b667",
      "tree": "58a50e5faa4b043cbe87fd434418c03fe4e2299d",
      "parents": [
        "08486a78f69fe7cd2f12e3baf126d173f4019adb"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Fri Sep 11 12:22:19 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 12:22:19 2026 -0700"
      },
      "message": "[vm] Implement Int32x4 SIMD fallbacks in Dart\n\nImplementing the unoptimized fallbacks in Dart rather than as VM natives\nmakes them easier to maintain and analyze.\n\nThe withX, withY, withZ and withW lane setters were never recognized on\nthe VM side, so their annotations are dropped and they become plain Dart\nmethods.\n\nTEST\u003dlib/typed_data/int32x4_test lib/typed_data/int32x4_arithmetic_test lib/typed_data/int32x4_compare_test lib/typed_data/int32x4_sign_mask_test lib/typed_data/int32x4_shuffle_test\n\nIssue: https://github.com/dart-lang/sdk/issues/64170\nIssue: https://github.com/dart-lang/sdk/issues/64248\nChange-Id: I48e6a9aae395c4ab271923631cc6fce8e96f5e33\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547980\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nReviewed-by: Alexander Markov \u003calexmarkov@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n"
    },
    {
      "commit": "08486a78f69fe7cd2f12e3baf126d173f4019adb",
      "tree": "aa696534004f4a06e692790f1f31239aa3397b48",
      "parents": [
        "b71e1401283e2656d80a8c272d13fdda9176d55d"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Fri Sep 11 12:21:18 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 12:21:18 2026 -0700"
      },
      "message": "[typed_data] Add Int32x4 shift operators \u003c\u003c and \u003e\u003e\n\nTEST\u003dlib/typed_data/int32x4_arithmetic_test\n\nIssue: #64170\nChange-Id: Ic6f5aa86cbbae7ac6de496850dcafe32204b8879\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545480\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Lasse Nielsen \u003clrn@google.com\u003e\nReviewed-by: Stephen Adams \u003csra@google.com\u003e\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n"
    },
    {
      "commit": "b71e1401283e2656d80a8c272d13fdda9176d55d",
      "tree": "cfe8bda0ed856f43fcea74114a2aff2a9074a2d0",
      "parents": [
        "fa7f3ad19a0db2668a3289c4b7ec3bf1c54a152d"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Fri Sep 11 12:14:14 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 12:14:14 2026 -0700"
      },
      "message": "[corelib] Document double.nan\u0027s bit pattern\n\nIts sign is platform defined (positive on arm64, negative on x64), so\ndocument that on double.nan to keep code from depending on it. A test made\nthat assumption and failed across platforms, see\nhttps://dart-review.googlesource.com/c/sdk/+/543520.\n\nFixes: https://github.com/dart-lang/sdk/issues/49423\nChange-Id: I21ffc9198eca5f887a5ed7d66bdf872bf2d31f54\nCoreLibraryReviewExempt: Documentation only\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548201\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nReviewed-by: Lasse Nielsen \u003clrn@google.com\u003e\n"
    },
    {
      "commit": "fa7f3ad19a0db2668a3289c4b7ec3bf1c54a152d",
      "tree": "c416930b3ae1a4395d69a55644bdfd97a443a03f",
      "parents": [
        "86819f9518ed8f955f96edb344acc132bd079f7e"
      ],
      "author": {
        "name": "Alexander Aprelev",
        "email": "aam@google.com",
        "time": "Fri Sep 11 12:04:58 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 11 12:04:58 2026 -0700"
      },
      "message": "[iso-stress-linux] Remove trigger_gc_in_native_test from iso-stress-linux suite.\n\nThe presence of the test seems to result in process kill -9 probably due to OOM.\n\nBUG\u003dhttps://ci.chromium.org/ui/p/dart/builders/ci.sandbox/iso-stress-linux-x64/2569/overview, https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/iso-stress-linux-x64/2568, https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/iso-stress-linux-x64/2566/overview\nTEST\u003dci\n\nChange-Id: I9c7cf547742d20a68c0c9de7a79728528d8d217a\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/548940\nReviewed-by: Alexander Markov \u003calexmarkov@google.com\u003e\nCommit-Queue: Alexander Aprelev \u003caam@google.com\u003e\n"
    }
  ],
  "next": "86819f9518ed8f955f96edb344acc132bd079f7e"
}
