1ee0894631
Mostly a revert of https://dart-review.googlesource.com/c/sdk/+/361261. A straight revert contained merge conflicts that I resolved manually but I left some of the cleanup or refactoring in place. Change-Id: I2add9f4951d7c6c2399d8c95f36b1483279eea44 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/409401 Commit-Queue: Nicholas Shahan <nshahan@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jake Macdonald <jakemac@google.com>