)]}'
{
  "log": [
    {
      "commit": "4045d8c4f3d88d5deec15afb6151653d7c3fb338",
      "tree": "0af166c3733e2def1b2aae3624b6531a18f40611",
      "parents": [
        "8e2b2c03c2a22d9fdf581a8e3ce798f189531081"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerklasker@gmail.com",
        "time": "Fri Nov 25 10:22:08 2016"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 25 10:22:08 2016"
      },
      "message": "Update README.md\n\nMention that project has moved into the sdk repository."
    },
    {
      "commit": "8e2b2c03c2a22d9fdf581a8e3ce798f189531081",
      "tree": "72b86d83b4ff46780863c32c88a38ff3e9e617a3",
      "parents": [
        "423fb2fd34d74a44c8db4761e9dd8793a1170ac5"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Nov 21 12:08:17 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Nov 21 12:08:17 2016"
      },
      "message": "Bump kernel\u0027s pubspec version to 0.2.0\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2515273002 .\n"
    },
    {
      "commit": "423fb2fd34d74a44c8db4761e9dd8793a1170ac5",
      "tree": "b3a0741e749dcd17506237002c7b6b96cdeb46f7",
      "parents": [
        "e6e61f5d3cc351b50e82cc7305bd7b485e512ee5"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Nov 21 09:24:29 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Nov 21 09:24:29 2016"
      },
      "message": "Upgrade analyzer version to 0.29.0\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2517113002 .\n"
    },
    {
      "commit": "e6e61f5d3cc351b50e82cc7305bd7b485e512ee5",
      "tree": "c1d6621d1d7e687f4f705f63ca698115c2e36880",
      "parents": [
        "0defa95239024bf36b62f59d42130037cadfa519"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Nov 16 16:09:48 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Nov 16 16:09:48 2016"
      },
      "message": "Fix some issues after introducing NamedType.\n\nSome code in type_checker.dart had not been updated and there\nwas an unused method left in type_algebra.dart.\n\nBUG\u003d\nR\u003dahe@google.com\n\nReview URL: https://codereview.chromium.org/2504313002 .\n"
    },
    {
      "commit": "0defa95239024bf36b62f59d42130037cadfa519",
      "tree": "c863935cacb63267fd8722fd56f0053db541bda1",
      "parents": [
        "118a4be934f3af4dcf4014dbbd7a1875c17ebb9f"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Nov 16 14:16:24 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Nov 16 14:16:24 2016"
      },
      "message": "Store named parameters in sorted lists instead of using maps.\n\nFunctionType now has a List\u003cNamedType\u003e which must be sorted by name.\nPreviously, named parameters were stored in a Map\u003cString, DartType\u003e.\n\nFunctionNode still has a List\u003cVariableDeclaration\u003e, but this list must\nnow be sorted by name.\n\nBUG\u003d\nR\u003dahe@google.com\n\nReview URL: https://codereview.chromium.org/2502343002 .\n"
    },
    {
      "commit": "118a4be934f3af4dcf4014dbbd7a1875c17ebb9f",
      "tree": "a77b87b0775bb040d72e5ef7b9d4466af013e993",
      "parents": [
        "e60caa2ef9096b3e8cbec3197ae284a532fc8de3"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Nov 16 14:13:27 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Nov 16 14:13:27 2016"
      },
      "message": "Remove unnecessary indexing passes from serialization.\n\nComputing the index for variables, labels, and switch cases is now\ndone on-the-fly instead of as separate passes.\n\nBUG\u003d\nR\u003dahe@google.com\n\nReview URL: https://codereview.chromium.org/2507723002 .\n"
    },
    {
      "commit": "e60caa2ef9096b3e8cbec3197ae284a532fc8de3",
      "tree": "f0944e574897fb610c9d753fab855908148ff421",
      "parents": [
        "73463488ee70a054df0d7b19d38e2847f471fac7"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Nov 15 13:27:22 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Nov 15 13:27:22 2016"
      },
      "message": "Fix parent pointer issue in async rewriter.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2502943002 .\n"
    },
    {
      "commit": "73463488ee70a054df0d7b19d38e2847f471fac7",
      "tree": "4f664e6a3c9a873ffd6459810b1c16d086fdac2d",
      "parents": [
        "b838af037b56a2065b5997d71d20ee4283c369c6"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Nov 14 09:23:37 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Nov 14 09:23:37 2016"
      },
      "message": "Fix some strong mode issues.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2464843002 .\n"
    },
    {
      "commit": "b838af037b56a2065b5997d71d20ee4283c369c6",
      "tree": "66dbbac30457dc656b44f791a37fb6b3c316d11e",
      "parents": [
        "323030a4cf43859c68725d3d59cdf58a3d0e2c16"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Nov 14 09:10:49 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Nov 14 09:10:49 2016"
      },
      "message": "Erasure fix: Replace type parameters with dynamic instead of Object.\n\nUsing Object causes issues in function types.\n\nThis fixes an issue for running delta-blue in AOT strong mode.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2492453002 .\n"
    },
    {
      "commit": "323030a4cf43859c68725d3d59cdf58a3d0e2c16",
      "tree": "4a6a3f8bb31ebc1ab4da02a22d3b05334fda0c3a",
      "parents": [
        "b044c217f5f96e30828f9e6adf6cd9e58364021d"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Nov 11 11:22:29 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Nov 11 11:22:29 2016"
      },
      "message": "Fix a bug in printing of string literals with escape sequences.\n\nBUG\u003d\nR\u003dahe@google.com\n\nReview URL: https://codereview.chromium.org/2500453002 .\n"
    },
    {
      "commit": "b044c217f5f96e30828f9e6adf6cd9e58364021d",
      "tree": "480ba5c398eb04763967bce21aaa543d294ac6a8",
      "parents": [
        "a33c09fb981e5830cae1efc482b06cf19f89291b"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Tue Nov 08 13:54:15 2016"
      },
      "committer": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Tue Nov 08 13:54:15 2016"
      },
      "message": "Fixed crash when compiling without linking.\n\nSince offsets and uris was added to the dill file, compiling to dill\nwithout linking hasn\u0027t worked because of external libraries.\n\nThe external libraries doesn\u0027t add to the line starts table and thus\nthe uris from libraries, classes and so on isn\u0027t recorded.\n\nWhen trying to write an unrecorded uri to the dill file it fails.\n\nThe simple solution applied here is to fall-back to the empty\nstring when the uri hasn\u0027t been recorded.\n\nBUG\u003d\nR\u003dasgerf@google.com\n\nReview URL: https://codereview.chromium.org/2483243002 .\n"
    },
    {
      "commit": "a33c09fb981e5830cae1efc482b06cf19f89291b",
      "tree": "a9c97984baa3d5c5a74993de188c8f8075872bb4",
      "parents": [
        "510a67f3165828843bdcd8e6ecff02ba10a871e8"
      ],
      "author": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Fri Nov 04 13:20:12 2016"
      },
      "committer": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Fri Nov 04 13:20:12 2016"
      },
      "message": "Fix a bug in the async translation of let expressions.\n\nIf the body of a let expression contains an await, the translation could\nhoist statements that contain references to the let-bound variable out\nof its scope.\n\nInstead split by cases on whether the body contains an await.  If so, we\nhoist let-bound variables to the statement level.  If not, we produce a\nlet expression.\n\nBUG\u003d\nR\u003dasgerf@google.com\n\nReview URL: https://codereview.chromium.org/2480743002 .\n"
    },
    {
      "commit": "510a67f3165828843bdcd8e6ecff02ba10a871e8",
      "tree": "7f0611265f8035087664782b80890aae3ad31e1b",
      "parents": [
        "da7f856b371573f1887d1402b5decf75ae5505ff"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Nov 04 12:45:20 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Nov 04 12:45:20 2016"
      },
      "message": "Do not duplicate constructors for named mixin applications.\n\nBUG\u003d\nR\u003djensj@google.com\n\nReview URL: https://codereview.chromium.org/2473223003 .\n"
    },
    {
      "commit": "da7f856b371573f1887d1402b5decf75ae5505ff",
      "tree": "d43d4d2638a075f03333eb634d19934daf4c67df",
      "parents": [
        "564c53e6c3d1c8cc5cd17e5d4ccced448282dadf"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Nov 04 09:44:37 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Nov 04 09:44:37 2016"
      },
      "message": "Ensure the substitution map in the CloneVisitor is mutable.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2477873002 .\n"
    },
    {
      "commit": "564c53e6c3d1c8cc5cd17e5d4ccced448282dadf",
      "tree": "2faf7f129dc485017f27bb8dedfd42d3c6335d42",
      "parents": [
        "290f955760a219902e4d5b716668bff29711d1ab"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Nov 03 14:08:57 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Nov 03 14:08:57 2016"
      },
      "message": "Fix expected return type in async functions.\n\nAlso add support for yield* in the type checker.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2473523004 .\n"
    },
    {
      "commit": "290f955760a219902e4d5b716668bff29711d1ab",
      "tree": "78a7b5cedf434f1b7a7535d0cb4c26a72aadf5d9",
      "parents": [
        "6074a67dcbd5f506b70d8ac4dac1f06348a70b6e"
      ],
      "author": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Thu Nov 03 09:44:24 2016"
      },
      "committer": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Thu Nov 03 09:44:24 2016"
      },
      "message": "Kernel: Fix a bug with await in finally.\n\nThe translation for async and async* functions translates returns into\ntwo statements, where the second one is a return.  The VM\u0027s compilation\nstrategy is to inline the code for all finally blocks immediately before\na return statement.\n\nThis causes future completion/stream cancellation to occur before\nfinally blocks, instead of after as intended.\n\nThe solution here is to translate returns into a break from a labeled\nblock and put a single async/async* return sequence, outside any finally\nblocks, after the labeled block.\n\nBUG\u003d\nR\u003dasgerf@google.com\n\nReview URL: https://codereview.chromium.org/2476513003 .\n"
    },
    {
      "commit": "6074a67dcbd5f506b70d8ac4dac1f06348a70b6e",
      "tree": "758bcf9e4f290e071470fc7c9b3dd07a3d7643f6",
      "parents": [
        "480abf7604fd64b96bd4b974352db034179f413a"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Nov 02 08:59:24 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Nov 02 08:59:24 2016"
      },
      "message": "Type check untyped \u003d\u003d calls specially.\n\nA comparison of form x \u003d\u003d null does not need an interface target, but\nshould still have a return type of \u0027bool\u0027.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2466373002 .\n"
    },
    {
      "commit": "480abf7604fd64b96bd4b974352db034179f413a",
      "tree": "6918ab359d6386b24c8a1460277e3c5d5ba00084",
      "parents": [
        "c227e785a14e04f1688d75ad4d0f12b0be6b850f"
      ],
      "author": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Wed Nov 02 08:32:25 2016"
      },
      "committer": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Wed Nov 02 08:32:25 2016"
      },
      "message": "Support both older and newer implementations of dart:async.\n\nThe VM target\u0027s continuation transformer uses a class that was originally\nnamed _StreamIteratorImpl and then renamed to _StreamIterator.  If looking\nup the old name fails, try the new name.\n\nBUG\u003d\nR\u003djensj@google.com\n\nReview URL: https://codereview.chromium.org/2465163004 .\n"
    },
    {
      "commit": "c227e785a14e04f1688d75ad4d0f12b0be6b850f",
      "tree": "405a4cfd61272797e2e02d582275a05b6f3e37ad",
      "parents": [
        "3baff07ec4bc6216947477cba8cce3a355be68b7"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Nov 01 15:04:10 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Nov 01 15:04:10 2016"
      },
      "message": "Always store the type of a conditional expressions on the node.\n\nPreviously, the type of a conditional expression could be omitted if\none of the arms was just a null literal. This was meant to simplify\ntranslation into kernel, but wasn\u0027t really worth it in terms of\ncomplexity, and it does not work well for types that carry nullability\ninformation.\n\nBUG\u003d\nR\u003dahe@google.com\n\nReview URL: https://codereview.chromium.org/2465263002 .\n"
    },
    {
      "commit": "3baff07ec4bc6216947477cba8cce3a355be68b7",
      "tree": "72df6d222e6b177f1dff84667cab9f0c253e393d",
      "parents": [
        "698af311ca03ca9691e593bbcfca47cb1c69936d"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Nov 01 14:43:31 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Nov 01 14:43:31 2016"
      },
      "message": "Add strong mode type checking pass.\n\nThis is a piece of the upcoming strong mode-based type propagation.\nThe new type propagator will build its inference graph based on the\nsubtyping constraints found during type checking.\n\nThis type checker is not intended to report type errors to end-users.\nIn its current form, it is quite redundant with the front end\u0027s type\nchecker, but this will not be the case once we augment kernel\u0027s type\nsystem.\n\nThe internals of \"dart:\" libraries are not type checked -- they are\nsimply assumed to satisfy the type annotations on their interfaces.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2465893002 .\n"
    },
    {
      "commit": "698af311ca03ca9691e593bbcfca47cb1c69936d",
      "tree": "f0166e8bc04807d97907baae47ca40f84c1948a0",
      "parents": [
        "5a40636eef78d5ab1a87fe100ce0fd98bd7f0a22"
      ],
      "author": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Tue Nov 01 13:13:30 2016"
      },
      "committer": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Tue Nov 01 13:13:30 2016"
      },
      "message": "Remove BlockExpression from the Kernel language.\n\nBlockExpression allowed statements to appear in an expression context.\nIt is unsafe for its original use case, allowing \u0027yield\u0027 to appear as an\nexpression, because the VM\u0027s yield implementation does not work when\nthere are live expression intermediate values.\n\nEliminate it by changing the async ExpressionLifter to return a\ntransformed expression and emit statements into a given list as a side\neffect.  This requires implementing the transformation for all\nstatements to account for how they may contain a nested expression.\n\nBUG\u003d\nR\u003dasgerf@google.com\n\nReview URL: https://codereview.chromium.org/2460373002 .\n"
    },
    {
      "commit": "5a40636eef78d5ab1a87fe100ce0fd98bd7f0a22",
      "tree": "419abc765439fc6c53f61063f8d0cf27bb167df3",
      "parents": [
        "e1c26f830e8cee1f73b8a0b5aa3dd665c0ce5da0"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Oct 31 10:29:37 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Oct 31 10:29:37 2016"
      },
      "message": "Add convenience getter to extract the location of an AST node.\n\nTreeNode.location is a getter for use in diagnostics and debugging.\n\nIt uses parent pointers to find the enclosing file URI and line ending\ntable of the node. If the node has no offset stored, it will use that\nof the first enclosing parent that has an offset.\n\nBUG\u003d\nR\u003dahe@google.com, jensj@google.com\n\nReview URL: https://codereview.chromium.org/2448873004 .\n"
    },
    {
      "commit": "e1c26f830e8cee1f73b8a0b5aa3dd665c0ce5da0",
      "tree": "f7fc4374f3033ccf75d6c55eb60c9610d28635b5",
      "parents": [
        "11edd6208940d227dc0b2cf87a6518d2508c0858"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Oct 24 14:21:52 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Oct 24 14:21:52 2016"
      },
      "message": "Introduce Substitution class and Supertype class.\n\nType annotations in the supertype clauses of a class are now Supertypes\ninstead of InterfaceTypes. In the current version, the two classes\ncontain the same information, but they are about to diverge in the\nfollowing ways:\n\n- An InterfaceType may be nullable, whereas a supertype cannot.\n\n- An InterfaceType may represent the exact class, a subclass, or\n  a subtype of the given class.\n\n- The type arguments to an interface type represent bounds, whereas\n  the arguments to a supertype are always exact.\n\nWe also introduce a class Substitution that represents an operator\nthat replaces type parameters with types, depending on the variance\nof their use site.\n\nA substitution can be applied to a DartType or a Supertype, and can\nbe generated independently of how it will be applied.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2439043002 .\n"
    },
    {
      "commit": "11edd6208940d227dc0b2cf87a6518d2508c0858",
      "tree": "68f2b5036053d3ca28a71baf95739f91d1df9635",
      "parents": [
        "a8ad578344f575d45ba47f6aa2414f42d272e6f0"
      ],
      "author": {
        "name": "Vyacheslav Egorov",
        "email": "vegorov@google.com",
        "time": "Mon Oct 24 11:19:03 2016"
      },
      "committer": {
        "name": "Vyacheslav Egorov",
        "email": "vegorov@google.com",
        "time": "Mon Oct 24 11:19:03 2016"
      },
      "message": "New VM libraries renamed _StreamIteratorImpl into _StreamInterator.\n\nR\u003dkmillikin@google.com\nBUG\u003d\n\nReview URL: https://chromereviews.googleplex.com/527977013 .\n"
    },
    {
      "commit": "a8ad578344f575d45ba47f6aa2414f42d272e6f0",
      "tree": "a7027ebb691fcc6f0b2dbcbaecd23e61addedb42",
      "parents": [
        "e5262de591dd1e46813aa8b3ca1e95153218bb76"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 20 12:02:41 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 20 12:02:41 2016"
      },
      "message": "Add a version number to the pubspec.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2439603003 .\n"
    },
    {
      "commit": "e5262de591dd1e46813aa8b3ca1e95153218bb76",
      "tree": "4be434f9d96898a4e7089ebc62d93c3dfeb5d025",
      "parents": [
        "38094f13f2de8789f337879b20a3fa812de2aa34"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 20 11:12:41 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 20 11:12:41 2016"
      },
      "message": "Remove obsolete part of readme\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://codereview.chromium.org/2441603002 .\n"
    },
    {
      "commit": "38094f13f2de8789f337879b20a3fa812de2aa34",
      "tree": "1a6a2df244a8ed688798d31e8edcb01198846e85",
      "parents": [
        "0753f922b34bc99ccb46af025331ce9ed3dcfdb2"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 18 10:55:10 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 18 10:55:10 2016"
      },
      "message": "Add null initializers to fields that have no initializer.\n\nThat is, if a field has no declaration-site initializer and at least\none constructor in the class does not initialize it, then we add an\nexplicit null initializer for it.\n\nBUG\u003d\nR\u003dahe@google.com\n\nReview URL: https://chromereviews.googleplex.com/527827014 .\n\nCommitted: https://github.com/dart-lang/kernel/commit/63c241ee69fb41710b66df106626461539ce0187\n"
    },
    {
      "commit": "0753f922b34bc99ccb46af025331ce9ed3dcfdb2",
      "tree": "cd9c0ddbe0f61101d35c04943805844f164d54a0",
      "parents": [
        "63c241ee69fb41710b66df106626461539ce0187"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 18 10:26:08 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 18 10:26:08 2016"
      },
      "message": "Revert \"Add null initializers to fields that have no initializer.\"\n\nThis reverts commit 63c241ee69fb41710b66df106626461539ce0187.\n\nBUG\u003d\n\nReview URL: https://codereview.chromium.org/2431623002 .\n"
    },
    {
      "commit": "63c241ee69fb41710b66df106626461539ce0187",
      "tree": "774f6c4a9ac9bde971917ddf0f54a63ff65783dc",
      "parents": [
        "9d877ac88fc2479b112849ade038c0628d63b9cd"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 18 10:14:33 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 18 10:14:33 2016"
      },
      "message": "Add null initializers to fields that have no initializer.\n\nThat is, if a field has no declaration-site initializer and at least\none constructor in the class does not initialize it, then we add an\nexplicit null initializer for it.\n\nBUG\u003d\nR\u003dahe@google.com\n\nReview URL: https://chromereviews.googleplex.com/527827014 .\n"
    },
    {
      "commit": "9d877ac88fc2479b112849ade038c0628d63b9cd",
      "tree": "cd9c0ddbe0f61101d35c04943805844f164d54a0",
      "parents": [
        "f5113cb4e1f746491aaf6c942acbef6198f0d350"
      ],
      "author": {
        "name": "Peter von der Ahé",
        "email": "ahe@google.com",
        "time": "Tue Oct 18 09:37:37 2016"
      },
      "committer": {
        "name": "Peter von der Ahé",
        "email": "ahe@google.com",
        "time": "Tue Oct 18 09:37:37 2016"
      },
      "message": "Use public review server.\n\nR\u003dasgerf@google.com\n\nReview URL: https://codereview.chromium.org/2428593002 .\n"
    },
    {
      "commit": "f5113cb4e1f746491aaf6c942acbef6198f0d350",
      "tree": "fe85cbcf05289416c116e6866562ad5bb9e809cd",
      "parents": [
        "98a6a2c2c929433eee05c03e93bfcff1d9837b92"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Fri Oct 14 11:49:51 2016"
      },
      "committer": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Fri Oct 14 11:49:51 2016"
      },
      "message": "Don\u0027t emit InvalidExpression on invalid super in binaryexpression\n\nDon\u0027t emit invalidexpression on invalid super call --- a correct call will be created later\n\nBUG\u003d\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/524077013 .\n"
    },
    {
      "commit": "98a6a2c2c929433eee05c03e93bfcff1d9837b92",
      "tree": "b0e6934b06bbf5e71014c0fa3b92295293316892",
      "parents": [
        "5bb0d31798b7a1a7fe36fe3b2ee7a81d4c071637"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Oct 14 11:29:36 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Oct 14 11:29:36 2016"
      },
      "message": "Update doc comment for TypeParameter.bound.\n\nBUG\u003d\nR\u003dahe@google.com\n\nReview URL: https://chromereviews.googleplex.com/526987013 .\n"
    },
    {
      "commit": "5bb0d31798b7a1a7fe36fe3b2ee7a81d4c071637",
      "tree": "bd593372dc87cac3e7bc668c4234d4cfee62352b",
      "parents": [
        "5a1bf5c368e2633034db52f58c5915a0f3a2d913"
      ],
      "author": {
        "name": "Peter von der Ahé",
        "email": "ahe@google.com",
        "time": "Fri Oct 14 10:16:13 2016"
      },
      "committer": {
        "name": "Peter von der Ahé",
        "email": "ahe@google.com",
        "time": "Fri Oct 14 10:16:13 2016"
      },
      "message": "Use Sink\u003cList\u003cint\u003e\u003e instead of IOSink.\n\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/521257013 .\n"
    },
    {
      "commit": "5a1bf5c368e2633034db52f58c5915a0f3a2d913",
      "tree": "873376aa90d999279add9098e6d6508ddeac8fea",
      "parents": [
        "c172c059d08278ee19b2b51b2b159bf1c41c8927"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Fri Oct 14 06:18:25 2016"
      },
      "committer": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Fri Oct 14 06:18:25 2016"
      },
      "message": "Create call to noSuchMethod when super call is not correct.\n\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/521977014 .\n"
    },
    {
      "commit": "c172c059d08278ee19b2b51b2b159bf1c41c8927",
      "tree": "36cc0d14ea833873e7f58eb401b8d31e0bb65ec7",
      "parents": [
        "90ebc0b1300cb94c3981f88fbf8069a669a3e348"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 13 14:20:33 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 13 14:20:33 2016"
      },
      "message": "Fix a bug in bounded type substitution.\n\nWhen visiting a generic function type in contravariant context, the\ncurrent variance bit would not be propagated to the inner visitor.\n\nFor example,\n\n  (\u003cF\u003e(T,F) \u003d\u003e F) \u003d\u003e int [bottom \u003c: T \u003c: String]\n\nwould erroneously map to:\n\n  (\u003cF\u003e(bottom,F) \u003d\u003e F) \u003d\u003e int\n\ninstead of:\n\n  (\u003cF\u003e(String,F) \u003d\u003e F) \u003d\u003e int\n\nGeneric function types cannot occur in contravariant position\nusing current Dart syntax, but it could possibly occur as an\nintermediate type.\n\nBUG\u003d\nR\u003dahe@google.com\n\nReview URL: https://chromereviews.googleplex.com/521207013 .\n"
    },
    {
      "commit": "90ebc0b1300cb94c3981f88fbf8069a669a3e348",
      "tree": "0e3cf918d3ec45ecd32c8e813159204320729093",
      "parents": [
        "4e5cac6032483588872d907241ad825672c2a616"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 11 13:21:48 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 11 13:21:48 2016"
      },
      "message": "Type parameter bounds default to Object instead of dynamic.\n\nThis also affects the textual output in most cases, since the bound\nis now shown explicitly.\n\nBUG\u003d\nR\u003djensj@google.com\n\nReview URL: https://chromereviews.googleplex.com/526827013 .\n"
    },
    {
      "commit": "4e5cac6032483588872d907241ad825672c2a616",
      "tree": "33206ed6b6b23669319b358254703c3e59bf24e0",
      "parents": [
        "144bd990b6e4abbb1539bf094e732119931ef712"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Oct 10 09:15:56 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Mon Oct 10 09:15:56 2016"
      },
      "message": "Support interface members and overrides with duplicate member names.\n\nWhen a class inherits two abstract members with the same name from\ndifferent supertypes, both members are now present the list returned\nby ClassHierarchy.getInterfaceMembers. Previously, only one of the\nmember would be present.\n\nThis ensures that all override pairs can be detected, which in turn\nis necessary for inserting covariance checks in strong mode.\n\nAnother change in this CL is that interface members are built\neagerly instead of on-demand. This makes the ClassHierarchy more\nreliable when used for transformation, and easier to benchmark.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/520907013 .\n"
    },
    {
      "commit": "144bd990b6e4abbb1539bf094e732119931ef712",
      "tree": "2d7be0af69d78110e14a91863bd039d2f8994f45",
      "parents": [
        "6347eb5dd5cc3bd55ad110d97be509bfbf0c175a"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Oct 07 13:40:46 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Oct 07 13:40:46 2016"
      },
      "message": "Do not compile patched SDK in strong mode when using VM target.\n\nThe VM patch files are not strong mode clean, so we\u0027re using a hybrid\napproach where the SDK is internally unchecked, and is trusted to\nsatisfy the types on its interface.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/516487014 .\n"
    },
    {
      "commit": "6347eb5dd5cc3bd55ad110d97be509bfbf0c175a",
      "tree": "e9a393e01b576152a35e5043add57e79e9d1ff3a",
      "parents": [
        "586b0e9b4c98441f2e8abedc4c0eadf37f9ff698"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Oct 07 11:34:14 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Oct 07 11:34:14 2016"
      },
      "message": "Follow redirecting factories to their effective targets.\n\nPreviously, we would generate a stub for a redirecting factory, but\nthe default parameter values were not correctly forwarded.\n\nThis could have been fixed by copying the default parameter values into\nthe stub, but this conflicts with modular compilation, since the\nelement model does not expose default parameter values, and we should\nnot rely on the AST of libraries not part of the current build unit.\n\nApart from fixing this bug, this is also more aligned with how all the\nbackends actually work.\n\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/513577013 .\n"
    },
    {
      "commit": "586b0e9b4c98441f2e8abedc4c0eadf37f9ff698",
      "tree": "22ad2508667e04769b64092f4d86d8a4f96c6a6e",
      "parents": [
        "63df1b19315a590ad013246c9a6d3d2755a15d78"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 06 13:47:24 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 06 13:47:24 2016"
      },
      "message": "Update baselines according to change in text printer.\n\nBUG\u003d\n\nReview URL: https://chromereviews.googleplex.com/518067013 .\n"
    },
    {
      "commit": "63df1b19315a590ad013246c9a6d3d2755a15d78",
      "tree": "4fb072a59bb8b3434fe17f422f6a7ef3d787d7c4",
      "parents": [
        "d17148bcd83524369e7e1a99ac3029a145b6726b"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 06 10:59:52 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 06 10:59:52 2016"
      },
      "message": "Ignore fields inserted through error recovery.\n\nFields without names often arise when the analyzer fails to parse a\nunion type in a type argument inside a comment. For example:\n  Future/*\u003cFoo|Bar\u003e*/ future;\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/519077015 .\n"
    },
    {
      "commit": "d17148bcd83524369e7e1a99ac3029a145b6726b",
      "tree": "44db2809dd792d766a0b0f5e90e62dea18d33e31",
      "parents": [
        "61d98794cf57d572a1c9fd8ba0d005ba23506e83"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 06 10:58:11 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Oct 06 10:58:11 2016"
      },
      "message": "Update erasure pass to erase type parameters in constants.\n\nStrong mode allows constant expressions to reference type parameters.\nThis requires constants to be canonicalized at runtime, but it is not\nyet determined exactly how this feature will work in future versions\nof the language.\n\nFor now, we work around it by replacing such types with \u0027dynamic\u0027.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/516477013 .\n"
    },
    {
      "commit": "61d98794cf57d572a1c9fd8ba0d005ba23506e83",
      "tree": "857d0778932d7e38a927baa532004bb6ed1dc850",
      "parents": [
        "1c1a6464693ebdf7dd5b93d6d16df2abf8bbfe3e"
      ],
      "author": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Thu Oct 06 06:15:44 2016"
      },
      "committer": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Thu Oct 06 06:15:44 2016"
      },
      "message": "Only produce \u0027top-level\u0027 block expressions from async.\n\nBlock expressions are expressions and so can be arbitrarily nested.\nThey can contain statements, including yield statements.  The VM\u0027s\nimplementation of yield assumes that it can only occur when there are no\nlive intermediate values.  It is not generally safe to allow\nyield-containing block expressions to appear as arbitrary\nsubexpressions.\n\nAs a first step toward eliminating block expressions, this change\nflattens the ones produced by the async transformation so that they can\nonly occur as the children of statements.\n\nBUG\u003d\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/517457014 .\n"
    },
    {
      "commit": "1c1a6464693ebdf7dd5b93d6d16df2abf8bbfe3e",
      "tree": "6ae0a4fa462a7a5acaeb97ffc413ecce60c33061",
      "parents": [
        "f9851b3d9ca4cf7a734dc0f13a4f9e6e59662210"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 04 15:45:24 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 04 15:45:24 2016"
      },
      "message": "Fix canonicalization of mixin classes.\n\nA mixin application C\u003cT1 ... Tm\u003e with D\u003cT1 ... Tn\u003e is canonicalized if\nthe Ts are distinct, unbound type variables. In all other cases, a new\nclass is created per mixin application.\n\nPreviously, all mixin applications were canonicalized in an overly\ngeneral way, causing type checking issues, and excessive duplication of\ntype parameters.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/511567015 .\n"
    },
    {
      "commit": "f9851b3d9ca4cf7a734dc0f13a4f9e6e59662210",
      "tree": "24878dc238bda62a3152a9f5786f78b420a1a865",
      "parents": [
        "cd94dc056f0eba573cd58294c8ab67936f03ff84"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 04 15:28:45 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 04 15:28:45 2016"
      },
      "message": "Erase function type parameters to fake strong mode on the VM.\n\nThe VM does not support function type parameters at the moment, but we\ncan erase them at the last minute, to enable testing of other parts of\nstrong mode.\n\nThis also disables error checking in the SDK since the VM\u0027s\npatch files are not in strong mode.\n\nBUG\u003d\nR\u003dkustermann@google.com\n\nReview URL: https://chromereviews.googleplex.com/518647013 .\n"
    },
    {
      "commit": "cd94dc056f0eba573cd58294c8ab67936f03ff84",
      "tree": "01b9a59fb2ec2edadb1febdb8df54d0e241b96d1",
      "parents": [
        "3ac36acd4c54a3616ebb68d5cacb5b5c590a26c1"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 04 15:26:10 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 04 15:26:10 2016"
      },
      "message": "Fix the comment on Library.isExternal.\n\nThe comment was the result of a bad merge.\n\nBUG\u003d\nR\u003dkustermann@google.com\n\nReview URL: https://chromereviews.googleplex.com/517957015 .\n"
    },
    {
      "commit": "3ac36acd4c54a3616ebb68d5cacb5b5c590a26c1",
      "tree": "191b3b9c44e6e3274e1685d66e38984b8f230c00",
      "parents": [
        "1906e420431656d351a9f4ee9a36b8ca9a4da1db"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 04 11:30:46 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Oct 04 11:30:46 2016"
      },
      "message": "Refactor frontend to allow modular compilation.\n\nThe concept of a binary library file no longer exists.\n\nA kernel file can contain any number of libraries, and some of these\nlibraries can be \"external\".  To reference a class or member from\nanother build, the class or member must be declared in an external\nlibrary.\n\nMembers in an external library contain all their type information,\nbut have no body.\n\nClasses in an external library have their hierarchy information\npresent, but are not guaranteed to contain all their actual members.\n\nThe idea is that references themselves don\u0027t really cross module\nboundaries, but rather refer to a local definition whose body is\ncontributed from elsewhere, much like \u0027external\u0027 members in Dart.\n\nA modular backend such as DDC should be able to compile from one of\nthese kernel files without needing to load auxiliary information from\nsummaries or other kernel files.\n\nFor whole program transformations or backends, a linking step, which\nis not yet implemented, must merge classes and members in external\nlibraries based on their name.\n\nExternal libraries share the same IR and binary format as ordinary\nlibraries.  Transformations that affect the interface for a member\nor class should transform the external libraries alongside with the\ninternal ones, ideally without needing to treat them any different.\n\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/516847013 .\n"
    },
    {
      "commit": "1906e420431656d351a9f4ee9a36b8ca9a4da1db",
      "tree": "1113cf904c73210989cd7df50d191036b701ec3e",
      "parents": [
        "a85aabb6d1bd5e51ad9e74f7128a56609c1b0502"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 30 10:25:07 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 30 10:25:07 2016"
      },
      "message": "Insert break or throw at the end of a switch case that may fall through.\n\nBUG\u003dhttps://github.com/dart-lang/kernel/issues/12\nR\u003dkustermann@google.com\n\nReview URL: https://chromereviews.googleplex.com/510567013 .\n"
    },
    {
      "commit": "a85aabb6d1bd5e51ad9e74f7128a56609c1b0502",
      "tree": "3b25bd50bcee536d149acd989ee0a80eb315c013",
      "parents": [
        "239d77596348966f7e3523452ab0caa84256bf62"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Thu Sep 29 09:26:40 2016"
      },
      "committer": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Thu Sep 29 09:26:40 2016"
      },
      "message": "Dill source file and source position inclusion\n\nFor now the focus is on getting stacktraces to look right.\nWhat that basically means is to include source positions for throws,\ncalls (in many forms).\n\nIncludes source file uri for libraries, field, classes and methods.\nMethods and fields for instance needs it because of top-level\nprocedures that might be included via \u0027parts\u0027.\n\nCorresponding kernel-sdk change in review at\nhttps://chromereviews.googleplex.com/516617014\n\nR\u003dasgerf@google.com, kasperl@google.com\n\nReview URL: https://chromereviews.googleplex.com/509247013 .\n"
    },
    {
      "commit": "239d77596348966f7e3523452ab0caa84256bf62",
      "tree": "ce3b9fcd64b0e63ef4dca527dabfc424c3487bd8",
      "parents": [
        "8b1d04d5601869daa0b9bb0bc220cdda4f0a324e"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 29 09:08:28 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 29 09:08:28 2016"
      },
      "message": "Treat an arrow body in a void method as void context.\n\nBUG\u003dhttps://github.com/dart-lang/kernel/issues/31\nR\u003dahe@google.com\n\nReview URL: https://chromereviews.googleplex.com/511307014 .\n"
    },
    {
      "commit": "8b1d04d5601869daa0b9bb0bc220cdda4f0a324e",
      "tree": "95245b4f87cff8e84afcd6e91066016c4a2f2b54",
      "parents": [
        "5500be0ca3817942b8c2c7b51281e19c867f017c"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 28 09:17:09 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 28 09:17:09 2016"
      },
      "message": "Fix parent pointer in async rewriter.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/518607013 .\n"
    },
    {
      "commit": "5500be0ca3817942b8c2c7b51281e19c867f017c",
      "tree": "d7d3cbc982aef465ae4c2d1e9db8eb74b6148966",
      "parents": [
        "d5fe5f19e13e019c3de43405c26f78e594297bd5"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 27 11:26:52 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 27 11:26:52 2016"
      },
      "message": "Remove dead code from async rewriter.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/514107013 .\n"
    },
    {
      "commit": "d5fe5f19e13e019c3de43405c26f78e594297bd5",
      "tree": "82999ed864910ba20d44874b3399e79b9f057419",
      "parents": [
        "b06208ab881566280b3796c5ab87f870f5108cda"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 27 11:01:09 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 27 11:01:09 2016"
      },
      "message": "Add sanity checks for dangling or out-of-scope references.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/509427013 .\n"
    },
    {
      "commit": "b06208ab881566280b3796c5ab87f870f5108cda",
      "tree": "8ff316f3461708934b3b4e0fcdf63338bea318c0",
      "parents": [
        "560d02e34c6bf89574aa3a186042b2bd380b4b7f"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Tue Sep 27 10:20:16 2016"
      },
      "committer": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Tue Sep 27 10:20:16 2016"
      },
      "message": "Add dart:vmservice_io to the libraries to include in the VM target\n\n(The flutter target already includes dart:vmservice_sky.)\n\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/512147013 .\n"
    },
    {
      "commit": "560d02e34c6bf89574aa3a186042b2bd380b4b7f",
      "tree": "a2248b8048607fa0dac04037b527709cc21af430",
      "parents": [
        "7b45f4124f75750ec26d8a9aa69b640bf89963c0"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Tue Sep 27 10:19:42 2016"
      },
      "committer": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Tue Sep 27 10:19:42 2016"
      },
      "message": "Mixin desugaring: Clone constructors from base classes, rewrite super initializers\n\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/510377013 .\n"
    },
    {
      "commit": "7b45f4124f75750ec26d8a9aa69b640bf89963c0",
      "tree": "97f22454f41d6cd8004d3d9f647f634ea924f1b2",
      "parents": [
        "48c9540ca381395857d3b74873b714d66938e0cb"
      ],
      "author": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Tue Sep 27 08:57:49 2016"
      },
      "committer": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Tue Sep 27 08:57:49 2016"
      },
      "message": "A one-pass version of the await transformation.\n\nBy transforming subexpressions from right-to-left, the transformation knows\nwhether an expression is possibly live across a await when the expression is\ntranslated.\n\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/508487014 .\n"
    },
    {
      "commit": "48c9540ca381395857d3b74873b714d66938e0cb",
      "tree": "c0c304a260f7450e352ec016921ece87767824a4",
      "parents": [
        "b99158d739a189898ea858d210d1af327a971a9b"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 16:21:35 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 16:21:35 2016"
      },
      "message": "Tree shaking transformation.\n\nR\u003dkustermann@google.com\n\nReview URL: https://chromereviews.googleplex.com/508267013 .\n"
    },
    {
      "commit": "b99158d739a189898ea858d210d1af327a971a9b",
      "tree": "b6c0c2560979cba28f79260d76a1d69fbc8679e1",
      "parents": [
        "c38fadb78b720f5473ae735ddd1e80f48998e171"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 15:56:22 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 15:56:22 2016"
      },
      "message": "Update analyzer and test dependency.\n\nBUG\u003d\nR\u003dkustermann@google.com\n\nReview URL: https://chromereviews.googleplex.com/512047013 .\n"
    },
    {
      "commit": "c38fadb78b720f5473ae735ddd1e80f48998e171",
      "tree": "119e56edaa39b2372e19cdad718bcd1a7a95748b",
      "parents": [
        "b30cde4e2e61459bde85cdb5b2d469e038c7175a"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 15:51:00 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 15:51:00 2016"
      },
      "message": "Fix a bug in DartOptions.\n\nBUG\u003d\nR\u003dkustermann@google.com\n\nReview URL: https://chromereviews.googleplex.com/515767013 .\n"
    },
    {
      "commit": "b30cde4e2e61459bde85cdb5b2d469e038c7175a",
      "tree": "d312c3f6a596a74496a0bf450aa3990c2882e2b1",
      "parents": [
        "60928ce64b514690976b2af56d9050c15546af76"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 14:33:12 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 14:33:12 2016"
      },
      "message": "Ensure class type parameters are not referenced from static context.\n\nBUG\u003dhttps://github.com/dart-lang/kernel/issues/16\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/510207013 .\n"
    },
    {
      "commit": "60928ce64b514690976b2af56d9050c15546af76",
      "tree": "db73d7862c0f82c748f4bda103e4f13026921591",
      "parents": [
        "a723f35b8d207fe450aa1ea75187b87442ee26c4"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 14:11:41 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 14:11:41 2016"
      },
      "message": "Refactor the frontend classes.\n\ndartk and other command-line tools no longer rely on analyzer classes\nlike AnalysisContext or DartSdk, and instead use only the interface\ndefined in loader.dart.\n\nThe class AnalyzerLoader has been renamed to DartLoader.\n\nThe sharing of state in batch mode is now owned by loader.dart, so\ndartk.dart does not deal with DartSdk and package_config.\n\nRepository no longer has a package or SDK path. These concepts are\nnow specific to the Dart frontend. Consequently, loading a binary\nfile no longer relies on URI resolution.\n\nThe Repository class is now more clearly focused on linking symbolic\nnames to their IR objects, which for the time being is only\nURI-to-library bindings, but should be extended to support linking\nclass and member references across different files and different\nloaders.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/512907013 .\n"
    },
    {
      "commit": "a723f35b8d207fe450aa1ea75187b87442ee26c4",
      "tree": "89caf1a6a2a01291b27d8620d7fff6fd8d012902",
      "parents": [
        "d9b0056e3750f1c8cd414631a041882e88fdaefc"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 14:05:28 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 14:05:28 2016"
      },
      "message": "Add subtyping query.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/515667013 .\n"
    },
    {
      "commit": "d9b0056e3750f1c8cd414631a041882e88fdaefc",
      "tree": "df13c0165225769ee21ec477294d1cda8e90f2c3",
      "parents": [
        "2efc48c94094816e4b3b995aec261e4b4051b8f8"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 10:52:00 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 10:52:00 2016"
      },
      "message": "Remove the ?? operator from the IR and desugar it in the frontend.\n\nNote that this affects the binary format, since a type is no longer\nstored on LogicalExpression.\n\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/502297014 .\n"
    },
    {
      "commit": "2efc48c94094816e4b3b995aec261e4b4051b8f8",
      "tree": "5c8e07c8d810a0374ed28dfd4a8fe6e6aeb78256",
      "parents": [
        "df39706d5301a2c9829822be0a6801a3b0d0b794"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 10:34:06 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 10:34:06 2016"
      },
      "message": "Support both implicit and explicit getters and setters for fields.\n\nFields getters and setters should be implicit whenever possible\nto ensure JS compilers can easily control how they are generated.\n\nHowever, it is still useful to be able to take control of the getter\nor setter in the IR.  We should just refrain from doing so for common\ncases, where it can have significant code size impact in JS.\n\nWe can use this to insert checked setters for fields that override\na setter with an incompatible type, or whose type references a type\nvariable.\n\nThere are two changes to facilitate this:\n\n- Fields have two flags indicating if the implicit getter and/or\n  setter should be generated.  If not set, there can be an explicit\n  getter/setter for it in the same class.\n\n- Interface targets that reference a field now go through one\n  level of indirection. This lets us update interface targets in\n  the IR, which is necessary for redirecting calls to an explicit\n  getter or setter.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/504357013 .\n"
    },
    {
      "commit": "df39706d5301a2c9829822be0a6801a3b0d0b794",
      "tree": "6f473873706f22c586fd6f4ba1957c61a0551ce6",
      "parents": [
        "c7cbf9584312cc78af1b62fcd1d58b0c7405879b"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 10:28:33 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 23 10:28:33 2016"
      },
      "message": "Read in -D defines and pass them on to the frontend.\n\nThis also enables configuration-specific imports when using a newer\nversion of the analyzer (not currently on pub).\n\nBUG\u003d\nR\u003dkustermann@google.com\n\nReview URL: https://chromereviews.googleplex.com/515727013 .\n"
    },
    {
      "commit": "c7cbf9584312cc78af1b62fcd1d58b0c7405879b",
      "tree": "d2ae704978e96d026190d26d0887c46375853763",
      "parents": [
        "566d5033fc9a6654fbf7dde461b2b29f20617209"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 22 12:18:18 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 22 12:18:18 2016"
      },
      "message": "Support .packages file.\n\nBUG\u003dhttps://github.com/dart-lang/kernel/issues/27\nR\u003dkustermann@google.com\n\nReview URL: https://chromereviews.googleplex.com/508267014 .\n"
    },
    {
      "commit": "566d5033fc9a6654fbf7dde461b2b29f20617209",
      "tree": "3febe18cdc73954c03e2e4b6426fc54be8cd0317",
      "parents": [
        "87c67edd8975d8e6ea16a89e31abbd60c0096426"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Thu Sep 22 11:17:38 2016"
      },
      "committer": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Thu Sep 22 11:17:38 2016"
      },
      "message": "Add new flutter target, add dart:_builtin to vm/flutter targets, adjust _getMainClosure\n\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/513757013 .\n"
    },
    {
      "commit": "87c67edd8975d8e6ea16a89e31abbd60c0096426",
      "tree": "9c58ff523c3a3e8182ff429989c24e2b99c6d914",
      "parents": [
        "9c195fa8a2e70be9e3456109a7818aa4a95b44b7"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Thu Sep 22 11:16:08 2016"
      },
      "committer": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Thu Sep 22 11:16:08 2016"
      },
      "message": "Add support for passing --url-mapping\u003d\u003cscheme\u003e:\u003cname\u003e::\u003curl\u003e to dartk\n\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/507527013 .\n"
    },
    {
      "commit": "9c195fa8a2e70be9e3456109a7818aa4a95b44b7",
      "tree": "5dc354e303eb6da21d2d6431f1cfa8892c6bdc7b",
      "parents": [
        "f9cf4e51775a8b272163bdce9483838ac43bc61c"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Thu Sep 22 11:05:16 2016"
      },
      "committer": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Thu Sep 22 11:05:16 2016"
      },
      "message": "Use InvalidInitializer() for initializers with compile-time errors\n\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/508347013 .\n"
    },
    {
      "commit": "f9cf4e51775a8b272163bdce9483838ac43bc61c",
      "tree": "d2fd6a9dcc3f385878b8403a9c3737b454fc22e0",
      "parents": [
        "525750d34900f2bbac926c505ed7764eb5463431"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 22 10:15:42 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 22 10:15:42 2016"
      },
      "message": "Set constructor body to an empty statement if its body was omitted.\n\nBUG\u003dhttps://github.com/dart-lang/kernel/issues/28\nR\u003djohnniwinther@google.com\n\nReview URL: https://chromereviews.googleplex.com/512727013 .\n"
    },
    {
      "commit": "525750d34900f2bbac926c505ed7764eb5463431",
      "tree": "d1458c8e0db65efe3e2d8336bc77f2c0812a93ab",
      "parents": [
        "30c496fac460c45e34919d066e21c70fecf8b225"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 21 17:05:38 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 21 17:05:38 2016"
      },
      "message": "Make regenerate_dill_files use the patched SDK\n\nAlso stop regenerating the type propagation tests which no longer uses\nchecked-in dill files.\n\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/515677013 .\n"
    },
    {
      "commit": "30c496fac460c45e34919d066e21c70fecf8b225",
      "tree": "1494758a1a288db4a2c7a29c9d15238328d22849",
      "parents": [
        "449803b82e850a41148e636db1a6e4a848284aed"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 21 17:03:52 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 21 17:03:52 2016"
      },
      "message": "Minor fixes to the AST printer.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/514717014 .\n"
    },
    {
      "commit": "449803b82e850a41148e636db1a6e4a848284aed",
      "tree": "b4dcc91ef677944e8761e59311b42b6baf940f2f",
      "parents": [
        "c5e91a525e7ee0818db26fe56faee9642cb3502c"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 21 10:23:11 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 21 10:23:11 2016"
      },
      "message": "Reorganize baseline testing.\n\nA single suite of test files is now shared among these configurations,\neach with their own expected outputs:\n- spec mode\n- strong mode\n- spec mode w/ type propagation\n\nAlthough some tests are going to focus on a specific configuration,\nfor now it seems easier to maintain a single set of tests.\n\nNo additional tests have been added in this CL, but the intention\nis to start adding more tests.\n\nThe baseline tests no longer contain any checked-in dill files.\n\nTo simplify dependencies, these tests do not rely on a patched SDK,\nwhich means the async transformer cannot currently be tested with\nthis framework.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/507347013 .\n"
    },
    {
      "commit": "c5e91a525e7ee0818db26fe56faee9642cb3502c",
      "tree": "d1e55122be27595252ba2e61e2cc29609180255f",
      "parents": [
        "cfbe63cbaa906ead3460845a194f057f06b550cb"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 21 10:19:52 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 21 10:19:52 2016"
      },
      "message": "Fix crashes in closure conversion.\n\nCoreTypes should not require that dart:_internal::Context exists.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/507407013 .\n"
    },
    {
      "commit": "cfbe63cbaa906ead3460845a194f057f06b550cb",
      "tree": "5ee729c0fc1776c3d53bf26cacba862be41e3084",
      "parents": [
        "27270a34c726a7d4fc24bf1feac99ff161e419fb"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Wed Sep 21 06:26:35 2016"
      },
      "committer": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Wed Sep 21 06:26:35 2016"
      },
      "message": "Fix of saving expression in function body.\n\nCreating a redirecting factory constructor to an abstract class\ncreates a throw expression directly in function.body.\n\nBUG\u003d\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/506587013 .\n"
    },
    {
      "commit": "27270a34c726a7d4fc24bf1feac99ff161e419fb",
      "tree": "795a74eb4acdb20ad3376ce592c0c862c3ceed5f",
      "parents": [
        "ee8637afa741b91511b4ec4542fd5ba238642e5c"
      ],
      "author": {
        "name": "Peter von der Ahé",
        "email": "ahe@google.com",
        "time": "Tue Sep 20 09:30:45 2016"
      },
      "committer": {
        "name": "Peter von der Ahé",
        "email": "ahe@google.com",
        "time": "Tue Sep 20 09:30:45 2016"
      },
      "message": "Return invalid declaration, not null.\n\nR\u003dkarlklose@google.com\n\nReview URL: https://chromereviews.googleplex.com/509807014 .\n"
    },
    {
      "commit": "ee8637afa741b91511b4ec4542fd5ba238642e5c",
      "tree": "02c2397ab4e0cede473ba936268e5b14bc057d39",
      "parents": [
        "98ccce0d829156d06d335bcd97c9bd0b94e750c6"
      ],
      "author": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Tue Sep 20 07:07:22 2016"
      },
      "committer": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Tue Sep 20 07:07:22 2016"
      },
      "message": "Context allocation, variable get, and variable set (non-loop contexts).\n\nAllocate contexts to hold captured variables.  Rewrite captured variable\naccess to context access.  Outside of a local function, this is a single\nindirection through a named context.  Inside a local function it requires\ntraversing (a statically known number of) parent links.\n\nR\u003dahe@google.com\n\nReview URL: https://chromereviews.googleplex.com/507717013 .\n"
    },
    {
      "commit": "98ccce0d829156d06d335bcd97c9bd0b94e750c6",
      "tree": "1bd3341b6658ac2e4c30b4445ffa08c0b056709f",
      "parents": [
        "09cae49e4f6be742d66241562ef0b2983980abb1"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 16 13:51:32 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 16 13:51:32 2016"
      },
      "message": "Add bounded substitution operator.\n\nThis lets us substitute different values for a type parameter depending\non the variance of its use site. For example:\n\n   (T) \u003d\u003e T\n\ncan be substituted with [bottom \u003c: T \u003c: num] to get:\n\n  (bottom) \u003d\u003e num\n\nwhich is the best upper bound that doesn\u0027t use T.\n\nThis generalizes the existing substitution method, since it\u0027s\ncomplicated enough that I don\u0027t want to maintain two versions of it.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/501577015 .\n"
    },
    {
      "commit": "09cae49e4f6be742d66241562ef0b2983980abb1",
      "tree": "6c61b9643c4387f6d4d9ac8e30c58a7dc87ece3b",
      "parents": [
        "0668a9ee8cf85c6bd275d60509579e4cc7997fde"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 15 13:18:49 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 15 13:18:49 2016"
      },
      "message": "Fix handling of bottom type in type substitution and unification.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/501577013 .\n"
    },
    {
      "commit": "0668a9ee8cf85c6bd275d60509579e4cc7997fde",
      "tree": "c69d1cdb78b4e60278540b8200dd32a7ad1f6142",
      "parents": [
        "eb3c3af368b54053c6e8dd012d5ba95d9a29828e"
      ],
      "author": {
        "name": "Peter von der Ahé",
        "email": "ahe@google.com",
        "time": "Wed Sep 14 13:13:16 2016"
      },
      "committer": {
        "name": "Peter von der Ahé",
        "email": "ahe@google.com",
        "time": "Wed Sep 14 13:13:16 2016"
      },
      "message": "Make targets public.\n\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/505237014 .\n"
    },
    {
      "commit": "eb3c3af368b54053c6e8dd012d5ba95d9a29828e",
      "tree": "c5472172b8db49d3036a475c3f691d2edd3b673e",
      "parents": [
        "afc7cd0311d4a813ab6471f409aaa19a44eff8f2"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 11:16:05 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 11:16:05 2016"
      },
      "message": "Report more errors.\n\nInclude up to 100 errors in the output, and print the number\nof errors that were truncated.\n\nAlso report errors from the SDK and package files.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/506077014 .\n"
    },
    {
      "commit": "afc7cd0311d4a813ab6471f409aaa19a44eff8f2",
      "tree": "14ba974b8a8dd1e66e88a2650308c8370028249c",
      "parents": [
        "83506979e88df83a0860281fad6dcf595d6d9edb"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 11:10:14 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 11:10:14 2016"
      },
      "message": "Add +reviews to CC mailing list.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/504237013 .\n"
    },
    {
      "commit": "83506979e88df83a0860281fad6dcf595d6d9edb",
      "tree": "9e43328db63c78f0eacf56ee7e7755c53f647ad6",
      "parents": [
        "e3f2bae717ba96f86054e2c990673883b78a4d01"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 10:41:22 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 10:41:22 2016"
      },
      "message": "Print errors in a nicer format.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/508597013 .\n"
    },
    {
      "commit": "e3f2bae717ba96f86054e2c990673883b78a4d01",
      "tree": "711b7843459791566a3396217c46207d94d02284",
      "parents": [
        "9d5ee8e0b1cd836f502275d47e832991e0ce57f7"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 10:40:11 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 10:40:11 2016"
      },
      "message": "Add support for traversing all member override pairs.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/504227013 .\n"
    },
    {
      "commit": "9d5ee8e0b1cd836f502275d47e832991e0ce57f7",
      "tree": "214eac3bc7dfb1d4cc146635e4a411fb06b95086",
      "parents": [
        "9677d68402ea15d0eca6430d64f631bb3e505499"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 10:23:51 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Tue Sep 13 10:23:51 2016"
      },
      "message": "Forward scanner and strong mode errors from the analyzer.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/507827013 .\n"
    },
    {
      "commit": "9677d68402ea15d0eca6430d64f631bb3e505499",
      "tree": "8db5b26174477b87ce53b21b4f8c53c4912e3056",
      "parents": [
        "c9957b86cc77473a8e4f494a6a8924384f4369e1"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 15:49:34 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 15:49:34 2016"
      },
      "message": "Pass an object with flags to the target.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/501227015 .\n"
    },
    {
      "commit": "c9957b86cc77473a8e4f494a6a8924384f4369e1",
      "tree": "02a978df7dc4990fa464c15c63a36227f7cb0191",
      "parents": [
        "f31a2d83d21e928b0326377feb1667e095d6f820"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 15:47:31 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 15:47:31 2016"
      },
      "message": "Fix unresolved access on class or library prefix.\n\nAn unresolved `C.name` would be translate to `this.name` in non-static\ncontexts.  It is now translated to throw a NoSuchMethodError.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/504977014 .\n"
    },
    {
      "commit": "f31a2d83d21e928b0326377feb1667e095d6f820",
      "tree": "2d12e655a280248f564b14c2d797c476571dc8b9",
      "parents": [
        "85366c3e585c1e6ef85a08a3f104d789a64e348d"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 12:51:02 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 12:51:02 2016"
      },
      "message": "Allow async transformer to run on already-transformed code.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/504977013 .\n"
    },
    {
      "commit": "85366c3e585c1e6ef85a08a3f104d789a64e348d",
      "tree": "7f28369767de853c2f1c6522238fb4a95506c1ac",
      "parents": [
        "31c536f6dbeacb392718f112757adce92114ab31"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 11:21:29 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 11:21:29 2016"
      },
      "message": "Fix initialization of type parameter bounds on mixin applications.\n\nThere was a circularity issue with type parameter bounds being copied\nfrom other classes, while those classes we not yet fully initialized.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/499437013 .\n"
    },
    {
      "commit": "31c536f6dbeacb392718f112757adce92114ab31",
      "tree": "1c24a2b799bd204af3b402c5e93a64f0bcff459e",
      "parents": [
        "17f55c7abd4432e4863a548da9fa22e4032095b5"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 11:21:07 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Fri Sep 09 11:21:07 2016"
      },
      "message": "Remove spurious whitespace around type parameter bounds.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/502307013 .\n"
    },
    {
      "commit": "17f55c7abd4432e4863a548da9fa22e4032095b5",
      "tree": "2187ab56d1aef61de65589fbd59321d3824a466b",
      "parents": [
        "ddb16ce2e568163d5ef0a07b45aad822a1c35a53"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 14:08:43 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 14:08:43 2016"
      },
      "message": "Insert dynamic when type arguments are omitted from redirecting factory.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/500317013 .\n\nCommitted: https://github.com/dart-lang/kernel/commit/9d9d61ec4649b159ed3bbe1c2a486d98e7bf07ea\n"
    },
    {
      "commit": "ddb16ce2e568163d5ef0a07b45aad822a1c35a53",
      "tree": "a016935014fad8ff01809438295350ae734facc4",
      "parents": [
        "eaa7bb4b7f1e5afcea3a94b546db494d75d19a42"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 13:53:07 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 13:53:07 2016"
      },
      "message": "Update binary.md\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/499387013 .\n"
    },
    {
      "commit": "eaa7bb4b7f1e5afcea3a94b546db494d75d19a42",
      "tree": "2cecf0ba4cf0bef8fc54a611b7db08a697d1393f",
      "parents": [
        "74f858fb85599969e92a4da23c2f51b749285ef1"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 13:35:20 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 13:35:20 2016"
      },
      "message": "Revert \"Insert dynamic when type arguments are omitted from redirecting factory.\"\n\nThis reverts commit 9d9d61ec4649b159ed3bbe1c2a486d98e7bf07ea.\n\nBUG\u003d\n\nReview URL: https://chromereviews.googleplex.com/502317013 .\n"
    },
    {
      "commit": "74f858fb85599969e92a4da23c2f51b749285ef1",
      "tree": "b31180d30358e82687792b6b79a5bcef931e86dd",
      "parents": [
        "9d9d61ec4649b159ed3bbe1c2a486d98e7bf07ea"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 13:25:20 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 13:25:20 2016"
      },
      "message": "Apply async transformation when --target\u003dvm.\n\nBUG\u003d\nR\u003dkustermann@google.com\n\nReview URL: https://chromereviews.googleplex.com/504897014 .\n"
    },
    {
      "commit": "9d9d61ec4649b159ed3bbe1c2a486d98e7bf07ea",
      "tree": "1359f98ea67ae509b28465e8d3d737ed2a51a720",
      "parents": [
        "bf207fc3ed1f30462f9a2546a68a8e5c073c61e4"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 12:24:42 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Thu Sep 08 12:24:42 2016"
      },
      "message": "Insert dynamic when type arguments are omitted from redirecting factory.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/500317013 .\n"
    },
    {
      "commit": "bf207fc3ed1f30462f9a2546a68a8e5c073c61e4",
      "tree": "80cbd463f54c594558068fbb5ddb46f6d6f15fcf",
      "parents": [
        "6a7228ff24a1df68d56712ad7b8cf4dd98c4e34a"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 07 14:54:20 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 07 14:54:20 2016"
      },
      "message": "Fix a bug in the command-line tool\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/506597013 .\n"
    },
    {
      "commit": "6a7228ff24a1df68d56712ad7b8cf4dd98c4e34a",
      "tree": "eeeaf26638d4827f4443a9b2bc5d485e90cbfc4b",
      "parents": [
        "89bf9fa67cde866fdeed5c9ba31f657361356e1c"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 07 14:48:45 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 07 14:48:45 2016"
      },
      "message": "Also resolve super calls in constructor bodies.\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/501087013 .\n"
    },
    {
      "commit": "89bf9fa67cde866fdeed5c9ba31f657361356e1c",
      "tree": "2385c205c986bd376ef3d3967fba5738c93a0c71",
      "parents": [
        "952a70bbf4f61ae70c4852d90f2d9eb6ca3fccb3"
      ],
      "author": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Wed Sep 07 14:37:32 2016"
      },
      "committer": {
        "name": "Kevin Millikin",
        "email": "kmillikin@google.com",
        "time": "Wed Sep 07 14:37:32 2016"
      },
      "message": "Include the library dart:mirrors for target\u003dvm.\n\nBootstrapping the VM does require dart:mirrors in some modes, and it\nwill be ignored in the Kernel binary if it is not required by the VM, so\nalways include it.\n\nBUG\u003d\nR\u003dasgerf@google.com\n\nReview URL: https://chromereviews.googleplex.com/505697013 .\n"
    },
    {
      "commit": "952a70bbf4f61ae70c4852d90f2d9eb6ca3fccb3",
      "tree": "092f7707c2b00040bd800c74b07bc6e8505366e3",
      "parents": [
        "83e3a061296e98cc5f4eaf4c81cba52e2cccd023"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 07 12:45:34 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 07 12:45:34 2016"
      },
      "message": "Include interface targets in the textual output.\n\nCalls are now printed as follows:\n\nDynamic calls: receiver.name\nInterface calls: receiver.{target}\nDirect calls: receiver.{\u003dtarget}\nDynamic super calls: super.name\nSuper interfaces calls: super.{target}\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/502957013 .\n"
    },
    {
      "commit": "83e3a061296e98cc5f4eaf4c81cba52e2cccd023",
      "tree": "52cea56fd7298b30e3d4b2df22e3224c3015fc36",
      "parents": [
        "fc1d7b13ab05bc7c4c87c8a1ac3cec06659cbfa9"
      ],
      "author": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 07 11:37:25 2016"
      },
      "committer": {
        "name": "Asger Feldthaus",
        "email": "asgerf@google.com",
        "time": "Wed Sep 07 11:37:25 2016"
      },
      "message": "Put the interface target on implied .call invocations.\n\nExample from js_ast:\n\n  class JsBuilder {\n  \tNode call(x) \u003d\u003e ...\n  }\n  const JsBuilder js \u003d const JsBuilder();\n\nIn codegen:\n  js(\"#.#\", ...)\n\nTranslated to kernel:\n  js.call(\"#.#\", ...) // JsBuilder::call as interface target\n\nBUG\u003d\nR\u003dkmillikin@google.com\n\nReview URL: https://chromereviews.googleplex.com/502947013 .\n"
    }
  ],
  "next": "fc1d7b13ab05bc7c4c87c8a1ac3cec06659cbfa9"
}
