Implement Deque in LinkedList

Bug: issue 8512
Change-Id: Ic9a26c50a1b165ee32deb2e6941d3ba5e414abab
Added RegExp.quote(String) which returns an escaped string,
i.e., the escaped string can be used to create a RegExp that would 
match the non-escaped string as if it were a literal pattern.

Change-Id: I224443a6b4a37344e79b50b0bf5064cd75809936
Review-Link: https://gwt-review.googlesource.com/#/c/5870/
Removes some obsolute comments

Looks like these are leftover from DOM refactoring.

Change-Id: Icd91d742abe7f6500a782ce82c4e9e9234961788
Fixes method/cstr parameter names for parameterized types

I don't want to even talk about how I hit this problem :/

Change-Id: I53c06a8324864b2b5b8d84e5e72b7d5105264f7f
Review-Link: https://gwt-review.googlesource.com/#/c/5840/
Use Objects.equals instead of Utility.equalsWithNullCheck

This patch just removes duplicating code to check
two objects equality with null-sensitivity
in java.util package classes.

Change-Id: I3446d628fe3007aa3895042337e8a9358ce138d0
Computes JS strong name earlier, to avoid recomputation.

When linking the strong name of the output JS is needed to uniquely
identify the output file.

Calculating this hash of a potentially large String is expensive. When
compiling monolithically this hash will only be calculated once, so it
is mostly OK that in the past this hash was calculated at the last
moment.

But when compiling (and linking) separately, the output String is
larger and made up mostly of chunks that have been previously seen and
are being reused. Taking the hash of the large String that is the
result of combining these chunks, starts to be extremely wasteful. By
having precomputed hashes for each chunk, it becomes much cheaper to
generate a unique hash for the set of chunks (by hashing just the
combination of precomputed hashes). This change prepares the way for
this eventual separate compilation related change.

Change-Id: Ied09ca9f3e73143babc890e49d27456de7054ada
Added missing lineStart and lineEnd in UiBinder xsd file

Author: Markus Mårtensson
Bug: issue 6596
Change-Id: I9d73e13947746bcf92f5312d2913cebe6aea05d5
teaches CompilationResult to combine library PermutationResults

In the past the StandardCompilationResult artifact acted as a facade
for a single PermutationResult instance as it surfaced JavaScript code
and StatementRanges to the linker pipeline.

With the addition of separate compilation and linking there are now
sometimes multiple PermutationResult instances (one root "application"
instance and multiple "library" instances) that make up an application.

This change adds an optional constructor to StandardCompilationResult
to pass it an extra ordered set of "library" PermutationResults and
updates JavaScript code and StatementRanges retrieval (and some other
things) to return the combination of all of that data from all of the
known PermutationResult instances.

The net result is that all of the JS of an application and a set of
precompiled libraries is combined together in the final linked output.

Change-Id: I68728bd94b9daaf805ef48ad6b6b7f2903b485aa
Review-Link: https://gwt-review.googlesource.com/#/c/5923/
In devmode, call plugin.disconnect() on window unload

This change hooks up the plugin.disconnect() call to the window
unload callbacks. (Notice that in both cases this actually hooks
them to an iframe window, not the parent window itself.)

If the plugin doesn't have a disconnect() method (true today)
then it does nothing.

This is a prerequisite for fixing the Firefox memory leak.
For the next step, see:
https://gwt-review.googlesource.com/4680

Change-Id: Iff9f366bc7e34d5d2bb4098a49e0aaa3ca0aeb34
Add emulation of java.util.Collections.asLifoQueue (Java 6 API)

Bug: issue 8516
Change-Id: I978ba8c1c0ccbae815c6312b5dfc0467a6cb332a
Change UserAgentAsserter to use UCE instead of a dialog

When a dialog is used, end users are facing with an obscure message and
the developers will not even be aware of the problem.
With UCE, the error will be piped through exception handling mechanism
that is already setup for the environment (e.g. remote logging in
production).

Bug: issue 8079
Change-Id: Ibac3460eedd140b604ef31ec5d4ce693306b801f
Review-Link: https://gwt-review.googlesource.com/#/c/5930/
Allow optimizations remove single statement bodies.

JModVisitor would allow removing arbitrary statements from blocks,
but not allow removing single statements from While/Do/For when
not inside a block.

Bug: issue 8507
Change-Id: Id2086d044e68007f3a1d1e80520e98d7464e0454
Organizes/separates source, public, and build resource oracles.

Previously the process of scanning for resources in resource oracles
performed a dangerous liberal cross product of every registered path
prefix (from every resource oracle) with every class path entry (from
every resource oracle). This was silently resulting in combinations of
(resource path, class path) that the user never explicitly intended.
These accidentally included resources created hard-to-diagnose missing
resource failures in separate compilation. This bug has been fixed by
doing a separate resource scan per resource oracle.

Updates CompilerContext to automatically collect the proper combination
of moduleDef and libraryGroup resource oracles.

Removes or redirects (to the compilerContext) resource oracle accesses
that were trying to directly pull resource oracle instances out of a
moduleDef instance. There are still some of these references remaining
(for example in StandardGeneratorContext) but it won't hurt anything
until separate compilation is actually released. They will be fixed in
the next patch.

Adds a way to register a path in ModuleDef ("addResourcePath()") that
is ONLY for build resources. In the past these could only be
registered as combined source/build resource paths which was forcing
a lot of duplicate source inclusion between different .gwt.xml files.

Adds the beginnings of resource last modification date scanning, to
enable minimal incremental rebuilds by SuperDevMode.

Change-Id: I948b8feaa5729ca5c02219cfe393be86e247f5b7
Review-Link: https://gwt-review.googlesource.com/#/c/5972/
Makes GWT.reportUncaughtException JVM compatible.

Change-Id: Ibbcc7a65a89ac1fd1e8988f57a57bbe356b46ca9
Fixes OutputFileSetOnDirectory for non-canonical files.

Bug: issue 8500
Change-Id: I991e306dd53ba909bc46f6372d45faf027b8385e
Remove IE6 LayoutImpl & make IE9 use standard impl

Change-Id: Ic333252c1ab4944520f041694f2181fdb9dd736e
Update HistoryImpl to use modern browser standards

Removes all old history implementations. Especially the timer
implementations caused many headaches on mobile.
Instead of setting window.onhashchange directly this uses
window.addListener instead, unfortunately this does not work with
IE8 (window.attachEvent does not call our listener on programatic hash
updates),so we end up rebinding anyway. This implementation should be
very easy to update once we drop IE8 support.

Change-Id: Idd4b25d11f36402d6fa4737d6d5ec0ed98b15fca
Revert "Organizes/separates source, public, and build resource oracles."

This reverts commit ca56d96ff4814b66952450c2c6d402fac4456095.

Change-Id: I7d285c4919d016b25c736622e24808389871af47
Organizes/separates source, public, and build resource oracles.

Previously the process of scanning for resources in resource oracles
performed a dangerous liberal cross product of every registered path
prefix (from every resource oracle) with every class path entry (from
every resource oracle). This was silently resulting in combinations of
(resource path, class path) that the user never explicitly intended.
These accidentally included resources created hard-to-diagnose missing
resource failures in separate compilation. This bug has been fixed by
doing a separate resource scan per resource oracle.

Updates CompilerContext to automatically collect the proper combination
of moduleDef and libraryGroup resource oracles.

Removes or redirects (to the compilerContext) resource oracle accesses
that were trying to directly pull resource oracle instances out of a
moduleDef instance. There are still some of these references remaining
(for example in StandardGeneratorContext) but it won't hurt anything
until separate compilation is actually released. They will be fixed in
the next patch.

Adds a way to register a path in ModuleDef ("addResourcePath()") that
is ONLY for build resources. In the past these could only be
registered as combined source/build resource paths which was forcing
a lot of duplicate source inclusion between different .gwt.xml files.

Adds the beginnings of resource last modification date scanning, to
enable minimal incremental rebuilds by SuperDevMode.

Change-Id: Ic238f4e3d96516c2bab31ad03014c2a7402042b2
Disable Super Dev Mode in web workers

There are linkers that subclass CrossSiteIFrameLinker but run in
environments where 'window' is undefined. Don't include the
Super Dev Mode hook, since it assumes 'window'.

Change-Id: I5d381fc29ca1738068fa5b8f259dd1ac4ed65221