Default softPermutationId to 0.

This fixes soft rebinding for permutation 0, where previously
module.__softPermutationId would become undefined (because permutation
0's strong name does not have a :0 suffix).

This resulted in the runtime "switch (permutationId)" logic always
picking the default binding (which may/may not be the one for
permutation 0).

Bug: issue 8575
Change-Id: I19a6f9650f5414d98905c0e45cd3a78628b05dd2
Reduce code size for array instance creation.

Change-Id: Ieae890762f6173909b290dab820cc024291fdc00
Use named function expressions when namespaces are on

This is so that we get the same stack traces as when
namespaces are off.

I verified that server-side stack traces are correct in
Chrome and Firefox. Also, StackTraceCreatorTest now passes
when using TestGal/Super Dev Mode/Firefox 27.

Change-Id: Id37e0095d90935b11e45b495d8f2ae18eaffafaf
Review-Link: https://gwt-review.googlesource.com/#/c/6450/
Adds a lazy LibraryTypeOracle.

Adds type source name indexing of nested classes to Libraries and
LibraryGroups so that they can honor such CompilationUnit lookups
coming from TypeOracles.

Added a guard to make sure that only valid compilation units are added
to zip libraries, since any caller that lazily reads out individual
CompilationUnits at some later time might not have enough context to do
validation.

Taught CompilationStateBuilder to instantiate the right
TypeOracle/LibraryTypeOracle for the current monolithic or
non-monolithic compile mode.

Turned the Resolver interface's getTypesByInternalName() function into a
findByInternalName(String) function since lookups are no longer always
as simple as a hash lookup. findByInternalName becomes a lazy load
point in LibraryTypeOracle.

Change-Id: I03867308682f70cb811219b01f42b7e0f6e8963b
Review-Link: https://gwt-review.googlesource.com/#/c/6461/
Makes runtime type metadata and class hierarchy setup more readable.

At runtime a map from RuntimeTypeIds to JavaScript prototypes is kept
at JavaClassHierarchySetupUtil.prototypesForTypeId. Gets rid of the
concept of seed and renames all usages accordingly, favoring to store
protypes directly instead.

This is an interim patch as class layout is likely to change.

TODO.
 - Fix or deprecate deRPC.

Change-Id: Ifc50508b6d49f3fa7aa8740d5ade46a247209b31
Remove the patching of String.prototype.

String.prototype patching should have been removed in the recent
cast refactoring path but mistakenly was not.

Change-Id: Ie1f10a57b4d803da2a70e5bc13214222ef9dfb17
Fixed a small error in Permutation.mergeFrom.

An assertion was checking the wrong condition, when merging permutations
that where collapsed (hence had more that one set of rebind answers).
Now only corresponding sets of answers are checked.

Change-Id: Ifce2688485a3384cf0eefdbc21116cfa67ab1b61
Slightly optimize System.nativeArraycopy for the common case.

Only make a temporary copy of the input when it's the same as the
output.
Performance: http://jsperf.com/java-system-arraycopy/2

Bug: issue 8239
Change-Id: I86a6c512e4670594c1e6e4cb9418cbac029152f1
Speed-up ArtifactSet.

This introduces a Multimap, which makes selection of matching entries
O(# of Artifact subclasses) instead of O(# of Artifacts).

Additionally, this change caches results of finds.  Experimentally,
this seems to make a difference.

Downsides: It consumes more memory to keep the Multiset and it's
slower for Sets where find is called only once.

Change-Id: I8411f44216f14f9bc0eb7b2a0860343d23babfc2
Review-Link: https://gwt-review.googlesource.com/#/c/6200/
A slight improvement for Collections comparators.

Moved reverse order comparator to internal Comparators
to delay its initialization.

Change-Id: If8ecb0367f59b5659881331f9967604153700a2f
Add new enums for CSS display.

Change-Id: I07d8c88c661a544e5d960e44f17ef218ae299092
CLEANUP: Removes some unused variables.

Change-Id: I7fa9b37be79edc6f5ea0b0d84b4c11160d794ec8
Update Guava to 16.0.1 for CDI compatibility

Bug: issue 8590
Change-Id: Ic12978ffdfe549d2100c0c6948b1864fb051200b
Let AbstractCollection.addAll use common style according to other Collection implementations.

Change-Id: I46b97e5adfc3a1a9485a45de2ded3826f52ea382
Fix AnimationSchedulerImplStandard wrt high-res timestamps

In Ie00d1020285ce41c571054709bbe19aeef348975, AnimationCallback started
receiving high-res timestamps as arguments, and this broke Animation.
This change reverts the semantic change, always passing the current
timestamp (from Epoch) to AnimationCallback.

Bug: issue 8570
Change-Id: I590cd0ec6b57c5f41e30234a101331a109b42cb4
Define trampolines at actual JSO class rather than in JavaScriptObject.

Trampoline methods where declared in JavaScriptObject instead of the
actual JSO class. In modular compilation JavaScriptObject code will
only be generated in the defining module, hence separate compilation
would need to be aware to regenerate JavaScriptObject.

Also removed some redundant generated code in the String specific
trampolines.

In the current scheme still JSOs need to be declared in the SAME
module as the interfaces they implement when compiling modularly.

TODO:
  - Lift the above restriction.

Change-Id: Id563afe7650b099f6cfafbb814e24dac1ed2dbc4
Split longest running test suites to reduce testing time.

Change-Id: I56e24162668e7d7c4d8a4d9cd36807c4c1259d1c
Use gzip best compression in PrecompressLinker.

(Free) reduction of 0.5% for compressed .js files.

Change-Id: Ic0064d95b10f5f42da1b79b7684b13549e804f39
Small refactoring of CastNormalizer.

CastNormalizer was also fixing type coercions. There were now pulled into
their own separate pass and added missing unit tests.

Change-Id: I147d10fe3c7b38c25a9b4d2c6feef30908c796ca
Add console onto window property for D8Linker

Change-Id: I4186ce8fbcad3062807e2e4425b54989d71bada4