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