)]}'
{
  "commit": "066b19ea377647bf2a9abc38edd54fdb122557b0",
  "tree": "06fa09031b267f4543ef474c157e85d439d1caaf",
  "parents": [
    "920ab9fe31857a32fdfb7c342dae82dc519fab83"
  ],
  "author": {
    "name": "scottb@google.com",
    "email": "scottb@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Mon Feb 07 21:29:15 2011 +0000"
  },
  "committer": {
    "name": "scottb@google.com",
    "email": "scottb@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Mon Feb 07 21:29:15 2011 +0000"
  },
  "message": "Decouple JsProgram; this allows the JS AST to serialize in pieces.\n\n1) A rethinking of how JsScope should work.  Most notably, the JsRootScope is a singleton with special serialization.  I also refactored bits and pieces of the JsScope hierarchy to get rid of fields and code that don\u0027t make sense for particular subclasses.  And I broke serialization circular references (that pull in the whole world) by not having scopes serialize their children.\n\n2) I got JsProgram out of the business of federating literals and singletons. This is much more like how the Java AST works now.\n\nhttp://gwt-code-reviews.appspot.com/1342801/show\n\n\ngit-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9683 8db76d5a-ed1c-0410-87a9-c151d255dfc7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9decb5a52d50a3d61e0de4ab1f7d02c6dec9f1e9",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/javac/JsniCollector.java",
      "new_id": "3888f9d3388c5459416d960c2ecfed9468e3184c",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/javac/JsniCollector.java"
    },
    {
      "type": "modify",
      "old_id": "fd0c87b02953f87680bdd472ea0454ccb4aff98d",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/javac/JsniMethod.java",
      "new_id": "616ff108a73c4a052f23a766224c8df537e1c057",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/javac/JsniMethod.java"
    },
    {
      "type": "modify",
      "old_id": "be0fbfb8d6d1c18d2a0b2503b09ee282c49d603a",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/CorrelationFactory.java",
      "new_id": "b280c3747d8ab309bffcfd8453872004d4a9204e",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/CorrelationFactory.java"
    },
    {
      "type": "modify",
      "old_id": "a50d4a102fc412fa41f25ce2d654d36f285d107c",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java",
      "new_id": "13fce81f43274f9c0f29a39ac98319f943e226ed",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java"
    },
    {
      "type": "modify",
      "old_id": "a34a2b07e43ecd443422a245e23341f313df8898",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/SourceInfo.java",
      "new_id": "ccaf1c47793dd978350447f8da87f7b19150a245",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/SourceInfo.java"
    },
    {
      "type": "modify",
      "old_id": "ab985f19f572ce70d5e8db2c8bb4dba4a0939c85",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/SourceInfoCorrelation.java",
      "new_id": "9176f8988bb92bf30f51496e7bd9959ec909ff94",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/SourceInfoCorrelation.java"
    },
    {
      "type": "modify",
      "old_id": "5e666d76b9c8b8d5362508eae2aca3ae5ab1319f",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/SourceOrigin.java",
      "new_id": "555c5039c96c406d925903a1606d8fbce11c074b",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/SourceOrigin.java"
    },
    {
      "type": "modify",
      "old_id": "a4ca996d92baa707678e894f471949b2832c3e96",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java",
      "new_id": "020c6d6d713614e131e639ae79a7ff94c9f8fb6d",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java"
    },
    {
      "type": "modify",
      "old_id": "42bc89c4c0f3f9c011ed167608cfff95d19b2848",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java",
      "new_id": "e2221ba4c043fac4afc7eb8d683b596c6cc01c70",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java"
    },
    {
      "type": "modify",
      "old_id": "88c152ec3b95a14b89ea50e8a92d11f383a2b90b",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/FragmentExtractor.java",
      "new_id": "502aa359920e29b439400dc0557bff8feae2e69e",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/FragmentExtractor.java"
    },
    {
      "type": "modify",
      "old_id": "105d0f21e8dd3d407e534e1d2cfd18b22a024151",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java",
      "new_id": "4c04e90786cc23b1f287423050d56efd40699d4a",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java"
    },
    {
      "type": "modify",
      "old_id": "c878a3bd75d7a2949948bf9660fea9f3b2a5b8f5",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java",
      "new_id": "84de28d0cdb268f28f38149bb80edef83b0c831d",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java"
    },
    {
      "type": "modify",
      "old_id": "e9c55c26dfde0f4e753df0f2cbfb1ff4d145ec1a",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptLiterals.java",
      "new_id": "fb50d79052e098e898a9a82dc5263d5d87ff59cf",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptLiterals.java"
    },
    {
      "type": "modify",
      "old_id": "5b56c97ecdaf99dbb7c208ae9d13a6dd783fa4af",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/JsInliner.java",
      "new_id": "aa9781316fd1904704cea576b24d5740129f94c1",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/JsInliner.java"
    },
    {
      "type": "modify",
      "old_id": "f1bdb2d103be8328fad624ce0d1dae069afcfdda",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/JsParser.java",
      "new_id": "d3d81de52ac420a4063ebc087c982c67d726b48d",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/JsParser.java"
    },
    {
      "type": "modify",
      "old_id": "26bcfbc5092c1ebe48f9ff1769ba5a5119a79a37",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/JsStackEmulator.java",
      "new_id": "35633c3b7d189cb3739a19661eab8415a249fee3",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/JsStackEmulator.java"
    },
    {
      "type": "modify",
      "old_id": "aaa9db5ce384f15ce71ffedfbb84a34cc05e8254",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/JsStaticEval.java",
      "new_id": "f44b7338ca0b16748ea4678483d9cd25ca043aa1",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/JsStaticEval.java"
    },
    {
      "type": "modify",
      "old_id": "1f0c050ff34f73c9991c38387ba3ab6c2f960bbd",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/JsSymbolResolver.java",
      "new_id": "3ae0308f77064752e76703c170a6550d954e8eee",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/JsSymbolResolver.java"
    },
    {
      "type": "modify",
      "old_id": "e254270de0bc7caca5a188394a17401fe4ebd335",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsBooleanLiteral.java",
      "new_id": "24fc9c1df2d1373659f5a8b7769db270624cd3e0",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsBooleanLiteral.java"
    },
    {
      "type": "modify",
      "old_id": "1791fc5e1dcebd50d86694138c9dda14b7bdd631",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsCatchScope.java",
      "new_id": "542d39823521fc53d37cc7cb088cab17fb8fd64c",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsCatchScope.java"
    },
    {
      "type": "modify",
      "old_id": "00a5b6f032c7c20c305278fd2ba86690b3cd1bb6",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsEmpty.java",
      "new_id": "47270085d40a413e4d868f9b2985a979c19b5741",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsEmpty.java"
    },
    {
      "type": "modify",
      "old_id": "959470ce9282a3dae7de9dfef77c844c763e1f0b",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsFunction.java",
      "new_id": "74f211f79e577fda8392aff2965e8ce6b24a6cea",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsFunction.java"
    },
    {
      "type": "modify",
      "old_id": "58a7a8c7adccf78a97d8e104f5aaf9869599bc51",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsNameRef.java",
      "new_id": "4bde74d1dbbee749083c21f61e319bfc4aceb528",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsNameRef.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "36b83e7a0ed1da4424a4d5e3b1bd4db690aa99b1",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsNestingScope.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce4dcf6e31ea12a16b65c564511f3aa859a9ed3f",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsNormalScope.java"
    },
    {
      "type": "modify",
      "old_id": "dba3966ba7ac978c6ce4edd6906c464066a0247d",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsNullLiteral.java",
      "new_id": "277463533a6734aea055af311b04043da951aa7e",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsNullLiteral.java"
    },
    {
      "type": "modify",
      "old_id": "90026acf57ad0f24dd731afcbfa2c35895ed0870",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsNumberLiteral.java",
      "new_id": "df3508c76b142040538ff3d7951a663d0260f9ea",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsNumberLiteral.java"
    },
    {
      "type": "modify",
      "old_id": "9ab9e27fe8b9fc0e8008fea36a594307443bbfaa",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsProgram.java",
      "new_id": "a05967b8ccfaf6d7dca948373cc82957ed934da4",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsProgram.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d32582a11eccb066d82fd4b77b00f723c99c89c9",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsRootName.java"
    },
    {
      "type": "modify",
      "old_id": "325f62efa65e8c1496868872bd51e4a0cba08f60",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsRootScope.java",
      "new_id": "6f1dfc1b39bc22cb338bd1d27f92144e0b2df528",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsRootScope.java"
    },
    {
      "type": "modify",
      "old_id": "5dc5ed9be430be403e747abf2e0f7a2c3d55271e",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsScope.java",
      "new_id": "a1ff03cc38d65172baba07dbc8e9968003c24f5e",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsScope.java"
    },
    {
      "type": "modify",
      "old_id": "6691d80ab283bd139d61d7bdc2b49de1525028a4",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/ast/JsStringLiteral.java",
      "new_id": "7eba50fc94c0e83dace8a7daf5bbbd08a0eca05c",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/ast/JsStringLiteral.java"
    },
    {
      "type": "modify",
      "old_id": "a5a2d4545f33e92c7ee7b2dd43f6440c63766a94",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/shell/Jsni.java",
      "new_id": "5c2b519e60d397f16a278857c7c5e4791ed9fc2b",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/shell/Jsni.java"
    },
    {
      "type": "modify",
      "old_id": "97b2f05e9d4c25d58b452e58540bebf34e971ec2",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java",
      "new_id": "8ef7931ee9dfa6a736b464a6d9f1afecfe0c5680",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java"
    },
    {
      "type": "modify",
      "old_id": "133e35684df74282a25eab3f885fde0c1d85224d",
      "old_mode": 33188,
      "old_path": "dev/core/test/com/google/gwt/dev/jjs/JavaAstConstructor.java",
      "new_id": "6a015b0cb0f05e4a871346a9b704d116b1a569ff",
      "new_mode": 33188,
      "new_path": "dev/core/test/com/google/gwt/dev/jjs/JavaAstConstructor.java"
    },
    {
      "type": "modify",
      "old_id": "590ffe41b7aaf9d3673891ca6a475e733751aa5c",
      "old_mode": 33188,
      "old_path": "dev/core/test/com/google/gwt/dev/js/JsToStringGenerationVisitorAccuracyTest.java",
      "new_id": "5a99dddfb6bdb35f42b09152a378c565ffc8dd99",
      "new_mode": 33188,
      "new_path": "dev/core/test/com/google/gwt/dev/js/JsToStringGenerationVisitorAccuracyTest.java"
    }
  ]
}
