dart2js: Simplify type test emitter.

R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42318 260f80e4-7a28-3924-810f-c04153c831b5
When canonicalizing UnboxInt32([tr], BoxInt64()) make sure to mark resulting converter truncating.

We regressed this logic in r41736 when we started to  checking whether current UnboxInt32 can deoptimize, instead of whether it is truncating or not. This was too aggressive.

Additionally fix CanDeoptimize for UnboxInt32([tr], BoxInt64()). It was always returning true because CompileType is not smart enough to encode that Boxing returns either Smi or Mint, which is enough to guarantee that truncating UnboxInt32 won't deoptimize.

R=fschneider@google.com, fscheider@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@42319 260f80e4-7a28-3924-810f-c04153c831b5
dart2js: fix mixin support in deferred libraries.

This is the continuation of https://codereview.chromium.org/794813002

BUG= http://dartbug.com/21837
R=floitsch@google.com

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

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