[NEW TYPE INFERENCE] Don't crash when removing a non-existent property.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=65332953
Update ProgressEvent to support type and object parameters.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=65333574
Avoid infinite loop if EOF is found inside a RegExp literal.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=65334202
[NEW TYPE INFERENCE] Don't crash for doubly assigned prototype methods
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=65366951
Remove tail recursion from findNearestNode, and clean up:
- Useless String#format usage
- convert util methods to private/static
- catch potential NPE usage for identifierToken
- remove useless boolean test for lineSet
- use single char constants where possible
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=65385893
Use ImmutableList/Set where possible
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=65396475
[NEW TYPE INFERENCE] Handle constant properties.

In the current checks before this CL, the compiler cannot check for constant properties. It requires collapse properties to run before, and only checks for const variables.
https://code.google.com/p/closure-compiler/issues/detail?id=1220

When the new type inf lands, we can remove ConstCheck and CollapseProperties from the checks.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=65398067
Use Sets instead of Lists in CheckRequiresForConstructors. Order doesn't matter, and we call .contains() a lot, so this should be faster.

Leaving the list of Nodes as a list, since Node.hashCode() is known to be expensive.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=65399610