Decouple JsProgram; this allows the JS AST to serialize in pieces.

1) 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't make sense for particular subclasses.  And I broke serialization circular references (that pull in the whole world) by not having scopes serialize their children.

2) I got JsProgram out of the business of federating literals and singletons. This is much more like how the Java AST works now.

http://gwt-code-reviews.appspot.com/1342801/show


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9683 8db76d5a-ed1c-0410-87a9-c151d255dfc7
36 files changed