Refactor LibraryUpdater to prepare for parts.

R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//804903004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42384 260f80e4-7a28-3924-810f-c04153c831b5
cps-ir: Add support for intercepted calls.

Add an Interceptor IR node that encapsulates the receiver of a method call that (possibly) must be intercepted and replace the receiver of the call by the new node.

Currently we do no optimizations of the interceptor's intercepted class field based on type inference.

R=sigurdm@google.com

Review URL: https://codereview.chromium.org//806103003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42385 260f80e4-7a28-3924-810f-c04153c831b5
Revert "cps-ir: Add support for intercepted calls."

This reverts commit r42385.

R=sigurdm@google.com

Review URL: https://codereview.chromium.org//808553004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42386 260f80e4-7a28-3924-810f-c04153c831b5
Avoid repeating common parts of ProgramResults.

R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//799403005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42387 260f80e4-7a28-3924-810f-c04153c831b5
Merge RawICData::range_feedback_ field into RawICData::state_bits_.

We were using a lot of bits in state_bits for recording deoptimization reasons, never asked about presence of those bits.

Ultimately optimizer cares only about 3 different deopts, so most all of those bits were wasted.

R=srdjan@google.com, zra@google.com
BUG=

Review URL: https://codereview.chromium.org//807593002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42388 260f80e4-7a28-3924-810f-c04153c831b5
dart2js: Fix of deferred static functions.

When deferred static functions go to a different output hunk than the
class they are defined in the emitter got problems with outputting them.

We could say that static functions always go to the same output-unit as
their class, and this is needed to support reflection. But we already
handle it that way when reflection is needed. In deferred_load.dart:

      void addLiveInstanceMember(Element element) {
        if (!compiler.enqueuer.resolution.hasBeenResolved(element)) return;
        if (!isMirrorUsage && !element.isInstanceMember) return;
        collectDependencies(element.implementation);
      }

R=floitsch@google.com

Review URL: https://codereview.chromium.org//810473003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42389 260f80e4-7a28-3924-810f-c04153c831b5
Fix GCC build by using a intptr_t constant instead of anonymous enum.

TBR=zerny@google.com

Review URL: https://codereview.chromium.org//805233002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42390 260f80e4-7a28-3924-810f-c04153c831b5
cps-ir: Add support for intercepted calls.

Add an Interceptor IR node that encapsulates the receiver of a method call that (possibly) must be intercepted and replace the receiver of the call by the new node.

Currently we do no optimizations of the interceptor's intercepted class field based on type inference.

R=sigurdm@google.com

Committed: https://code.google.com/p/dart/source/detail?r=42385

Review URL: https://codereview.chromium.org//806103003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42391 260f80e4-7a28-3924-810f-c04153c831b5
dart2js: put all type-test related properties on the prototype and not on the constructor.

R=karlklose@google.com

Review URL: https://codereview.chromium.org//802653005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42392 260f80e4-7a28-3924-810f-c04153c831b5
dart2js: Minor cosmetic cleanups.

R=karlklose@google.com

Review URL: https://codereview.chromium.org//806883002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42393 260f80e4-7a28-3924-810f-c04153c831b5