blob: 7b553382e7f832593c87513d1210e6d8f5a4d41a [file] [log] [blame]
// Copyright (c) 2025, 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.
//
// Verify that ResumeFrame runtime call entry doesn't crash without isolates.
//
// VMOptions=--experimental-shared-data
//
import 'package:dart_internal/isolate_group.dart' show IsolateGroup;
import 'package:expect/expect.dart';
Iterable<int> foo() sync* {
yield 1;
throw 42;
}
Iterable<int> bar() sync* {
yield* foo();
}
@pragma("vm:shared")
int caught = 0;
main() async {
IsolateGroup.runSync(() {
final iterator = bar().iterator;
iterator.moveNext();
try {
iterator.moveNext();
} on int catch (e) {
caught = e;
}
});
Expect.equals(42, caught);
}