)]}'
{
  "commit": "cb1e3f891bdeee53c5ead206690ad703b09f3ff4",
  "tree": "ffb7ac4b426e38fc155503b6a1ca8fd2755bd4a9",
  "parents": [
    "88a30a2c5f0bd9c68c12874c778f68ee404ac9a9"
  ],
  "author": {
    "name": "Ye Wang",
    "email": "leafwang@google.com",
    "time": "Thu Feb 05 14:53:46 2015 -0800"
  },
  "committer": {
    "name": "Gerrit Code Review",
    "email": "noreply-gerritcodereview@google.com",
    "time": "Sat Feb 07 01:09:13 2015 +0000"
  },
  "message": "Java8 Defender Methods\n\nDoes not implement dispatch for JsInterop/@JsType interfaces\nyet. That will come in a followon patch.\n\n1. Promote default interface methods to static methods\n2. For each type which has a super-type containing a default method,\ndetermine if it reaches this type with no concrete implementors.\n3. Implement by generating a method with the signature of the default\nmethod delegating to the static version on the interface.\n\ninterface Foo {\n  default int m() { return 42; }\n}\n\nclass FooImpl implements Foo {}\n\nbecomes\n\ninterface Foo {\n  int m();\n  static int m(Foo thi$static) { return 42; }\n}\n\nclass FooImpl implements Foo {\n  public int m() { return Foo.m(this); }\n}\n\nChange-Id: I1c92e146b18785814ed2fc6586b0294862ac5968\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3fd155b9c7212adf03943f26f05921cb7245dfbc",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java",
      "new_id": "185ed0fb897aa592e0f363027954ca57ea6c8f05",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java"
    },
    {
      "type": "modify",
      "old_id": "fa11ba6202ba9e57d5e0a5f4a40c3904e189083f",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JMethod.java",
      "new_id": "7368d25b30a4dc86865508d80eeaf61d5016eab6",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JMethod.java"
    },
    {
      "type": "modify",
      "old_id": "25dbe41730b54365b57ae8b222da5abdeaabdd47",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/Devirtualizer.java",
      "new_id": "aac120ac76443af5cc3be8ee07179eca372fb689",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/Devirtualizer.java"
    },
    {
      "type": "modify",
      "old_id": "a685be732be5f96cc93dd1363806c21f7bf2029e",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java",
      "new_id": "b931c9464d0ca7ca429a280e2ab4e53c4348366e",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java"
    },
    {
      "type": "modify",
      "old_id": "d063742190796db1771f09ad2c714c78bb1368f7",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java",
      "new_id": "25a60fa6b1ab947f867c45852a77fbe50a54ad9c",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "84323bf51622aabf46f68bf4f13f815f605f526a",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/JjsUtils.java",
      "new_id": "5bdfbdc9c635fd66e45f81f0a6547410a98f8828",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/JjsUtils.java"
    },
    {
      "type": "modify",
      "old_id": "0ac092df6c491511baa10aee9653a47ee57f2d6a",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/MakeCallsStatic.java",
      "new_id": "c8ab261e42fa9275816a36036ab92911071e06b9",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/MakeCallsStatic.java"
    },
    {
      "type": "modify",
      "old_id": "ae30f7f0ad0ca893d7a8fef17d2cc3a7e09b78be",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java",
      "new_id": "1cee7b7cf1c54550bf547b4a55a58ab279f4e2a6",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "57eb09b74cd1af2c2be0fb9352f33fa1bb5c2936",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/ReplaceDefenderMethodReferences.java"
    },
    {
      "type": "modify",
      "old_id": "ce2cab3a852ab57d630d0b1df4000d170ab74285",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/UnifyAst.java",
      "new_id": "5650a9853bca57e4ec630be1d101a2bf1ce67285",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/UnifyAst.java"
    },
    {
      "type": "modify",
      "old_id": "4c680290e71fec59a0b97a417dec1ed5bbff20fc",
      "old_mode": 33188,
      "old_path": "dev/core/test/com/google/gwt/dev/jjs/impl/JJSTestBase.java",
      "new_id": "4e030ac6d86dc53834d5f4fb0f6a2d5a427b27eb",
      "new_mode": 33188,
      "new_path": "dev/core/test/com/google/gwt/dev/jjs/impl/JJSTestBase.java"
    },
    {
      "type": "modify",
      "old_id": "1ba51cefc43224cf1d2586b1e32641fed5ec2d26",
      "old_mode": 33188,
      "old_path": "dev/core/test/com/google/gwt/dev/jjs/impl/Java8AstTest.java",
      "new_id": "7e27e0f65f578f533069877deed1aca47a8f57e2",
      "new_mode": 33188,
      "new_path": "dev/core/test/com/google/gwt/dev/jjs/impl/Java8AstTest.java"
    },
    {
      "type": "modify",
      "old_id": "f74d570a25eafd60dac06d34c015a396223f261f",
      "old_mode": 33188,
      "old_path": "dev/core/test/com/google/gwt/dev/jjs/impl/PrunerTest.java",
      "new_id": "d4c8996e4a5873c7903e35f9613665c48c15cfab",
      "new_mode": 33188,
      "new_path": "dev/core/test/com/google/gwt/dev/jjs/impl/PrunerTest.java"
    },
    {
      "type": "modify",
      "old_id": "5dbf4b316983d3bfb62bac06757bd5d04a007aed",
      "old_mode": 33188,
      "old_path": "user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/Java8Test.java",
      "new_id": "391d52a775476f066a3376418c873d0249a66e85",
      "new_mode": 33188,
      "new_path": "user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/Java8Test.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "25a2d4327349a3b37f576115e7a35ea43827aebd",
      "new_mode": 33188,
      "new_path": "user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/package1/SimpleA.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f8c10c0d02c10383972ef3423da48bb31dba1c7a",
      "new_mode": 33188,
      "new_path": "user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/package1/SimpleD.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cdc7f5863d0b5fcab5c4c9dd148b7a42048795a3",
      "new_mode": 33188,
      "new_path": "user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/package2/SimpleB.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3a001a02bd9282bd7c310ba989cba9af81c7c84",
      "new_mode": 33188,
      "new_path": "user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/package3/SimpleC.java"
    },
    {
      "type": "modify",
      "old_id": "ce2e1f10203aaebac7e25063c4c1e1e30af1669e",
      "old_mode": 33188,
      "old_path": "user/test/com/google/gwt/dev/jjs/test/Java8Test.java",
      "new_id": "d6428e06d96e93d659efb8a6d864c84a7a1f6585",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/dev/jjs/test/Java8Test.java"
    }
  ]
}
