f5a0e185d2
Another pass at https://dart-review.googlesource.com/c/sdk/+/159841 (reverted) with a guarding type-check. Change-Id: Ia270be4e880d71642a96c5ab93a306efba1ceedb Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/160961 Commit-Queue: Phil Quitslund <pquitslund@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>