VM: Don't rely on always running constant propagation in the optimizer
VM: Don't rely on always running constant propagation in the optimizer

When inlining functions that unconditionally throw (have zero normal returns),
the optimizer inserts a branch with a true condition and relies on
 constant propagation to remove the rest of the caller which becomes unreachable
 after inlining.

 This allows to compilesuch functions without running constant propagation by
 replacing uses of the return value with null.

BUG=
R=rmacnak@google.com

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

dart-archive/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dartino/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dartino/dart-sdk,dart-lang/sdk,dart-lang/sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk