Implement strict and non-strict union types behind flag [strictUnionTypes].

This only covers existing union types code. In particular, there is
still no support for fields on union types (treated as dynamic
currently, so no hints ever).

It remains to implement strict and non-strict versions of the
completion UI. That's in progress and will go up in another CL because
this CL was getting too big.

R=brianwilkerson@google.com, jwren@google.com
BUG=

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

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40680 260f80e4-7a28-3924-810f-c04153c831b5
Keep list of uses sorted when building it.

We were violating sorting at instructions that use the same value as both fixed register input and an unallocated one producing a list that contained use at P, followed by a use at P-1.

This would later cause a problem when we split live-range at P-1 and spill [..., P-1) prefix.

Use at P-1 would be attributed to unspilled part of the range leading to completely incorrect parallel move at P-1: [rx <- S+X, ry <- rx], where rx - is the aforementioned fixed register and ry is a register selected for an unallocated use of the value.

R=srdjan@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40681 260f80e4-7a28-3924-810f-c04153c831b5
Issue 14476. Use DartSDK to open files for debugger URIs like dart:async/future.dart in Editor.

R=devoncarew@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=14476

https://code.google.com/p/dart/issues/detail?id=17206

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40683 260f80e4-7a28-3924-810f-c04153c831b5
dart2js: Move class_emitter to old_emitter directory.

R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40685 260f80e4-7a28-3924-810f-c04153c831b5
Frees up LR on arm for use by the register allocator.

This failed in my last attempt because LR was clobbered on
deopt. Now, LR is always cached in IP before the call to
the deopt stub, and restored on entry to the stub.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40686 260f80e4-7a28-3924-810f-c04153c831b5
Report infinite loops only once

R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40687 260f80e4-7a28-3924-810f-c04153c831b5
Don't solo test. :(

R=nweiz@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40688 260f80e4-7a28-3924-810f-c04153c831b5
Refactor ElementResolver's handling of doesntHaveProxy().

All references to doesntHaveProxy() now occur from within
recordUndefinedNode(), recordUndefinedOffset(), and
recordUndefinedToken().  This should pave the way for future CL's to
defer determination of whether an element is a proxy until after
constant evaluation time, when we can make the determination
unambiguously.

BUG=dartbug.com/15467
R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40689 260f80e4-7a28-3924-810f-c04153c831b5
Issue 21078. Fix for breakpoints in files with spaces in path.

R=devoncarew@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=21078

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40690 260f80e4-7a28-3924-810f-c04153c831b5
Issue 21091. Fix for using resolved unit for files from packages on Windows.

R=brianwilkerson@google.com, danrubel@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=21091

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40692 260f80e4-7a28-3924-810f-c04153c831b5
Fix for issue 14497

R=scheglov@google.com

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

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

BUG=dartbug.com/20666
R=paulberry@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40694 260f80e4-7a28-3924-810f-c04153c831b5
Properly report assets from static packages as not found.

R=rnystrom@google.com
BUG=21087

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40695 260f80e4-7a28-3924-810f-c04153c831b5
Avoids vmovsr on ARM.

R=johnmccutchan@google.com, regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40696 260f80e4-7a28-3924-810f-c04153c831b5
Address MSVS 2013 warning C4146: unary minus operator applied to unsigned type, result still unsigned

R=koda@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40697 260f80e4-7a28-3924-810f-c04153c831b5
Implement strict and non-strict union types in completion UI.

I've included @scheglov as a reviewer because I believe he is most familiar
with the completion code.  The semantics of strict and non-strict union types
are probably of interest to @jwren and @brianwilkerson however.

This CL comprises a significant refactoring of the completion code
related to computing the "names" defined on a type.  The trouble is
that for the strict union-type semantics we want a name to only be
defined on the union type if it's defined on all member types in the
union. However, the code had been structured such that it mixed the
computation of possible names with adding possible names to the list
of all completions.  For the strict semantics we need to know all the
names first and then take their intersection.  So, most of the changes
-- besides the union-type name logic itself -- is related to making
the computation of possible completions separate from adding them to
the list of completions.

R=brianwilkerson@google.com, scheglov@google.com, jwren@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40698 260f80e4-7a28-3924-810f-c04153c831b5
Make AllocateArray stub patchable, like instance allocation stubs.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40699 260f80e4-7a28-3924-810f-c04153c831b5
- Remove Isolate::CurrentAddress().
- Remove use of INFINITY and -INFINITY.

R=rmacnak@google.com, srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@40700 260f80e4-7a28-3924-810f-c04153c831b5
Widen the stack_trace SDK constraint.

R=rnystrom@google.com

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

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