Use the static getJSType() function (which returns the unknown type for nodes that, for whatever reason, don't have a JSType) so that we'll just fail to infer types inside the bound function, instead of crashing.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82523795
Don't remove side effects when devirtualizing methods by being conservative about what patterns are accepted as candidate methods.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82526239
Get rid of unused code by using it.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82526645
Remove dead code in JsDocTokenStream
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82531705
[NEW TYPE INFERENCE] Allow explicit type coercions.

These are the patterns !!expr, +expr, and '' + expr, which are
often used to force something to be a boolean, number, or string,
respectively.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82540824
Remove unnecesary lookahead in the parser (part 1)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82544360
Remove redundant computation in AmbiguateProperties.

- The TreeSet wasn't needed b/c its ordering wasn't used.
- The map in PropertyGraph wasn't needed b/c a PropertyGraphNode already contains a Property.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82548074