OLD | NEW |
| (Empty) |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 import "package:expect/expect.dart"; | |
6 | |
7 // Test for dart2js to make sure the computed bailout environment is | |
8 // correct. | |
9 | |
10 var global; | |
11 | |
12 class A { | |
13 var array; | |
14 | |
15 foo() { | |
16 do { | |
17 var element = global; | |
18 if (element is Map) continue; | |
19 if (element is num) break; | |
20 } while (true); | |
21 return array[0]; // bailout here. | |
22 } | |
23 } | |
24 | |
25 void main() { | |
26 var a = new A(); | |
27 a.array = [42]; | |
28 global = 42; | |
29 | |
30 for (int i = 0; i < 2; i++) { | |
31 Expect.equals(42, a.foo()); | |
32 } | |
33 | |
34 a.array = new Map(); | |
35 a.array[0] = 42; | |
36 for (int i = 0; i < 2; i++) { | |
37 Expect.equals(42, a.foo()); | |
38 } | |
39 global = null; | |
40 } | |
OLD | NEW |