)]}'
{
  "log": [
    {
      "commit": "71bf7b43380eb445973f32a7f789d9670f8cc97d",
      "tree": "76425f8578b247a845fe61724d71efc63059760f",
      "parents": [
        "52f52361c2ea37941fbda71e3c653bb8096bf516"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 16 10:17:46 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 30 13:21:21 2016 -0800"
      },
      "message": "Optimizations around escape analysis. With tests.\n\nDetails:\n(1) added new intrinsics\n(2) implemented optimizations\n      more !can be null information\n      more null check removals\n      replace return-this uses with incoming parameter\n      remove dead StringBuffer/Builder calls (with escape analysis)\n(3) Fixed exposed bug in CanBeMoved()\n\nPerformance gain:\nThis improves CafeineString by about 360%\n(removes null check from first loop, eliminates second loop completely)\n\nTest: test-art-host\n\nChange-Id: Iaf16a1b9cab6a7386f43d71c6b51dd59600e81c1\n"
    },
    {
      "commit": "96fd51d52de759be442accd4df99eb2520bdd023",
      "tree": "9d63b5bde1b8c32a0f5fefea789ebc81e5400268",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 28 11:22:35 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 28 13:27:36 2016 -0800"
      },
      "message": "Moved escape analysis to reusable module\n\nRationale:\nThis prepares other optimizations that\nwant to do some simple escape analysis.\nAlso introduces ability for client\nto inject a case-specific function.\n\nTest: test-art-host\nChange-Id: Ie38a1e24e4479dc40154673db589ec1c82fb73b9\n"
    }
  ]
}
