mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 14:32:24 +00:00
fef73d59ad
Restore the try context in the finally clause of the implicit try-finally around await-for loops. This ensures that the context is restored even when breaking out of the loop. BUG=24935 R=fschneider@google.com, regis@google.com Review URL: https://codereview.chromium.org/1661433003 .
24 lines
682 B
Dart
24 lines
682 B
Dart
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
import 'dart:async';
|
|
|
|
S() => new Stream.fromIterable([1]);
|
|
|
|
Future main() async {
|
|
L: for (var s = 0; s < 10; s++) {
|
|
await for (var s1 in S()){
|
|
await for (var s2 in S()){
|
|
continue L;
|
|
}
|
|
}
|
|
}
|
|
// Regression check: make sure throwing an exception
|
|
// after breaking out of the innermost loop does not
|
|
// crash the VM. In other words, the expected test
|
|
// outcome is an unhandled exception.
|
|
throw "ball"; /// 01: runtime error
|
|
}
|
|
|
|
|