Fix String.trim() to behave as in Java for string with null characters.

Bug: issue 8534
Change-Id: If45002f78ec8f8be7b1197606de6529ed273b837
Fixes property dependencies for user agent generators

Change-Id: Ic33b77fa7087918fcc031878bc4a245d9bff1bd5
Put JavaScript globals into namespaces in Super Dev Mode

This is to work around a Chrome limit on the number of global variables
when attempting to run a large GWT app in Super Dev Mode. It should also
make the debugger somewhat easier to use because not as many variables
show up under "window".

Implementation: a new compiler pass creates a separate JavaScript
namespace for each Java package. Each namespace contains the functions
and global variables for that package.

By default, package namespaces are generated by taking the first initial
from each name in the package path, so for example, "com.google.gwt"
becomes "cgg" unless that name is already taken.

TODO
 - add a flag to the regular compiler. (Currently only Super Dev Mode
has namespaces enabled.) 
 - Tweak the pretty namer so that it doesn't rename globals as often.
A variable that's moved to a namespace only conflicts with other
variables in the same namespace.

Bug: issue 8532
Change-Id: Ibec0fd25b86cee79ee9621bde28f1cdfd90b0caf
Review-Link: https://gwt-review.googlesource.com/#/c/6071/
Don't log a warning when Super Dev Mode is off.

Change-Id: Id958f469c20d283f943f85e2291b14e1238c1614
Added monolithic/separate branching to JavaToJavaScriptCompiler.

Separate compilation branches in JavaToJavaScriptCompiler takes care to
avoid most optimization passes, the Pruner, and StringInterner. It also
triggers generators prior to UnifyAst and drives them differently.

Added Generator triggering and runtime rebind rule creation functions
to Rule classes, so that they can be driven by the new non-monolithic
JavaToJavaScriptCompiler pathway.

Added a RuleBaseline to be the creator of fallback runtime rebind rules.

Change-Id: Id825773c26d4efb6e934ae1b30c4792419785020
Review-Link: https://gwt-review.googlesource.com/#/c/6070/
Revert "Put JavaScript globals into namespaces in Super Dev Mode"

This reverts commit 7ed2e49921fb67ac4998186a7b33f421d2b42729.

Change-Id: I77da22cbfd0d1137412b0e13f5038a21e10cfe71
Use System.currentTimeMillis() in LogRecord

Change-Id: Idd331b766953874664a966645a1a75d106b016f1
Let Duration, Random, System use Date.now()

Change-Id: I14029a2df997726cf17aa426d4d50cb80aa9600a
Fix ModuleSpace.rebind to not swallow exception

Bug: issue 8514
Change-Id: Ic93c39a6ab21ca4bb71958e10880867a00ca4b88
Updates DelegatingGeneratorContext to avoid updating subclasses.

Change-Id: Iefb949b935c8ee0b694f64209fe00334dcbf48ab
Revert "Updates DelegatingGeneratorContext to avoid updating subclasses."

This reverts commit 042c99deb079988e1fb128a471db6ec5b3526363.

Change-Id: I4c4af6e7b3fd29c26af7977f325cac3c558bd717
Revert "Added monolithic/separate branching to JavaToJavaScriptCompiler."

This reverts commit 5a972863fdc9dfabffb2db41bd20085d6c77dea6.

Broke CompilePermsServer.java

Change-Id: Ib718fbb03154a40c76fc06d265bcd716896f01aa
Use -war instead of -out for generated project files

Bug: issue 8542
Change-Id: Iad321e52848b9ceba18d200bf39b5b571897d2c6
Put JavaScript globals into namespaces (take 2)

(There is no user-visible change since it's not turned on in this patch.)

This is to work around a Chrome limit on the number of global variables
when attempting to run a large GWT app in Super Dev Mode. It should also
make the debugger somewhat easier to use because not as many variables
show up under "window".

Implementation: a new compiler pass creates a separate JavaScript
namespace for each Java package. Each namespace contains the functions
and global variables for that package.

By default, package namespaces are generated by taking the first initial
from each name in the package path, so for example, "com.google.gwt"
becomes "cgg" unless that name is already taken.

TODO
 - enable for Super Dev Mode
 - add a flag to the regular compiler.
 - Tweak the pretty namer so that it doesn't rename globals as often.
A variable that's moved to a namespace only conflicts with other
variables in the same namespace.

Bug: issue 8532
Change-Id: I9f20d247ecf932dbc6c805ea43648d81241b2ef2
Enable namespaces for Super Dev Mode (take 2)

Change-Id: I43fc71cb28885c445a89c5cc2882d1ea774754ac
Added monolithic/separate branching to JavaToJavaScriptCompiler.

Separate compilation branches in JavaToJavaScriptCompiler takes care to
avoid most optimization passes, the Pruner, and StringInterner. It also
triggers generators prior to UnifyAst and drives them differently.

Added Generator triggering and runtime rebind rule creation functions
to Rule classes, so that they can be driven by the new non-monolithic
JavaToJavaScriptCompiler pathway.

Added a RuleBaseline to be the creator of fallback runtime rebind rules.

The monolithic flag is stored in CompilerContext and defaults to true so
that it is already correct for most compile entry points and so its
value is easy to set even if the compiler entry point in question does
not have a ModuleDef instance.

Change-Id: Iae7ddeef5c2bc5f2c919630bbb5acf219e5aaf27
Review-Link: https://gwt-review.googlesource.com/#/c/6156/
Fixed collapsed properties to work under code splitting.

CollapsedPropertyHolder.getPermutationId might have ended up in
an exclusive fragment but was is needed in the initial download.

This fix makes CollapsedPropertyHolder an ImmortalCodeGen type.

Bug: issue 8539.
Change-Id: Ied8a2032fa3f5603728d35c3d4351b37d1258ab3
Unified all interning logic into JsLiteralInterner.

Now any JsLiteral that is a value is interned by a JsLiteralInterner.
For now only strings, regexes, numbers and some object literals (e.g.
the ones for cast  maps) are interned. Object literals that represent
long values should also be internable here, however they are interned
in GenerateJavaScriptLiterals to provide them with a nice variable
name.

A future compiler pass might mark other literals that have value
semantics (i.e. never changed, never compared by reference)s as
internable.

Change-Id: I163cac2622ee72c395bf8ae37ed67862ab74a082
Moves RuntimeRebind classes out of the public interface.

Change-Id: If3cab423489172ce491bfff278519f214016380c
Adds missing @Override annotations.

Change-Id: Ia66b13f989c6ee97cd38ee4c259a6feaab774291