Do not initialize reference fields with null.

Leave all uninitialized fields with an undefined value instead of initializing them
with null.

In the past in some cases fields where initialized with null and some where left undefined;
commit 202e5a5 made all scalar fields to be initialized increasing codesize by 0.25% (and most
of the increase was in the initial and leftover fragment if runAsync was used). Non primitive array
elements on the other hand, are always left undefined.

This patch uniformly leaves all uninitialized fields as undefined.

Change-Id: I423852b1171a15c0bd187aa0eec4f527b3f95643
Making DialogBox clear handlers on auto hide

fixes issue 6356

Change-Id: Iaa4c76643eecf1b51820861f193de36ed44e9f41
Remove unused imports after parsing.

Removing unused imports is a necessary step for compiling classes that
are annotated by GwtIncompatible under certain circumstances.

In particular if static imports to GwtIncompatible members are used,
the compiler would throw an error in the static import.

Change-Id: Ia379c636a8462f74482d804440e84cf7b285feb8
Improve CompilationUnitInvalidator performance for large GWT
compiles by reducing copying and preferring map-lookups over
sequential scanning.

While compiling three UI's that I've worked on, the time spent
in the old version varied from about 0.5 seconds up to 12
seconds.  The new version takes negligible time up-to about
100ms for the same codebases.

Change-Id: I099e0093b2d48b6d8c5e19634d028db40382d96c
Review-Link: https://gwt-review.googlesource.com/#/c/3800/
Add note that getNativeButton is unreliable for MouseMoveEvents

Bug: issue 3983
Change-Id: I730089c5824585f6f07e77150cc9e7e59ea90f61
Super Dev Mode: implement GWT.log()

Currently this just logs to the developer console. Exceptions are
logged but their stack traces aren't included yet.

Fixes issue 7462.

Change-Id: I535046b5ef84b85a826bfbc992c38d58d7842fcf
Review-Link: https://gwt-review.googlesource.com/#/c/3862/
Revert "Making DialogBox clear handlers on auto hide"

This reverts commit 9453549842ae10f24d6299a52897d423bd8e0b7d.

Test for autohide fails if run with a real browser (e.g. -prod -runStyle Manual:1)

Change-Id: I952dfd37e9e3f99df36972e3895494f53ff0398b
Allow to control whehter JdtCompiler removes GwtIncompatible and UnusedImports.

Change-Id: I2aeed91edb80bea74193d79b5d9d6639854bc6e7
Fixes most issues with the SoyC reports (take 2).

Now the CodeSplitter2 (codeplitter with fragment merge) will produce a meaningful
soyc detailed report. The report does not take into account code movement due
to fixups.

The original patch (11dacc9) was garbled by a rebase that basically deleted the
line this one adds back.

Change-Id: I70f124f287e278dd122f78a1bf361904cb2aa7ef
Fixed a typo in JdtCompiler (GwtIncomptatible -> GwtIncompatible)

Change-Id: I2b0fa214d07cf07a41484199bba62cce3fd4aa23
Making DialogBox clear handlers on auto hide

fixes issue 6356

- updated tests to work in all browsers

Change-Id: I076490e517cea2b0b3927ac3112b0e4f2157dc93
deRPC: don't send fields that aren't used on the client

It prevents WebModePayloadSync from serializing fields that are not used on the client. This only affects deRPC, the deprecated version of GWT-RPC.

Fixes issue 8289.

Change-Id: I31ada523199878146c82c492a9cce265a21df620
Review-Link: https://gwt-review.googlesource.com/#/c/3910/
Implement GWT.debugger()

This is a magic method that compiles to a JavaScript "debugger" statement.
In "classic" Dev Mode it does nothing.

(It's implemented as a magic method rather than JSNI so that the breakpoint
will happen in the right place.)

Implements issue 8291.

Change-Id: I73fe997351c89443899e45200c97170b385c3a8e
Review-Link: https://gwt-review.googlesource.com/#/c/3906/
Revert "Improve CompilationUnitInvalidator performance for large GWT compiles by reducing copying and preferring map-lookups over sequential scanning."

This reverts commit e36d7ff5d7ae26782b56542f587b8ca9972d065b.

Change-Id: I181f32e9349ea871acff15363342262441166b22
Fixed the unused import remover to retain types used in package annotations.

Change-Id: If81cd27223bf9835a0d9ea187cb633e4b7316f85
Reintroduce the performance changes to CompilationUnitInvalidator with fixes.

The prior optimization falsely assumed that the same units would not appear in
both 'units' and 'validClasses', resulting in problems where not enough units
would be invalidated.  Now, checking is done that will detect the cases where
'units' and 'validClasses' overlap, and units from the overlapping set will 
potentially be invalidated.

Change-Id: Id132950cb3ff7aa5278e12af478b2de7a7efdee1
Review-Link: https://gwt-review.googlesource.com/#/c/3921/
Use canonical cache directory in PersistentUnitCache.

Issue 6443

Change-Id: Ia50dd389e2b1b084ccd7693962bfe7031f78ae1e
Adds support for unwrapping of thrown non-jso objects from JavaScriptException.

This is the second part of exception wrap/unwrap fix which adds support to unwrapping
of non-jso objects thrown by native code.

Change-Id: I09c92ac03abbdb930085e2aaf97001b4d495abd9
Fixes bugs in JsDuplicateFunctionRemover that caused JavaScript TypeErrors at runtime.

1. JsDuplicateFunctionRemover would replace two syntactly identical functions by one
   top level function. A subsequent pass of JsObfuscatedNamer would change the names
   used in these two functions in a way that they would no longer be identical.

2. The duplicate function remover assigned duplicated names accross
   fragments

Both errors manifest as JavaScriptException (TypeError).

The duplicate function remover is only used with the property compiler.stackMode=STRIP and
if -style OBFUSCATED.

Fixes issue 8284.

Change-Id: I5d4f430559237b3fca2009f67487963f28c92067
Add client.GWT.debugger() that does the same thing as shared.GWT.debugger()

This is for consistency since most people are using client.GWT.

Followup to issue 8291.

Change-Id: I64cbeaf8731d5a1d96a9325ffee7779ed30489ec