| 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 |