Fix JSNI reference in JsJsonNumber.

Jsni method matching logic in GWT is being made more strict to better
handle wildcard matches.

A JSNI reference <class>::<method>(<signature>) will match methods in
<class> regardless of access modifiers, but only public methods on supers.
Also if more than one match is found an error is reported.

In this case an attempt to refer to a private method on JsJsonValue
through its subclass JsJsonString.

Change-Id: Ic12ee2e72a54b372f895816eddec9623d14c8790
create BUILD file in gwt/svn/trunk/user

Part 1: move globs, java libraries, and AugmentedJars.
(These are the minimum changes needed so that everything
still builds without blaze warnings.)

Change-Id: I7bf06da1e2c310143cbe5503d64589c12cbc4cbd
Revert "create BUILD file in gwt/svn/trunk/user"

This reverts commit ccff175b5e89df7cdc0e9059f088e00b97857d32.

Change-Id: Icccfc678023f9e7232570f82e10028ed8b4ccb9e
This breaks certain TestSuites in DevMode, like CellSuite.

Revert "Refactor JSNI name resolution."

This reverts commit 126e047dd795558dddc5400d6d4732fba85988f6.

Change-Id: Ic9aea3b6a6196cfa2d8cb8fefa3488a340433e16
Use full import resolution in JSNI method references and refactoring.

(1) Support full Java import semantics for jsni method references.
    Full import semantics for field accesses will be provided
    in a follow up patch.
(2) Improve error reporting, e.g. when jsni method references
    are ambiguous report the first two conflicting methods.
(3) Resolution from JSNI references is centralized at
    JsniReferenceResolver (formerly JsniChecker).
    Removed wildcard dispatch code from DevMode, which was
    computing the dispatch in a slighly different manner that
    JsniRefernceResolver. All JSNI references arrive fully
    resolved to DevMode.
(4) Other minor renames, very small refactorings.

(includes the changes in rolledback commit
126e047dd795558dddc5400d6d4732fba85988f6)

Change-Id: I525c1e74cb49a9639dae18cac19a7b7dd132419a
Replace custom loops with Node.removeAllChildren()

Change-Id: I776501d1807be3953955b95174134f5219e7d435
Review-Link: https://gwt-review.googlesource.com/#/c/6800/
Fix incorrect method dispatch affecting package private methods.

This patch fixes 2 different errors regarding dipatch of package
private methods.

(1) Each package private method chain needs a different polyname
    to reflect the fact that some methods do not override other
    virtual method with the same name.
    Also when a class augments the visibility of a package private
    method it will have two names referring to the same method
    (other solutions might be possible with global information).
(2) MethodCallTightener used to recompute overrides but does not
    take package private access into account, only the method
    signature. That was not correct and has been fixed here,
    by making sure that then tightened method is an actual
    override.

Bug: issue 8654.
Change-Id: I0828a9baa7f137ac0bc1a5e49ae0f1fb8820fdf7
Working version of JsInterop Phase 1.

Fully implements @JsInterface with the following features:

1) instanceof and cast checks for native prototypes
2) Java subclassing of native JS types with
   @PrototypeForJsInterface
3) Support for @JsProperty
4) Support for @JSExport
5) Annotation processor support, including 'constructor' generation
6) JSORestrictionsChecker diagnostics for common mistakes

Change-Id: I12b8d1eb44665ff89919981baad206ca3ae57323
Emit a warning when a JSNI method reference is assigned to a field.

A common error when passing method as callbacks in JSNI occurs for
example in:

  $wnd.aCallback = o.@Class:callback();

where a qualified method reference is set into a field of a different
object without capturing the qualifier. A later call

  $wnd.aCallback();

will bind $wnd to 'this' and the callback; which is probably not desired.

In order to silence this warning the user can explicitly assign the
qualified method reference to a variable as follows.

  var callback =  o.@Class:callback();
  $wnd.aCallback = callback;

Change-Id: I06ae1f9eddc225d3507d556b5fec8faccd7e65e6
Fix code duplication in JsInterop patch.

The ComputeInstantiatedJsoTypes pass was not correctly
extracted from ImplementCastsAndTypeChecks.

Change-Id: I3041bbdfac951f3bf993d7c4e1288d17d49cc95f
Makes CoreSuite compatible with all browsers

Change-Id: I349eef7c8015addc93a5793b2d33c9ccc4cf09ab
Fix handling of null in AssertionFailedError(String).

Previously, you would see "junit.framework.AssertionFailedError: null"
if you pass in 'null' as the message for AssertionFailedError (which
many Assert methods do). This was fixed in the core JUnit code
in https://github.com/junit-team/junit/commit/1b809a4a2e

Change-Id: I4d32ff789dc684d1427d9d0e53229fc15b53ab5c
Fix inconsistency in MethodInliner.

MethodInliner would create an instance of JNonNullType whose
underlying type was JNullType. Leaving the AST in an illegal
state where further passes down the road could be making wrong
decisions.

Change-Id: I2bbca4692b6eadb609a22b1016a834fd94bc7840
Exclude some JsInterfaceTests from old ff and ie8.

Change-Id: Ibb5294d24f8d5cef6b5faa613996b9f2f2c40d28
SuperDevMode: add -compileTestRecompiles flag

This allows compile tests to catch bugs that don't show up
during the first compile. (That is, assuming they do show
up when no files have changed.)

Change-Id: Ida97349ecb6948bb8fa05b317148a0cc12572842
Review-Link: https://gwt-review.googlesource.com/#/c/6921/
Don't fail compilation if we can't emit a private artifact

Only fail for "public" and "deploy" artifacts (StandardLinkerContext's
produceOutput is only called for those 3 visibilities, "source"
artifacts and emitted by the SourceSaver).

This change reverts to the GWT 2.5.1 behavior, for private artifacts
only. The behavior was changed in 73862cc8ceb81c29a669d573441e231e4b272842

Bug: issue 8623
Change-Id: I7a87c13d33c942f9cbcd3c27ec90c9ea9c19c70d
Improvements and deprecations to Impl.getNameOf.

Impl.getNameOf() (not a public API) provides a way to obtain the
actual name of the JavaScript function that implements a Java method
given a JSNI reference. Also allows the same for fields and types.

(1) Impl.getNameOf now only accepts a proper JSNI reference as
its string parameter.

(2) Deprecated access to types just by name.

(3) Deprecated use of binary names. All names must be
    source names.

(4) Add limited support for pinning methods; methods that are
    pinned will not be inlined or statified. All methods
    referred to by Impl.getNameOf() are pinned.

TODO in follow up cl, add support for pinning fields.

Change-Id: Ia3fb6471318e3b9cb757d243578a5903b271e62c
Fix UnusedImportRemover to traverse package annotations

Previously we just noted the type of the annotation, but we then
considered types from annotation properties as unused and removed the
imports, resulting in errors downstream.

Bug: issue 8425
Change-Id: Idfa9430fd60cc7dea2069a8d860d6de078b6ca16
Remove old JUnitCreator

Change-Id: Ib97903d515875615b33fbe236e028693e2929484
Fix CompilationStateBuilder for units that fail JDT compile.

Units that fail JDT compiler might be saved as cached units; these
might be resolved later and need their dependency information
to invalidate other units.

All the other information collected and checks performed in
UnitProcessorImpl that require traversing the JDT AST have
been turned off for units that fail JDT compile; when
units fail JDT compile, their JDT ASTs are left in an
inconsistent state that might cause exceptions when traversing.

This patch fixes a breakage when superdevmode recompiles
due to having units with JDT errors incorrectly represented.

TODO: have a saner approach to units that fail to compile
under JDT.

Change-Id: I8c9d7a59d4f4be424b81ba1a46993924e9ffc126