Add -XjsInteropMode option to SuperDevMode

The option is already present when compiling a GWT app and is required
to use JsInterop features like @JsType annotations. This change makes it
possible to debug the use of JsInterop features while in SuperDevMode.

Change-Id: I108754c59d34f4df6b3bd38df4109af2758f2ebe
Refactor: Move getUnderlyingType() from JReferenceType to JType.

Change-Id: Ibda106dd06c590b27c77dd00e6a2bec256a6fb19
Partially revert change from StringBuffer to StringBuilder.

This patch reverts the aforementioned change to avoid breakages due
to changing public APIs.

Change-Id: I58c12b77d69d0c56fdf775d4e3871e86ea9731d4
Fix EnumOrdinalizer.

EnumOrdinalizer incorrectly selects enums for ordinalization
(replacement of the enum values by integer ordinals) under a
few circumstances.

Also:
 - fixed quite a few of the units tests.
 - allow ordinalization even with access to values().

Bug: issue 8846.
Change-Id: I9c22c1576a238d5f6b3a5f52b25b2ca697b83fad
Avoid interning JS regexps.

JavaScript regexes are stateful, methods like RegExp.test(...) keep
track of the current match status in the regexp.

Bug: issue 8865.
Change-Id: I66ca84ad4363a8aa8f4c122d3e8e54b6f02bca49
Use codeserver progress web service.

- Check that the server is idle before compiling.
- Report some kind of progress when compiling.

Change-Id: Ia3b4dde32d9364d15513eeef77cd6799fc95d2d1
Modify cldr-import to work with last cldr-25 version

- cldr-25 needs some code modifications, and java 7 to compile.
- Updated instructions.

Change-Id: I56d61621591138ac2b568ebe8bb2b7d5173bb3d2
Update i18n stuff produced with cldr-import (v25)

- This is all the stuff produced by the GenerateGwtCldr script
  against CLDR v25 after applying Google's customized patch
  GWT_TOOLS/lib/cldr/25/GoogleMods.patch
- Modified tests so as they match new changes in v25
- Added locale data produced by internal Google python scripts.
- Enabling test commentend in Ida4306684008dbb28b8c9e5712376eed525e76a7

Change-Id: I5d02c0587ed16dfedcfa64ad00a033808110d84b
Change Turkish Lira sign to new one.

Bugs: issue 8777
Change-Id: Iefd6ea0c0e8a61ee5ac0c3664a461ecefc7a46ed
Revert "Stops reparsing the ModuleDef on every refresh in SDM."

The problem is that Recompiler.maybeSetBinding() is not
reversible, so on the next compile we can't set the binding
to a different value. The recompiler is using setAllowedValues()
to force one permutation and this needs to be rolled back
somehow before doing the next compile.

I wonder if there are any other changes that might leak
into the next compile? It might be safest to clone ModuleDef
before modifying it.

This reverts commit f743cb1815e68309e1d2e97c8817d4dc89da67d4.

Change-Id: If9862defa8f119a6e007e0fb70738bd520e3f37e
Cleanup in JTypeOracle.

Clarified the meaning of the relations that are represented in
JTypeOracle and refactored the computations of the derived
relations.

Change-Id: I3a05408a9443452df03925534ccea978b1f06852
Fixes access modifier bug in CollectClassData

The bug caused JRealClassType to have incorrect access modifiers for
inner classes. This fix ensures that the access modifiers for inner
classes are always based on the bytecode's InnerClasses attribute.

Bug: issue 8369
Change-Id: I75838b1900e24fd438319d95ca7035630b572bca
Use native Number.toString for Integer and Long.

Change-Id: I78768f01a97a60c9e2a05a3fd6d8f1636c3bc14f
Splits Compile and Link time logging.

Change-Id: Ic3d2e62acee2fe6262c25fccf6f5cc0c575d2df8
Allow per-enum name obfuscation.

1. Add new multivalued config property to specify fully qualified
class types to refrain from obfuscating.
2. Remove obfuscatedName method.
3. Instead, intercept calls to Enum constructor and replace first argument
with null for obfuscation.
4. Modify Enum.name() to return Stringified ordinal if the name is null

The null parameters actually get pruned and hoisted inside by
SameValueParameterOptimizer, so code size differences are
minor.

Change-Id: I950f053188d065cb162bde33c57931e7364173cc
Fix performance regression in JTypeOracle.

Change-Id: I55f694b8bbc8c23575ce77ed79037a2dbaf4e9cd
Re-write MathContext parsing with a simpler logic

Change-Id: Ifa1088640dcd3afbb04bd9cb908d0259060880ef
Improves performance of String startsWith & endsWith.

Appearantly getting substring is the fastest way to implement
startsWith[1] and endsWith[2] as modern browsers provide a view
of the string in substr (at least initially).

Also reaplced a few usages of substr in JSNI with pure java.

[1] http://jsperf.com/startswith-js/2
[2] http://jsperf.com/startswith-js/3

Change-Id: I3f6542842242f6caf01769fd1f7b8de23f33fc15
Always initialize minimalRebuildCache

Because of the no precompile option we failed first compile with
a null minimalRebuildCache.

Change-Id: If3d4af31dffb81b1744c2305f65c7e303caa5eec
Super Dev Mode: stop reparsing the ModuleDef on every refresh (take 2)

Starts trusting ModuleDefLoader.loadFromResources() to only reparse the
ModuleDef if it detects that any of the .gwt.xml files have changed.

Since we are reusing the ModuleDef, we need to avoid changing anything
that would affect the next compile. In particular, isAllowedValue()
shouldn't be affected by temporary binding property overrides.

So, distinguish between allowed values and generated values in the
BindingProperty objects. We can temporarily override the generated
values without affecting the allowed values. In a normal compile,
generated values are the same as allowed values but in Super Dev Mode,
they can be a subset.

Did some refactoring in BindingProperties to make this clear.

Change-Id: I00dac15b972717a9fc0fb93f04274f73c5509591
Review-Link: https://gwt-review.googlesource.com/#/c/8778/