main() async { do { continue; } while (await (throw "Error")); print("Expected throw"); } The VM prints: Expected throw While it should throw "Error".