| 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 "compiler_helper.dart"; | 6 import 'package:async_helper/async_helper.dart'; |
| 7 import 'compiler_helper.dart'; |
| 7 | 8 |
| 8 const String TEST = """ | 9 const String TEST = """ |
| 9 foo() { | 10 foo() { |
| 10 var a = {}; | 11 var a = {}; |
| 11 var index = foo(); // Make sure we want to optimize this method. | 12 var index = foo(); // Make sure we want to optimize this method. |
| 12 while (true) a[index] = 1; | 13 while (true) a[index] = 1; |
| 13 } | 14 } |
| 14 """; | 15 """; |
| 15 | 16 |
| 16 main() { | 17 main() { |
| 17 String generated = compile(TEST, entry: 'foo'); | 18 asyncTest(() => compile(TEST, entry: 'foo', check: (String generated) { |
| 18 // Make sure we have all the type information we need. | 19 // Make sure we have all the type information we need. |
| 19 Expect.isFalse(generated.contains('bailout')); | 20 Expect.isFalse(generated.contains('bailout')); |
| 20 Expect.isFalse(generated.contains('interceptor')); | 21 Expect.isFalse(generated.contains('interceptor')); |
| 21 // Make sure we don't go through an interceptor. | 22 // Make sure we don't go through an interceptor. |
| 22 Expect.isTrue( | 23 Expect.isTrue( |
| 23 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')); |
| 26 })); |
| 25 } | 27 } |
| OLD | NEW |