OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 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 | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import 'package:expect/expect.dart'; | 5 import 'package:expect/expect.dart'; |
6 import 'package:async_helper/async_helper.dart'; | 6 import 'package:async_helper/async_helper.dart'; |
7 import 'compiler_helper.dart'; | 7 import 'compiler_helper.dart'; |
8 | 8 |
9 const String TEST = """ | 9 const String TEST = """ |
10 foo() { | 10 foo() { |
11 var a = {}; | 11 var a = {}; |
12 var index = foo(); // Make sure we want to optimize this method. | 12 var index = foo(); // Make sure we want to optimize this method. |
13 while (true) a[index] = 1; | 13 while (true) a[index] = 1; |
14 } | 14 } |
15 """; | 15 """; |
16 | 16 |
17 main() { | 17 main() { |
18 asyncTest(() => compile(TEST, entry: 'foo', check: (String generated) { | 18 asyncTest(() => compile(TEST, entry: 'foo', check: (String generated) { |
19 // Make sure we have all the type information we need. | 19 // Make sure we have all the type information we need. |
20 Expect.isFalse(generated.contains('bailout')); | 20 Expect.isFalse(generated.contains('bailout')); |
21 Expect.isFalse(generated.contains('interceptor')); | 21 Expect.isFalse(generated.contains('interceptor')); |
22 // Make sure we don't go through an interceptor. | 22 // Make sure we don't go through an interceptor. |
23 Expect.isTrue( | 23 Expect.isTrue(generated.contains(r'a.$indexSet(a') || |
24 generated.contains(r'a.$indexSet(a') || | 24 generated.contains(r'.$indexSet(0')); |
25 generated.contains(r'.$indexSet(0')); | 25 })); |
26 })); | |
27 } | 26 } |
OLD | NEW |