Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: tests/language/optimized_setter_test.dart

Issue 2771453003: Format all tests. (Closed)
Patch Set: Format files Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 // Test various setter situations, testing special cases in optimizing compiler. 4 // Test various setter situations, testing special cases in optimizing compiler.
5 // VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-co mpilation 5 // VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-co mpilation
6 6
7 import "package:expect/expect.dart"; 7 import "package:expect/expect.dart";
8 8
9 class A { 9 class A {
10 int field = 0; 10 int field = 0;
11 } 11 }
12 12
13 class B extends A { 13 class B extends A {}
14 }
15
16 14
17 void sameImplicitSetter() { 15 void sameImplicitSetter() {
18 oneTarget(var a, var v) { 16 oneTarget(var a, var v) {
19 a.field = v; 17 a.field = v;
20 } 18 }
21 19
22 A a = new A(); 20 A a = new A();
23 B b = new B(); 21 B b = new B();
24 // Optimize 'oneTarget' for one class, one target. 22 // Optimize 'oneTarget' for one class, one target.
25 for (int i = 0; i < 20; i++) { 23 for (int i = 0; i < 20; i++) {
26 oneTarget(a, 5); 24 oneTarget(a, 5);
27 Expect.equals(5, a.field); 25 Expect.equals(5, a.field);
28 } 26 }
29 // Deoptimize 'oneTarget', since class B is not expected. 27 // Deoptimize 'oneTarget', since class B is not expected.
30 oneTarget(b, 6); 28 oneTarget(b, 6);
31 Expect.equals(6, b.field); 29 Expect.equals(6, b.field);
32 // Optimize 'oneTarget' for A and B classes, one target. 30 // Optimize 'oneTarget' for A and B classes, one target.
33 for (int i = 0; i < 20; i++) { 31 for (int i = 0; i < 20; i++) {
34 oneTarget(a, 7); 32 oneTarget(a, 7);
35 Expect.equals(7, a.field); 33 Expect.equals(7, a.field);
36 } 34 }
37 oneTarget(b, 8); 35 oneTarget(b, 8);
38 Expect.equals(8, b.field); 36 Expect.equals(8, b.field);
39 } 37 }
40 38
41
42 // Deoptimize when no feedback exists. 39 // Deoptimize when no feedback exists.
43 void setterNoFeedback() { 40 void setterNoFeedback() {
44 maybeSet(var a, var v, bool set_it) { 41 maybeSet(var a, var v, bool set_it) {
45 if (set_it) { 42 if (set_it) {
46 return a.field = v; 43 return a.field = v;
47 } 44 }
48 return -1; 45 return -1;
49 } 46 }
50 47
51 A a = new A(); 48 A a = new A();
52 for (int i = 0; i < 20; i++) { 49 for (int i = 0; i < 20; i++) {
53 var r = maybeSet(a, 5, false); 50 var r = maybeSet(a, 5, false);
54 Expect.equals(0, a.field); 51 Expect.equals(0, a.field);
55 Expect.equals(-1, r); 52 Expect.equals(-1, r);
56 } 53 }
57 var r = maybeSet(a, 5, true); 54 var r = maybeSet(a, 5, true);
58 Expect.equals(5, a.field); 55 Expect.equals(5, a.field);
59 Expect.equals(5, r); 56 Expect.equals(5, r);
60 for (int i = 0; i < 20; i++) { 57 for (int i = 0; i < 20; i++) {
61 var r = maybeSet(a, 6, true); 58 var r = maybeSet(a, 6, true);
62 Expect.equals(6, a.field); 59 Expect.equals(6, a.field);
63 Expect.equals(6, r); 60 Expect.equals(6, r);
64 } 61 }
65 } 62 }
66 63
67 // Check non-implicit setter 64 // Check non-implicit setter
68 class X { 65 class X {
69 int pField = 0; 66 int pField = 0;
70 set field(v) { pField = v; } 67 set field(v) {
68 pField = v;
69 }
70
71 get field => 10; 71 get field => 10;
72 } 72 }
73 73
74 void sameNotImplicitSetter() { 74 void sameNotImplicitSetter() {
75 oneTarget(var a, var v) { 75 oneTarget(var a, var v) {
76 return a.field = v; 76 return a.field = v;
77 } 77 }
78 78
79 incField(var a) { 79 incField(var a) {
80 a.field++; 80 a.field++;
81 } 81 }
82 82
83 X x = new X(); 83 X x = new X();
84 for (int i = 0; i < 20; i++) { 84 for (int i = 0; i < 20; i++) {
85 var r = oneTarget(x, 3); 85 var r = oneTarget(x, 3);
86 Expect.equals(3, x.pField); 86 Expect.equals(3, x.pField);
87 Expect.equals(3, r); 87 Expect.equals(3, r);
88 } 88 }
89 oneTarget(x, 0); 89 oneTarget(x, 0);
90 for (int i = 0; i < 20; i++) { 90 for (int i = 0; i < 20; i++) {
91 incField(x); 91 incField(x);
92 } 92 }
93 Expect.equals(11, x.pField); 93 Expect.equals(11, x.pField);
94 } 94 }
95 95
96 class Y { 96 class Y {
97 int field = 0; 97 int field = 0;
98 } 98 }
99 99
100
101 multiImplicitSetter() { 100 multiImplicitSetter() {
102 oneTarget(var a, var v) { 101 oneTarget(var a, var v) {
103 return a.field = v; 102 return a.field = v;
104 } 103 }
105 104
106 // Both classes 'Y' and 'A' have a distinct field getter. 105 // Both classes 'Y' and 'A' have a distinct field getter.
107 A a = new A(); 106 A a = new A();
108 Y y = new Y(); 107 Y y = new Y();
109 for (int i = 0; i < 20; i++) { 108 for (int i = 0; i < 20; i++) {
110 var r = oneTarget(a, 5); 109 var r = oneTarget(a, 5);
111 Expect.equals(5, a.field); 110 Expect.equals(5, a.field);
112 Expect.equals(5, r); 111 Expect.equals(5, r);
113 r = oneTarget(y, 6); 112 r = oneTarget(y, 6);
114 Expect.equals(6, y.field); 113 Expect.equals(6, y.field);
115 Expect.equals(6, r); 114 Expect.equals(6, r);
116 } 115 }
117 } 116 }
118 117
119 class Z { 118 class Z {
120 int pField = 0; 119 int pField = 0;
121 set field(v) { pField = v; } 120 set field(v) {
121 pField = v;
122 }
123
122 get field => 10; 124 get field => 10;
123 } 125 }
124 126
125 multiNotImplicitSetter() { 127 multiNotImplicitSetter() {
126 oneTarget(var a, var v) { 128 oneTarget(var a, var v) {
127 return a.field = v; 129 return a.field = v;
128 } 130 }
129 131
130 Y y = new Y(); 132 Y y = new Y();
131 Z z = new Z(); 133 Z z = new Z();
(...skipping 12 matching lines...) Expand all
144 } 146 }
145 147
146 void main() { 148 void main() {
147 sameImplicitSetter(); 149 sameImplicitSetter();
148 setterNoFeedback(); 150 setterNoFeedback();
149 sameNotImplicitSetter(); 151 sameNotImplicitSetter();
150 152
151 multiImplicitSetter(); 153 multiImplicitSetter();
152 multiNotImplicitSetter(); 154 multiNotImplicitSetter();
153 } 155 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698