blob: 50f5e8f129b4e2134d7b8b3bc58ab92e7b72d524 [file] [log] [blame]
fpizlo@apple.comcef76b22016-07-21 06:23:10 +00001var thing0 = Symbol();
2var thing1 = Symbol();
3var thing2 = Symbol();
4var thing3 = Symbol();
5var thing4 = Symbol();
6var thing5 = Symbol();
7var thing6 = Symbol();
8var thing7 = Symbol();
9var thing8 = Symbol();
10var thing9 = Symbol();
11var thing10 = Symbol();
12var thing11 = Symbol();
13var thing12 = Symbol();
14var thing13 = Symbol();
15var thing14 = Symbol();
16var thing15 = Symbol();
17var thing16 = Symbol();
18var thing17 = Symbol();
19var thing18 = Symbol();
20var thing19 = Symbol();
21var thing20 = Symbol();
22var thing21 = Symbol();
23var thing22 = Symbol();
24var thing23 = Symbol();
25var thing24 = Symbol();
26var thing25 = Symbol();
27var thing26 = Symbol();
28var thing27 = Symbol();
29var thing28 = Symbol();
30var thing29 = Symbol();
31var thing30 = Symbol();
32var thing31 = Symbol();
33var thing32 = Symbol();
34var thing33 = Symbol();
35var thing34 = Symbol();
36var thing35 = Symbol();
37var thing36 = Symbol();
38var thing37 = Symbol();
39var thing38 = Symbol();
40var thing39 = Symbol();
41var thing40 = Symbol();
42var thing41 = Symbol();
43var thing42 = Symbol();
44var thing43 = Symbol();
45var thing44 = Symbol();
46var thing45 = Symbol();
47var thing46 = Symbol();
48var thing47 = Symbol();
49var thing48 = Symbol();
50var thing49 = Symbol();
51var thing50 = Symbol();
52var thing51 = Symbol();
53var thing52 = Symbol();
54var thing53 = Symbol();
55var thing54 = Symbol();
56var thing55 = Symbol();
57var thing56 = Symbol();
58var thing57 = Symbol();
59var thing58 = Symbol();
60var thing59 = Symbol();
61var thing60 = Symbol();
62var thing61 = Symbol();
63var thing62 = Symbol();
64
65var things = [];
66for (var i = 0; i < 63; ++i)
67 things.push(eval("thing" + i));
68
69function foo(o) {
70 var result = 0;
71 for (var i = 0; i < 1000; ++i) {
72 var value = things[i & 63];
73 switch (value) {
74 case thing0:
75 result += o.a;
76 break;
77 case thing1:
78 result += o.b;
79 break;
80 case thing2:
81 result += o.c;
82 break;
83 case thing3:
84 result += o.d;
85 break;
86 case thing4:
87 result += o.e;
88 break;
89 case thing5:
90 result += o.f;
91 break;
92 case thing6:
93 result += o.g;
94 break;
95 case thing7:
96 result += o.h;
97 break;
98 case thing8:
99 result += o.i;
100 break;
101 case thing9:
102 result += o.j;
103 break;
104 case thing10:
105 result += o.k;
106 break;
107 case thing11:
108 result += o.a;
109 break;
110 case thing12:
111 result += o.b;
112 break;
113 case thing13:
114 result += o.c;
115 break;
116 case thing14:
117 result += o.d;
118 break;
119 case thing15:
120 result += o.e;
121 break;
122 case thing16:
123 result += o.f;
124 break;
125 case thing17:
126 result += o.g;
127 break;
128 case thing18:
129 result += o.h;
130 break;
131 case thing19:
132 result += o.i;
133 break;
134 case thing20:
135 result += o.j;
136 break;
137 case thing21:
138 result += o.k;
139 break;
140 case thing22:
141 result += o.k;
142 break;
143 case thing23:
144 result += o.a;
145 break;
146 case thing24:
147 result += o.b;
148 break;
149 case thing25:
150 result += o.c;
151 break;
152 case thing26:
153 result += o.d;
154 break;
155 case thing27:
156 result += o.e;
157 break;
158 case thing28:
159 result += o.f;
160 break;
161 case thing29:
162 result += o.g;
163 break;
164 case thing30:
165 result += o.h;
166 break;
167 case thing31:
168 result += o.i;
169 break;
170 case thing32:
171 result += o.j;
172 break;
173 case thing33:
174 result += o.k;
175 break;
176 case thing34:
177 result += o.k;
178 break;
179 case thing35:
180 result += o.k;
181 break;
182 case thing36:
183 result += o.a;
184 break;
185 case thing37:
186 result += o.b;
187 break;
188 case thing38:
189 result += o.c;
190 break;
191 case thing39:
192 result += o.d;
193 break;
194 case thing40:
195 result += o.e;
196 break;
197 case thing41:
198 result += o.f;
199 break;
200 case thing42:
201 result += o.g;
202 break;
203 case thing43:
204 result += o.h;
205 break;
206 case thing44:
207 result += o.i;
208 break;
209 case thing45:
210 result += o.j;
211 break;
212 case thing46:
213 result += o.k;
214 break;
215 case thing47:
216 result += o.i;
217 break;
218 case thing48:
219 result += o.j;
220 break;
221 case thing49:
222 result += o.k;
223 break;
224 case thing50:
225 result += o.k;
226 break;
227 case thing51:
228 result += o.k;
229 break;
230 case thing52:
231 result += o.a;
232 break;
233 case thing53:
234 result += o.b;
235 break;
236 case thing54:
237 result += o.c;
238 break;
239 case thing55:
240 result += o.d;
241 break;
242 case thing56:
243 result += o.e;
244 break;
245 case thing57:
246 result += o.f;
247 break;
248 case thing58:
249 result += o.g;
250 break;
251 case thing59:
252 result += o.h;
253 break;
254 case thing60:
255 result += o.i;
256 break;
257 case thing61:
258 result += o.j;
259 break;
260 case thing62:
261 result += o.k;
262 break;
263 default:
264 result += o.z;
265 break;
266 }
267 }
268 return result;
269}
270
271(function() {
272 var o = {a:1, b:2, c:3, d:4, e:5, f:6, g:7, h:8, i:9, j:10, k:11, z:100};
273 var result = 0;
274 for (var i = 0; i < 1000; ++i)
275 result += foo(o);
276 if (result != 7966000)
277 throw "Error: bad result: " + result;
278})();
279