| // Copyright (c) 2013, 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. | |
| // @dart = 2.9 | |
| // Test that a loop invariant code motion optimization does not try to | |
| // hoist instructions that may throw. | |
| import "package:expect/expect.dart"; | |
| var a = 42; | |
| var b; | |
| main() { | |
| Expect.throws(() { | |
| while (true) { | |
| a = 54; | |
| b.length; | |
| } | |
| }); | |
| b = []; | |
| Expect.equals(54, a); | |
| } |