Remove use of prebuilt requestfactory-apt.jar

The current setup needed requestfactory-apt.jar in GWT_TOOLS to be kept
up-to-date after each change to RF annotation processing, which proved to
be too much burden.

This change instead explicitly calls the RF annotation processor when
compiling tests. As a side-effect, it means that in case we later need
another annotation processor, it'll have to be explicitly called too, as
discovery is no longer used. We expect to have changed the build system
before then, which would allow us to use prebuilt JARs and go back to rely
on discovery for annotation processing.

Change-Id: I36f3c2efabd9a24bc1ba18e6961f4dd4f12514da
Exclude **/super/** from user/test/ in Eclipse and Ant builds.

The error was introduced by I34ce8f327

Discussion and details here: https://groups.google.com/d/topic/google-web-toolkit-contributors/gr5H1sp11jU/discussion

Change-Id: I73daa934dfbce1a4eca486153992dc1652450b58
Temporarily disable JsTypeTest

Change-Id: I540a383e588e96789a181cde3860a176f47ae9cd
Don't type tighten JsType methods. Treat JsType methods the same
as native.

Change-Id: I6165cf5d18158611a9af35b22b7b5eb590118acd
Allow mocking frameworks to disarm AnimationScheduler.

Change-Id: I5e5a434b9c8fc421ce7fef79c365502af7a00f4b
The first stab at breaking cycles in gwt-user.

This patch removes the major cycles and introduces separately
compilable targets for gwt-user.

Many libs now compiles separately. Some significant ones:
 - c.g.gwt.dom
 - c.g.gwt.i18n
 - c.g.gwt.user.RPC/RPCDTO

In order to break I18N - User cycle without much complication,
I changed AutoDirectionEstimator.Target to not extend HasText.
This is a breaking change as third-party code may assume Target
extends HasText but practically speaking most projects will not
be affected by it. To reduce the impact the only implementor of
Target interface ValueBoxBase now explicitly implements HasText.

Change-Id: I9d478769f194265b5b6d348a42198fd31c0894b1
Review-Link: https://gwt-review.googlesource.com/#/c/7883/
Fix bug in UnifyAst causing compile errors when JsInterop is off.

Fix bug in UnifyAst, SuperDevMode Elemental not compiling with
JsInterop because of draftMode classes rescued that shouldn't be.

Fix bug in ControlFlowAnalyzer, RescueVisitor is instantiated before
constructor copies rescueViaCast members from parameters.

Change-Id: I71c661a6a7235ccf542e61dbcac58ba0135200a0
Restores backs EventBase.gwt.xml

Restores back EventBase.gwt.xml to provide more compact view
of the c.g.gwt.event package.

Change-Id: I23e44fa84c5070620688b9f65e7779e3ec074eef
Add test for tokens stored in anchors.

Change-Id: I93bb7862788bd5fbf7eda483affc0a88cbf22008
Make polymorphic dispatch work in v8.

Classes that override methods from parent classes did
not get optimized in v8, due to a problem with the
way hidden classes are built up in v8.

V8 requires prototypes of different classes to differ
in the set of properties in order to perform some
optimizations. This patch makes every prototype have a
unique field for that purpose.

Change-Id: I8ef1c117974e4bce9281194779a832505d9799b0
Ensure clinits get called for JSO instance methods.

In following Java semantics, any static initialization code in a class
(collectively a clinit) should be run before any part of that class is
used. To achieve this, GWT ensures that this clinit was invoked before
any (actually) static method, and as part of any constructor. This way,
instance methods are sure to have already run the clinit, so it doesn't
need to be run again.

However, JSO constructors don't exist, so instance methods are not
guaranteed to have had the clinit already run. This is the bug that this
patch is trying to fix.

Two locations are changed, both with the effect of ensuring that a
clinit is emitted for JSOs. First, the MethodInliner must not skip
adding a call to the clinit when the jso body is inlined and the method
invocation (and ref to the class) is dropped, and second,
GenerateJavaScriptAST must likewise write out explicit clinits for any
static method or jso instance method.

The jso methods for the unit tests include methods that seem slightly
convoluted to avoid being inlined - once inlined, the clinit would
re-appear (as it should, since the static field is being accessed
directly). Each situation being tested requires its own type, since the
test app would require being restarted to empty out each static field.
Note that prior to this fix, only the "instance method" case failed and
returned null - the other situations are added just to ensure that
everything else is behaving as expected going forward.

Bug: issue 3192
Change-Id: If09885382bcf2d6c149cd8e48bfdd3ae527d67cb
Use Object.create in AbstractHashMap.

This change cleans code and improves AbstractHashMap
performance when used with String keys.

Map created via Object.create(null) permits
keys with the names of Object's reserved properties.
This would eliminate the need to prepend colon (':')
to map's key names.

All supported browsers should gain performance
benefits except for IE8.

Change-Id: I79ef95ec6c62c0448dfe317380937c15e2069bc7
Adds a missing String format arg in UnifyAst error reporting.

Change-Id: I54cea6deb4262377d4d1568cfc51961a7a2d422c
UnifyAst was not loading RootTypes from libraries, fixed.

Change-Id: Iff5c24b3f5ceba812303f0cb20f037475d3e874e
Put the $gwt variable on the right window

This is a special variable for communication with the linker,
so it goes in the GWT app's iframe, not on the top-level window.

This fixes a regression in
  https://gwt-review.googlesource.com/#/c/7860/

Change-Id: Ifb6f1dc9722459977f13adfa85b01a6ee8b78b08
Simplifies the AbstractHashMap.

This patch basically does two things:
- Removes the special handling of null keys and let it forwarded to
hash-based implementation.
- Extracts hash-based map implementation as a separate class and
gets rid of all existing jsni in AbstractHashMap.

This should have similar performance characteristic except slightly
slower code path for the null keys.

Next steps for optimizations:
1- Introduce copy-less iterators
2. Introduce fast code path non-string keys with @SpecializedMethod

Step 2 requires compiler support for multiple @SpecializedMethod and
also negations in type matching.

Change-Id: Ifb3e7c8368ce9f3634e6aaec6c634efb55ea7015
Makes stacktrace construction lazy in exceptions.

This will make exception much lighter weight.

Stacktrace is now first collected at fillInStackTrace via captureStackTrace
then later (and only if needed) processed to generate the java stack trace.

Also JavaScriptException is refactored to fix double stack trace collection.
Earlier it was collected both from the parent constructor in Throwable and
then a second time when its own constructor runs.

This patch (hopefully) finalizes StackTraceCreator API. Some time in the
feature, it will be followed up by chaining the prototype of Throwable
with javascript Error object which will make Throwable a javascript
compliant exception.

Bug: issue 8447
Change-Id: I45d9b782367a33cbf65aba53f7d9d5dafc402412
Removes a Java7 only reference from TypeRefDepsCheckerTest.

Change-Id: I2732aa6a2905ab385786238e879ef0c1e9ff0846
Temporarly disable newly added test that broke build.

Change-Id: I55ba980f0a0dc0f12025bf9e2c9ee54c8f8c10bb
Add Object.keys polyfill.

Change-Id: I0ad112791f0f8fcf27d3d842971863558a777483