| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 // Tests that lhs of a compound assignement is executed only once. | 4 // Tests that lhs of a compound assignement is executed only once. |
| 5 // VMOptions=--optimization-counter-threshold=10 |
| 5 | 6 |
| 6 import "package:expect/expect.dart"; | 7 import "package:expect/expect.dart"; |
| 7 | 8 |
| 8 | |
| 9 class Indexed { | 9 class Indexed { |
| 10 Indexed() : _f = new List(10), count = 0 { | 10 Indexed() : _f = new List(10), count = 0 { |
| 11 _f[0] = 100; | 11 _f[0] = 100; |
| 12 _f[1] = 200; | 12 _f[1] = 200; |
| 13 } | 13 } |
| 14 operator [](i) { | 14 operator [](i) { |
| 15 count++; | 15 count++; |
| 16 return _f; | 16 return _f; |
| 17 } | 17 } |
| 18 var count; | 18 var count; |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 | 70 |
| 71 sequence(obj().field += 1, middle(), obj().field += 1); | 71 sequence(obj().field += 1, middle(), obj().field += 1); |
| 72 Expect.listEquals([0, 1, 2, 0, 1, 3], result); | 72 Expect.listEquals([0, 1, 2, 0, 1, 3], result); |
| 73 | 73 |
| 74 result = []; | 74 result = []; |
| 75 sequence(A.static_field++, middle(), A.static_field++); | 75 sequence(A.static_field++, middle(), A.static_field++); |
| 76 Expect.listEquals([0, 1, 2, 0, 1, 3], result); | 76 Expect.listEquals([0, 1, 2, 0, 1, 3], result); |
| 77 } | 77 } |
| 78 | 78 |
| 79 static void testMain() { | 79 static void testMain() { |
| 80 for (int i = 0; i < 1000; i++) { | 80 for (int i = 0; i < 20; i++) { |
| 81 testIndexed(); | 81 testIndexed(); |
| 82 testIndexedMore(); | 82 testIndexedMore(); |
| 83 testIndexedMoreMore(); | 83 testIndexedMoreMore(); |
| 84 } | 84 } |
| 85 } | 85 } |
| 86 } | 86 } |
| 87 | 87 |
| 88 main() { | 88 main() { |
| 89 CompoundAssignmentOperatorTest.testMain(); | 89 CompoundAssignmentOperatorTest.testMain(); |
| 90 } | 90 } |
| OLD | NEW |