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

Side by Side Diff: test/mjsunit/compiler/inline-exception-2.js

Issue 2285743002: [turbofan] Improve inline-exception tests. (Closed)
Patch Set: Created 4 years, 3 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 // Shard 2. 1 // Shard 2.
2 2
3 // Copyright 2016 the V8 project authors. All rights reserved. 3 // Copyright 2016 the V8 project authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style license that can be 4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE file. 5 // found in the LICENSE file.
6 6
7 // Flags: --allow-natives-syntax --turbo --no-always-opt 7 // Flags: --allow-natives-syntax --turbo --no-always-opt
8 8
9 // This test file was generated by tools/gen-inlining-tests.py . 9 // This test file was generated by tools/gen-inlining-tests.py .
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 counter++; 59 counter++;
60 return 15; 60 return 15;
61 } 61 }
62 62
63 function increaseAndThrow42() { 63 function increaseAndThrow42() {
64 if (deopt) %DeoptimizeFunction(f); 64 if (deopt) %DeoptimizeFunction(f);
65 counter++; 65 counter++;
66 throw 42; 66 throw 42;
67 } 67 }
68 68
69 function increaseAndReturn15_noopt_inner() {
70 if (deopt) %DeoptimizeFunction(f);
71 counter++;
72 return 15;
73 }
74
75 %NeverOptimizeFunction(increaseAndReturn15_noopt_inner);
76
77 function increaseAndThrow42_noopt_inner() {
78 if (deopt) %DeoptimizeFunction(f);
79 counter++;
80 throw 42;
81 }
82
83 %NeverOptimizeFunction(increaseAndThrow42_noopt_inner);
84
85 // Alternative 1
86
69 function returnOrThrow(doReturn) { 87 function returnOrThrow(doReturn) {
70 if (doReturn) { 88 if (doReturn) {
71 return increaseAndReturn15(); 89 return increaseAndReturn15();
72 } else { 90 } else {
73 return increaseAndThrow42(); 91 return increaseAndThrow42();
74 } 92 }
75 } 93 }
76 94
95 // Alternative 2
96
97 function increaseAndReturn15_noopt_outer() {
98 return increaseAndReturn15_noopt_inner();
99 }
100
101 function increaseAndThrow42_noopt_outer() {
102 return increaseAndThrow42_noopt_inner();
103 }
104
105 // Alternative 3.
77 // When passed either {increaseAndReturn15} or {increaseAndThrow42}, it acts 106 // When passed either {increaseAndReturn15} or {increaseAndThrow42}, it acts
78 // as the other one. 107 // as the other one.
79 function invertFunctionCall(f) { 108 function invertFunctionCall(f) {
80 var result; 109 var result;
81 try { 110 try {
82 result = f(); 111 result = f();
83 } catch (ex) { 112 } catch (ex) {
84 return ex - 27; 113 return ex - 27;
85 } 114 }
86 throw result + 27; 115 throw result + 27;
87 } 116 }
88 117
118 // Alternative 4: constructor
89 function increaseAndStore15Constructor() { 119 function increaseAndStore15Constructor() {
90 if (deopt) %DeoptimizeFunction(f); 120 if (deopt) %DeoptimizeFunction(f);
91 ++counter; 121 ++counter;
92 this.x = 15; 122 this.x = 15;
93 } 123 }
94 124
95 function increaseAndThrow42Constructor() { 125 function increaseAndThrow42Constructor() {
96 if (deopt) %DeoptimizeFunction(f); 126 if (deopt) %DeoptimizeFunction(f);
97 ++counter; 127 ++counter;
98 this.x = 42; 128 this.x = 42;
99 throw this.x; 129 throw this.x;
100 } 130 }
101 131
132 // Alternative 5: property
102 var magic = {}; 133 var magic = {};
103 Object.defineProperty(magic, 'prop', { 134 Object.defineProperty(magic, 'prop', {
104 get: function () { 135 get: function () {
105 if (deopt) %DeoptimizeFunction(f); 136 if (deopt) %DeoptimizeFunction(f);
106 return 15 + 0 * ++counter; 137 return 15 + 0 * ++counter;
107 }, 138 },
108 139
109 set: function(x) { 140 set: function(x) {
110 // argument should be 37 141 // argument should be 37
111 if (deopt) %DeoptimizeFunction(f); 142 if (deopt) %DeoptimizeFunction(f);
112 counter -= 36 - x; // increments counter 143 counter -= 36 - x; // increments counter
113 throw 42; 144 throw 42;
114 } 145 }
115 }) 146 })
116 147
117 // Generate type feedback. 148 // Generate type feedback.
118 149
150 assertEquals(15, increaseAndReturn15_noopt_outer());
119 assertEquals(15, (new increaseAndStore15Constructor()).x); 151 assertEquals(15, (new increaseAndStore15Constructor()).x);
120 assertThrowsEquals(function() { 152 assertThrowsEquals(function() {
121 return (new increaseAndThrow42Constructor()).x; 153 return (new increaseAndThrow42Constructor()).x;
122 }, 154 },
123 42); 155 42);
124 156
125 function runThisShard() { 157 function runThisShard() {
126 158
127 // Variant flags: [alternativeFn2, tryReturns, doCatch, 159 // Variant flags: [alternativeFn3, tryReturns, doCatch,
128 // catchReturns, catchWithLocal, endReturnLocal] 160 // catchReturns, deopt]
129 161
130 f = function f___2__r__crl____l_ () { 162 f = function f___3___r__cr______d () {
131 var local = 3; 163 var local = 888;
164 deopt = true;
165 try {
166 counter++;
167 return 4 + invertFunctionCall(increaseAndThrow42);
168 counter++;
169 } catch (ex) {
170 counter++;
171 return 2 + ex;
172 counter++;
173 }
174 counter++;
175 }
176 resetOptAndAssertResultEquals(19, f);
177 assertEquals(2, counter);
178
179 // Variant flags: [alternativeFn3, tryReturns, doCatch,
180 // catchReturns, catchWithLocal]
181
182 f = function f___3___r__crl______ () {
183 var local = 888;
132 deopt = false; 184 deopt = false;
133 try { 185 try {
134 counter++; 186 counter++;
135 return invertFunctionCall(increaseAndThrow42); 187 return 4 + invertFunctionCall(increaseAndThrow42);
136 counter++; 188 counter++;
137 } catch (ex) { 189 } catch (ex) {
138 counter++; 190 counter++;
191 return 2 + local;
192 counter++;
193 }
194 counter++;
195 }
196 resetOptAndAssertResultEquals(19, f);
197 assertEquals(2, counter);
198
199 // Variant flags: [alternativeFn3, tryReturns, doCatch,
200 // catchReturns, catchWithLocal, deopt]
201
202 f = function f___3___r__crl_____d () {
203 var local = 888;
204 deopt = true;
205 try {
206 counter++;
207 return 4 + invertFunctionCall(increaseAndThrow42);
208 counter++;
209 } catch (ex) {
210 counter++;
211 return 2 + local;
212 counter++;
213 }
214 counter++;
215 }
216 resetOptAndAssertResultEquals(19, f);
217 assertEquals(2, counter);
218
219 // Variant flags: [alternativeFn3, tryReturns, doCatch,
220 // catchReturns, catchWithLocal, endReturnLocal]
221
222 f = function f___3___r__crl____l_ () {
223 var local = 888;
224 deopt = false;
225 try {
226 counter++;
227 return 4 + invertFunctionCall(increaseAndThrow42);
228 counter++;
229 } catch (ex) {
230 counter++;
139 return 2 + local; 231 return 2 + local;
140 counter++; 232 counter++;
141 } 233 }
142 counter++; 234 counter++;
143 return 5 + local; 235 return 5 + local;
144 } 236 }
145 resetOptAndAssertResultEquals(15, f); 237 resetOptAndAssertResultEquals(19, f);
146 assertEquals(2, counter); 238 assertEquals(2, counter);
147 239
148 // Variant flags: [alternativeFn2, tryReturns, doCatch, 240 // Variant flags: [alternativeFn3, tryReturns, doCatch,
149 // catchReturns, catchWithLocal, endReturnLocal, deopt] 241 // catchReturns, catchWithLocal, endReturnLocal, deopt]
150 242
151 f = function f___2__r__crl____ld () { 243 f = function f___3___r__crl____ld () {
152 var local = 3; 244 var local = 888;
153 deopt = true; 245 deopt = true;
154 try { 246 try {
155 counter++; 247 counter++;
156 return invertFunctionCall(increaseAndThrow42); 248 return 4 + invertFunctionCall(increaseAndThrow42);
157 counter++; 249 counter++;
158 } catch (ex) { 250 } catch (ex) {
159 counter++; 251 counter++;
160 return 2 + local; 252 return 2 + local;
161 counter++; 253 counter++;
162 } 254 }
163 counter++; 255 counter++;
164 return 5 + local; 256 return 5 + local;
165 } 257 }
166 resetOptAndAssertResultEquals(15, f); 258 resetOptAndAssertResultEquals(19, f);
167 assertEquals(2, counter); 259 assertEquals(2, counter);
168 260
169 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 261 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
170 // doCatch] 262 // doCatch]
171 263
172 f = function f___2__r_lc________ () { 264 f = function f___3___r_lc________ () {
173 var local = 3; 265 var local = 888;
174 deopt = false; 266 deopt = false;
175 try { 267 try {
176 counter++; 268 counter++;
177 local += invertFunctionCall(increaseAndThrow42); 269 local += 4 + invertFunctionCall(increaseAndThrow42);
178 counter++; 270 counter++;
179 } catch (ex) { 271 } catch (ex) {
180 counter++; 272 counter++;
181 counter++; 273 counter++;
182 } 274 }
183 counter++; 275 counter++;
184 } 276 }
185 resetOptAndAssertResultEquals(undefined, f); 277 resetOptAndAssertResultEquals(undefined, f);
186 assertEquals(4, counter); 278 assertEquals(4, counter);
187 279
188 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 280 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
189 // doCatch, deopt] 281 // doCatch, deopt]
190 282
191 f = function f___2__r_lc_______d () { 283 f = function f___3___r_lc_______d () {
192 var local = 3; 284 var local = 888;
193 deopt = true; 285 deopt = true;
194 try { 286 try {
195 counter++; 287 counter++;
196 local += invertFunctionCall(increaseAndThrow42); 288 local += 4 + invertFunctionCall(increaseAndThrow42);
197 counter++; 289 counter++;
198 } catch (ex) { 290 } catch (ex) {
199 counter++; 291 counter++;
200 counter++; 292 counter++;
201 } 293 }
202 counter++; 294 counter++;
203 } 295 }
204 resetOptAndAssertResultEquals(undefined, f); 296 resetOptAndAssertResultEquals(undefined, f);
205 assertEquals(4, counter); 297 assertEquals(4, counter);
206 298
207 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 299 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
208 // doCatch, endReturnLocal] 300 // doCatch, endReturnLocal]
209 301
210 f = function f___2__r_lc______l_ () { 302 f = function f___3___r_lc______l_ () {
211 var local = 3; 303 var local = 888;
212 deopt = false; 304 deopt = false;
213 try { 305 try {
214 counter++; 306 counter++;
215 local += invertFunctionCall(increaseAndThrow42); 307 local += 4 + invertFunctionCall(increaseAndThrow42);
216 counter++; 308 counter++;
217 } catch (ex) { 309 } catch (ex) {
218 counter++; 310 counter++;
219 counter++; 311 counter++;
220 } 312 }
221 counter++; 313 counter++;
222 return 5 + local; 314 return 5 + local;
223 } 315 }
224 resetOptAndAssertResultEquals(23, f); 316 resetOptAndAssertResultEquals(912, f);
225 assertEquals(4, counter); 317 assertEquals(4, counter);
226 318
227 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 319 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
228 // doCatch, endReturnLocal, deopt] 320 // doCatch, endReturnLocal, deopt]
229 321
230 f = function f___2__r_lc______ld () { 322 f = function f___3___r_lc______ld () {
231 var local = 3; 323 var local = 888;
232 deopt = true; 324 deopt = true;
233 try { 325 try {
234 counter++; 326 counter++;
235 local += invertFunctionCall(increaseAndThrow42); 327 local += 4 + invertFunctionCall(increaseAndThrow42);
236 counter++; 328 counter++;
237 } catch (ex) { 329 } catch (ex) {
238 counter++; 330 counter++;
239 counter++; 331 counter++;
240 } 332 }
241 counter++; 333 counter++;
242 return 5 + local; 334 return 5 + local;
243 } 335 }
244 resetOptAndAssertResultEquals(23, f); 336 resetOptAndAssertResultEquals(912, f);
245 assertEquals(4, counter); 337 assertEquals(4, counter);
246 338
247 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 339 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
248 // doCatch, catchThrows] 340 // doCatch, catchThrows]
249 341
250 f = function f___2__r_lc__t_____ () { 342 f = function f___3___r_lc__t_____ () {
251 var local = 3; 343 var local = 888;
252 deopt = false; 344 deopt = false;
253 try { 345 try {
254 counter++; 346 counter++;
255 local += invertFunctionCall(increaseAndThrow42); 347 local += 4 + invertFunctionCall(increaseAndThrow42);
256 counter++; 348 counter++;
257 } catch (ex) { 349 } catch (ex) {
258 counter++; 350 counter++;
259 throw 2 + ex; 351 throw 2 + ex;
260 counter++; 352 counter++;
261 } 353 }
262 counter++; 354 counter++;
263 } 355 }
264 resetOptAndAssertResultEquals(undefined, f); 356 resetOptAndAssertResultEquals(undefined, f);
265 assertEquals(4, counter); 357 assertEquals(4, counter);
266 358
267 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 359 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
268 // doCatch, catchThrows, deopt] 360 // doCatch, catchThrows, deopt]
269 361
270 f = function f___2__r_lc__t____d () { 362 f = function f___3___r_lc__t____d () {
271 var local = 3; 363 var local = 888;
272 deopt = true; 364 deopt = true;
273 try { 365 try {
274 counter++; 366 counter++;
275 local += invertFunctionCall(increaseAndThrow42); 367 local += 4 + invertFunctionCall(increaseAndThrow42);
276 counter++; 368 counter++;
277 } catch (ex) { 369 } catch (ex) {
278 counter++; 370 counter++;
279 throw 2 + ex; 371 throw 2 + ex;
280 counter++; 372 counter++;
281 } 373 }
282 counter++; 374 counter++;
283 } 375 }
284 resetOptAndAssertResultEquals(undefined, f); 376 resetOptAndAssertResultEquals(undefined, f);
285 assertEquals(4, counter); 377 assertEquals(4, counter);
286 378
287 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 379 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
288 // doCatch, catchThrows, endReturnLocal] 380 // doCatch, catchThrows, endReturnLocal]
289 381
290 f = function f___2__r_lc__t___l_ () { 382 f = function f___3___r_lc__t___l_ () {
291 var local = 3; 383 var local = 888;
292 deopt = false; 384 deopt = false;
293 try { 385 try {
294 counter++; 386 counter++;
295 local += invertFunctionCall(increaseAndThrow42); 387 local += 4 + invertFunctionCall(increaseAndThrow42);
296 counter++; 388 counter++;
297 } catch (ex) { 389 } catch (ex) {
298 counter++; 390 counter++;
299 throw 2 + ex; 391 throw 2 + ex;
300 counter++; 392 counter++;
301 } 393 }
302 counter++; 394 counter++;
303 return 5 + local; 395 return 5 + local;
304 } 396 }
305 resetOptAndAssertResultEquals(23, f); 397 resetOptAndAssertResultEquals(912, f);
306 assertEquals(4, counter); 398 assertEquals(4, counter);
307 399
308 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 400 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
309 // doCatch, catchThrows, endReturnLocal, deopt] 401 // doCatch, catchThrows, endReturnLocal, deopt]
310 402
311 f = function f___2__r_lc__t___ld () { 403 f = function f___3___r_lc__t___ld () {
312 var local = 3; 404 var local = 888;
313 deopt = true; 405 deopt = true;
314 try { 406 try {
315 counter++; 407 counter++;
316 local += invertFunctionCall(increaseAndThrow42); 408 local += 4 + invertFunctionCall(increaseAndThrow42);
317 counter++; 409 counter++;
318 } catch (ex) { 410 } catch (ex) {
319 counter++; 411 counter++;
320 throw 2 + ex; 412 throw 2 + ex;
321 counter++; 413 counter++;
322 } 414 }
323 counter++; 415 counter++;
324 return 5 + local; 416 return 5 + local;
325 } 417 }
326 resetOptAndAssertResultEquals(23, f); 418 resetOptAndAssertResultEquals(912, f);
327 assertEquals(4, counter); 419 assertEquals(4, counter);
328 420
329 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 421 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
330 // doCatch, catchWithLocal] 422 // doCatch, catchWithLocal]
331 423
332 f = function f___2__r_lc_l______ () { 424 f = function f___3___r_lc_l______ () {
333 var local = 3; 425 var local = 888;
334 deopt = false; 426 deopt = false;
335 try { 427 try {
336 counter++; 428 counter++;
337 local += invertFunctionCall(increaseAndThrow42); 429 local += 4 + invertFunctionCall(increaseAndThrow42);
338 counter++; 430 counter++;
339 } catch (ex) { 431 } catch (ex) {
340 counter++; 432 counter++;
341 local += ex; 433 local += ex;
342 counter++; 434 counter++;
343 } 435 }
344 counter++; 436 counter++;
345 } 437 }
346 resetOptAndAssertResultEquals(undefined, f); 438 resetOptAndAssertResultEquals(undefined, f);
347 assertEquals(4, counter); 439 assertEquals(4, counter);
348 440
349 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 441 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
350 // doCatch, catchWithLocal, deopt] 442 // doCatch, catchWithLocal, deopt]
351 443
352 f = function f___2__r_lc_l_____d () { 444 f = function f___3___r_lc_l_____d () {
353 var local = 3; 445 var local = 888;
354 deopt = true; 446 deopt = true;
355 try { 447 try {
356 counter++; 448 counter++;
357 local += invertFunctionCall(increaseAndThrow42); 449 local += 4 + invertFunctionCall(increaseAndThrow42);
358 counter++; 450 counter++;
359 } catch (ex) { 451 } catch (ex) {
360 counter++; 452 counter++;
361 local += ex; 453 local += ex;
362 counter++; 454 counter++;
363 } 455 }
364 counter++; 456 counter++;
365 } 457 }
366 resetOptAndAssertResultEquals(undefined, f); 458 resetOptAndAssertResultEquals(undefined, f);
367 assertEquals(4, counter); 459 assertEquals(4, counter);
368 460
369 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 461 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
370 // doCatch, catchWithLocal, endReturnLocal] 462 // doCatch, catchWithLocal, endReturnLocal]
371 463
372 f = function f___2__r_lc_l____l_ () { 464 f = function f___3___r_lc_l____l_ () {
373 var local = 3; 465 var local = 888;
374 deopt = false; 466 deopt = false;
375 try { 467 try {
376 counter++; 468 counter++;
377 local += invertFunctionCall(increaseAndThrow42); 469 local += 4 + invertFunctionCall(increaseAndThrow42);
378 counter++; 470 counter++;
379 } catch (ex) { 471 } catch (ex) {
380 counter++; 472 counter++;
381 local += ex; 473 local += ex;
382 counter++; 474 counter++;
383 } 475 }
384 counter++; 476 counter++;
385 return 5 + local; 477 return 5 + local;
386 } 478 }
387 resetOptAndAssertResultEquals(23, f); 479 resetOptAndAssertResultEquals(912, f);
388 assertEquals(4, counter); 480 assertEquals(4, counter);
389 481
390 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 482 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
391 // doCatch, catchWithLocal, endReturnLocal, deopt] 483 // doCatch, catchWithLocal, endReturnLocal, deopt]
392 484
393 f = function f___2__r_lc_l____ld () { 485 f = function f___3___r_lc_l____ld () {
394 var local = 3; 486 var local = 888;
395 deopt = true; 487 deopt = true;
396 try { 488 try {
397 counter++; 489 counter++;
398 local += invertFunctionCall(increaseAndThrow42); 490 local += 4 + invertFunctionCall(increaseAndThrow42);
399 counter++; 491 counter++;
400 } catch (ex) { 492 } catch (ex) {
401 counter++; 493 counter++;
402 local += ex; 494 local += ex;
403 counter++; 495 counter++;
404 } 496 }
405 counter++; 497 counter++;
406 return 5 + local; 498 return 5 + local;
407 } 499 }
408 resetOptAndAssertResultEquals(23, f); 500 resetOptAndAssertResultEquals(912, f);
409 assertEquals(4, counter); 501 assertEquals(4, counter);
410 502
411 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 503 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
412 // doCatch, catchWithLocal, catchThrows] 504 // doCatch, catchWithLocal, catchThrows]
413 505
414 f = function f___2__r_lc_lt_____ () { 506 f = function f___3___r_lc_lt_____ () {
415 var local = 3; 507 var local = 888;
416 deopt = false; 508 deopt = false;
417 try { 509 try {
418 counter++; 510 counter++;
419 local += invertFunctionCall(increaseAndThrow42); 511 local += 4 + invertFunctionCall(increaseAndThrow42);
420 counter++; 512 counter++;
421 } catch (ex) { 513 } catch (ex) {
422 counter++; 514 counter++;
423 throw 2 + ex; 515 throw 2 + ex;
424 counter++; 516 counter++;
425 } 517 }
426 counter++; 518 counter++;
427 } 519 }
428 resetOptAndAssertResultEquals(undefined, f); 520 resetOptAndAssertResultEquals(undefined, f);
429 assertEquals(4, counter); 521 assertEquals(4, counter);
430 522
431 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 523 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
432 // doCatch, catchWithLocal, catchThrows, deopt] 524 // doCatch, catchWithLocal, catchThrows, deopt]
433 525
434 f = function f___2__r_lc_lt____d () { 526 f = function f___3___r_lc_lt____d () {
435 var local = 3; 527 var local = 888;
436 deopt = true; 528 deopt = true;
437 try { 529 try {
438 counter++; 530 counter++;
439 local += invertFunctionCall(increaseAndThrow42); 531 local += 4 + invertFunctionCall(increaseAndThrow42);
440 counter++; 532 counter++;
441 } catch (ex) { 533 } catch (ex) {
442 counter++; 534 counter++;
443 throw 2 + ex; 535 throw 2 + ex;
444 counter++; 536 counter++;
445 } 537 }
446 counter++; 538 counter++;
447 } 539 }
448 resetOptAndAssertResultEquals(undefined, f); 540 resetOptAndAssertResultEquals(undefined, f);
449 assertEquals(4, counter); 541 assertEquals(4, counter);
450 542
451 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 543 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
452 // doCatch, catchWithLocal, catchThrows, endReturnLocal] 544 // doCatch, catchWithLocal, catchThrows, endReturnLocal]
453 545
454 f = function f___2__r_lc_lt___l_ () { 546 f = function f___3___r_lc_lt___l_ () {
455 var local = 3; 547 var local = 888;
456 deopt = false; 548 deopt = false;
457 try { 549 try {
458 counter++; 550 counter++;
459 local += invertFunctionCall(increaseAndThrow42); 551 local += 4 + invertFunctionCall(increaseAndThrow42);
460 counter++; 552 counter++;
461 } catch (ex) { 553 } catch (ex) {
462 counter++; 554 counter++;
463 throw 2 + ex; 555 throw 2 + ex;
464 counter++; 556 counter++;
465 } 557 }
466 counter++; 558 counter++;
467 return 5 + local; 559 return 5 + local;
468 } 560 }
469 resetOptAndAssertResultEquals(23, f); 561 resetOptAndAssertResultEquals(912, f);
470 assertEquals(4, counter); 562 assertEquals(4, counter);
471 563
472 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 564 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
473 // doCatch, catchWithLocal, catchThrows, endReturnLocal, deopt] 565 // doCatch, catchWithLocal, catchThrows, endReturnLocal, deopt]
474 566
475 f = function f___2__r_lc_lt___ld () { 567 f = function f___3___r_lc_lt___ld () {
476 var local = 3; 568 var local = 888;
477 deopt = true; 569 deopt = true;
478 try { 570 try {
479 counter++; 571 counter++;
480 local += invertFunctionCall(increaseAndThrow42); 572 local += 4 + invertFunctionCall(increaseAndThrow42);
481 counter++; 573 counter++;
482 } catch (ex) { 574 } catch (ex) {
483 counter++; 575 counter++;
484 throw 2 + ex; 576 throw 2 + ex;
485 counter++; 577 counter++;
486 } 578 }
487 counter++; 579 counter++;
488 return 5 + local; 580 return 5 + local;
489 } 581 }
490 resetOptAndAssertResultEquals(23, f); 582 resetOptAndAssertResultEquals(912, f);
491 assertEquals(4, counter); 583 assertEquals(4, counter);
492 584
493 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 585 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
494 // doCatch, catchReturns] 586 // doCatch, catchReturns]
495 587
496 f = function f___2__r_lcr_______ () { 588 f = function f___3___r_lcr_______ () {
497 var local = 3; 589 var local = 888;
498 deopt = false; 590 deopt = false;
499 try { 591 try {
500 counter++; 592 counter++;
501 local += invertFunctionCall(increaseAndThrow42); 593 local += 4 + invertFunctionCall(increaseAndThrow42);
502 counter++; 594 counter++;
503 } catch (ex) { 595 } catch (ex) {
504 counter++; 596 counter++;
505 return 2 + ex; 597 return 2 + ex;
506 counter++; 598 counter++;
507 } 599 }
508 counter++; 600 counter++;
509 } 601 }
510 resetOptAndAssertResultEquals(undefined, f); 602 resetOptAndAssertResultEquals(undefined, f);
511 assertEquals(4, counter); 603 assertEquals(4, counter);
512 604
513 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 605 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
514 // doCatch, catchReturns, deopt] 606 // doCatch, catchReturns, deopt]
515 607
516 f = function f___2__r_lcr______d () { 608 f = function f___3___r_lcr______d () {
517 var local = 3; 609 var local = 888;
518 deopt = true; 610 deopt = true;
519 try { 611 try {
520 counter++; 612 counter++;
521 local += invertFunctionCall(increaseAndThrow42); 613 local += 4 + invertFunctionCall(increaseAndThrow42);
522 counter++; 614 counter++;
523 } catch (ex) { 615 } catch (ex) {
524 counter++; 616 counter++;
525 return 2 + ex; 617 return 2 + ex;
526 counter++; 618 counter++;
527 } 619 }
528 counter++; 620 counter++;
529 } 621 }
530 resetOptAndAssertResultEquals(undefined, f); 622 resetOptAndAssertResultEquals(undefined, f);
531 assertEquals(4, counter); 623 assertEquals(4, counter);
532 624
533 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 625 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
534 // doCatch, catchReturns, endReturnLocal] 626 // doCatch, catchReturns, endReturnLocal]
535 627
536 f = function f___2__r_lcr_____l_ () { 628 f = function f___3___r_lcr_____l_ () {
537 var local = 3; 629 var local = 888;
538 deopt = false; 630 deopt = false;
539 try { 631 try {
540 counter++; 632 counter++;
541 local += invertFunctionCall(increaseAndThrow42); 633 local += 4 + invertFunctionCall(increaseAndThrow42);
542 counter++; 634 counter++;
543 } catch (ex) { 635 } catch (ex) {
544 counter++; 636 counter++;
545 return 2 + ex; 637 return 2 + ex;
546 counter++; 638 counter++;
547 } 639 }
548 counter++; 640 counter++;
549 return 5 + local; 641 return 5 + local;
550 } 642 }
551 resetOptAndAssertResultEquals(23, f); 643 resetOptAndAssertResultEquals(912, f);
552 assertEquals(4, counter); 644 assertEquals(4, counter);
553 645
554 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 646 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
555 // doCatch, catchReturns, endReturnLocal, deopt] 647 // doCatch, catchReturns, endReturnLocal, deopt]
556 648
557 f = function f___2__r_lcr_____ld () { 649 f = function f___3___r_lcr_____ld () {
558 var local = 3; 650 var local = 888;
559 deopt = true; 651 deopt = true;
560 try { 652 try {
561 counter++; 653 counter++;
562 local += invertFunctionCall(increaseAndThrow42); 654 local += 4 + invertFunctionCall(increaseAndThrow42);
563 counter++; 655 counter++;
564 } catch (ex) { 656 } catch (ex) {
565 counter++; 657 counter++;
566 return 2 + ex; 658 return 2 + ex;
567 counter++; 659 counter++;
568 } 660 }
569 counter++; 661 counter++;
570 return 5 + local; 662 return 5 + local;
571 } 663 }
572 resetOptAndAssertResultEquals(23, f); 664 resetOptAndAssertResultEquals(912, f);
573 assertEquals(4, counter); 665 assertEquals(4, counter);
574 666
575 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 667 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
576 // doCatch, catchReturns, catchWithLocal] 668 // doCatch, catchReturns, catchWithLocal]
577 669
578 f = function f___2__r_lcrl______ () { 670 f = function f___3___r_lcrl______ () {
579 var local = 3; 671 var local = 888;
580 deopt = false; 672 deopt = false;
581 try { 673 try {
582 counter++; 674 counter++;
583 local += invertFunctionCall(increaseAndThrow42); 675 local += 4 + invertFunctionCall(increaseAndThrow42);
584 counter++; 676 counter++;
585 } catch (ex) { 677 } catch (ex) {
586 counter++; 678 counter++;
587 return 2 + local; 679 return 2 + local;
588 counter++; 680 counter++;
589 } 681 }
590 counter++; 682 counter++;
591 } 683 }
592 resetOptAndAssertResultEquals(undefined, f); 684 resetOptAndAssertResultEquals(undefined, f);
593 assertEquals(4, counter); 685 assertEquals(4, counter);
594 686
595 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 687 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
596 // doCatch, catchReturns, catchWithLocal, deopt] 688 // doCatch, catchReturns, catchWithLocal, deopt]
597 689
598 f = function f___2__r_lcrl_____d () { 690 f = function f___3___r_lcrl_____d () {
599 var local = 3; 691 var local = 888;
600 deopt = true; 692 deopt = true;
601 try { 693 try {
602 counter++; 694 counter++;
603 local += invertFunctionCall(increaseAndThrow42); 695 local += 4 + invertFunctionCall(increaseAndThrow42);
604 counter++; 696 counter++;
605 } catch (ex) { 697 } catch (ex) {
606 counter++; 698 counter++;
607 return 2 + local; 699 return 2 + local;
608 counter++; 700 counter++;
609 } 701 }
610 counter++; 702 counter++;
611 } 703 }
612 resetOptAndAssertResultEquals(undefined, f); 704 resetOptAndAssertResultEquals(undefined, f);
613 assertEquals(4, counter); 705 assertEquals(4, counter);
614 706
615 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 707 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
616 // doCatch, catchReturns, catchWithLocal, endReturnLocal] 708 // doCatch, catchReturns, catchWithLocal, endReturnLocal]
617 709
618 f = function f___2__r_lcrl____l_ () { 710 f = function f___3___r_lcrl____l_ () {
619 var local = 3; 711 var local = 888;
620 deopt = false; 712 deopt = false;
621 try { 713 try {
622 counter++; 714 counter++;
623 local += invertFunctionCall(increaseAndThrow42); 715 local += 4 + invertFunctionCall(increaseAndThrow42);
624 counter++; 716 counter++;
625 } catch (ex) { 717 } catch (ex) {
626 counter++; 718 counter++;
627 return 2 + local; 719 return 2 + local;
628 counter++; 720 counter++;
629 } 721 }
630 counter++; 722 counter++;
631 return 5 + local; 723 return 5 + local;
632 } 724 }
633 resetOptAndAssertResultEquals(23, f); 725 resetOptAndAssertResultEquals(912, f);
634 assertEquals(4, counter); 726 assertEquals(4, counter);
635 727
636 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal, 728 // Variant flags: [alternativeFn3, tryReturns, tryResultToLocal,
637 // doCatch, catchReturns, catchWithLocal, endReturnLocal, deopt] 729 // doCatch, catchReturns, catchWithLocal, endReturnLocal, deopt]
638 730
639 f = function f___2__r_lcrl____ld () { 731 f = function f___3___r_lcrl____ld () {
640 var local = 3; 732 var local = 888;
641 deopt = true; 733 deopt = true;
642 try { 734 try {
643 counter++; 735 counter++;
644 local += invertFunctionCall(increaseAndThrow42); 736 local += 4 + invertFunctionCall(increaseAndThrow42);
645 counter++; 737 counter++;
646 } catch (ex) { 738 } catch (ex) {
647 counter++; 739 counter++;
648 return 2 + local; 740 return 2 + local;
649 counter++; 741 counter++;
650 } 742 }
651 counter++; 743 counter++;
652 return 5 + local; 744 return 5 + local;
653 } 745 }
654 resetOptAndAssertResultEquals(23, f); 746 resetOptAndAssertResultEquals(912, f);
655 assertEquals(4, counter); 747 assertEquals(4, counter);
656 748
657 // Variant flags: [alternativeFn2, tryThrows, doCatch] 749 // Variant flags: [alternativeFn3, tryThrows, doCatch]
658 750
659 f = function f___2_t___c________ () { 751 f = function f___3__t___c________ () {
660 var local = 3; 752 var local = 888;
661 deopt = false; 753 deopt = false;
662 try { 754 try {
663 counter++; 755 counter++;
664 return invertFunctionCall(increaseAndReturn15); 756 return 4 + invertFunctionCall(increaseAndReturn15);
665 counter++; 757 counter++;
666 } catch (ex) { 758 } catch (ex) {
667 counter++; 759 counter++;
668 counter++; 760 counter++;
669 } 761 }
670 counter++; 762 counter++;
671 } 763 }
672 resetOptAndAssertResultEquals(undefined, f); 764 resetOptAndAssertResultEquals(undefined, f);
673 assertEquals(5, counter); 765 assertEquals(5, counter);
674 766
675 // Variant flags: [alternativeFn2, tryThrows, doCatch, deopt] 767 // Variant flags: [alternativeFn3, tryThrows, doCatch, deopt]
676 768
677 f = function f___2_t___c_______d () { 769 f = function f___3__t___c_______d () {
678 var local = 3; 770 var local = 888;
679 deopt = true; 771 deopt = true;
680 try { 772 try {
681 counter++; 773 counter++;
682 return invertFunctionCall(increaseAndReturn15); 774 return 4 + invertFunctionCall(increaseAndReturn15);
683 counter++; 775 counter++;
684 } catch (ex) { 776 } catch (ex) {
685 counter++; 777 counter++;
686 counter++; 778 counter++;
687 } 779 }
688 counter++; 780 counter++;
689 } 781 }
690 resetOptAndAssertResultEquals(undefined, f); 782 resetOptAndAssertResultEquals(undefined, f);
691 assertEquals(5, counter); 783 assertEquals(5, counter);
692 784
693 // Variant flags: [alternativeFn2, tryThrows, doCatch, catchThrows] 785 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchThrows]
694 786
695 f = function f___2_t___c__t_____ () { 787 f = function f___3__t___c__t_____ () {
696 var local = 3; 788 var local = 888;
697 deopt = false; 789 deopt = false;
698 try { 790 try {
699 counter++; 791 counter++;
700 return invertFunctionCall(increaseAndReturn15); 792 return 4 + invertFunctionCall(increaseAndReturn15);
701 counter++; 793 counter++;
702 } catch (ex) { 794 } catch (ex) {
703 counter++; 795 counter++;
704 throw 2 + ex; 796 throw 2 + ex;
705 counter++; 797 counter++;
706 } 798 }
707 counter++; 799 counter++;
708 } 800 }
709 resetOptAndAssertThrowsWith(44, f); 801 resetOptAndAssertThrowsWith(44, f);
710 assertEquals(3, counter); 802 assertEquals(3, counter);
711 803
712 // Variant flags: [alternativeFn2, tryThrows, doCatch, catchThrows, 804 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchThrows,
713 // deopt] 805 // deopt]
714 806
715 f = function f___2_t___c__t____d () { 807 f = function f___3__t___c__t____d () {
716 var local = 3; 808 var local = 888;
717 deopt = true; 809 deopt = true;
718 try { 810 try {
719 counter++; 811 counter++;
720 return invertFunctionCall(increaseAndReturn15); 812 return 4 + invertFunctionCall(increaseAndReturn15);
721 counter++; 813 counter++;
722 } catch (ex) { 814 } catch (ex) {
723 counter++; 815 counter++;
724 throw 2 + ex; 816 throw 2 + ex;
725 counter++; 817 counter++;
726 } 818 }
727 counter++; 819 counter++;
728 } 820 }
729 resetOptAndAssertThrowsWith(44, f); 821 resetOptAndAssertThrowsWith(44, f);
730 assertEquals(3, counter); 822 assertEquals(3, counter);
731 823
732 // Variant flags: [alternativeFn2, tryThrows, doCatch, 824 // Variant flags: [alternativeFn3, tryThrows, doCatch,
733 // catchWithLocal] 825 // catchWithLocal]
734 826
735 f = function f___2_t___c_l______ () { 827 f = function f___3__t___c_l______ () {
736 var local = 3; 828 var local = 888;
737 deopt = false; 829 deopt = false;
738 try { 830 try {
739 counter++; 831 counter++;
740 return invertFunctionCall(increaseAndReturn15); 832 return 4 + invertFunctionCall(increaseAndReturn15);
741 counter++; 833 counter++;
742 } catch (ex) { 834 } catch (ex) {
743 counter++; 835 counter++;
744 local += ex; 836 local += ex;
745 counter++; 837 counter++;
746 } 838 }
747 counter++; 839 counter++;
748 } 840 }
749 resetOptAndAssertResultEquals(undefined, f); 841 resetOptAndAssertResultEquals(undefined, f);
750 assertEquals(5, counter); 842 assertEquals(5, counter);
751 843
752 // Variant flags: [alternativeFn2, tryThrows, doCatch, 844 // Variant flags: [alternativeFn3, tryThrows, doCatch,
753 // catchWithLocal, deopt] 845 // catchWithLocal, deopt]
754 846
755 f = function f___2_t___c_l_____d () { 847 f = function f___3__t___c_l_____d () {
756 var local = 3; 848 var local = 888;
757 deopt = true; 849 deopt = true;
758 try { 850 try {
759 counter++; 851 counter++;
760 return invertFunctionCall(increaseAndReturn15); 852 return 4 + invertFunctionCall(increaseAndReturn15);
761 counter++; 853 counter++;
762 } catch (ex) { 854 } catch (ex) {
763 counter++; 855 counter++;
764 local += ex; 856 local += ex;
765 counter++; 857 counter++;
766 } 858 }
767 counter++; 859 counter++;
768 } 860 }
769 resetOptAndAssertResultEquals(undefined, f); 861 resetOptAndAssertResultEquals(undefined, f);
770 assertEquals(5, counter); 862 assertEquals(5, counter);
771 863
772 // Variant flags: [alternativeFn2, tryThrows, doCatch, 864 // Variant flags: [alternativeFn3, tryThrows, doCatch,
773 // catchWithLocal, endReturnLocal] 865 // catchWithLocal, endReturnLocal]
774 866
775 f = function f___2_t___c_l____l_ () { 867 f = function f___3__t___c_l____l_ () {
776 var local = 3; 868 var local = 888;
777 deopt = false; 869 deopt = false;
778 try { 870 try {
779 counter++; 871 counter++;
780 return invertFunctionCall(increaseAndReturn15); 872 return 4 + invertFunctionCall(increaseAndReturn15);
781 counter++; 873 counter++;
782 } catch (ex) { 874 } catch (ex) {
783 counter++; 875 counter++;
784 local += ex; 876 local += ex;
785 counter++; 877 counter++;
786 } 878 }
787 counter++; 879 counter++;
788 return 5 + local; 880 return 5 + local;
789 } 881 }
790 resetOptAndAssertResultEquals(50, f); 882 resetOptAndAssertResultEquals(935, f);
791 assertEquals(5, counter); 883 assertEquals(5, counter);
792 884
793 // Variant flags: [alternativeFn2, tryThrows, doCatch, 885 // Variant flags: [alternativeFn3, tryThrows, doCatch,
794 // catchWithLocal, endReturnLocal, deopt] 886 // catchWithLocal, endReturnLocal, deopt]
795 887
796 f = function f___2_t___c_l____ld () { 888 f = function f___3__t___c_l____ld () {
797 var local = 3; 889 var local = 888;
798 deopt = true; 890 deopt = true;
799 try { 891 try {
800 counter++; 892 counter++;
801 return invertFunctionCall(increaseAndReturn15); 893 return 4 + invertFunctionCall(increaseAndReturn15);
802 counter++; 894 counter++;
803 } catch (ex) { 895 } catch (ex) {
804 counter++; 896 counter++;
805 local += ex; 897 local += ex;
806 counter++; 898 counter++;
807 } 899 }
808 counter++; 900 counter++;
809 return 5 + local; 901 return 5 + local;
810 } 902 }
811 resetOptAndAssertResultEquals(50, f); 903 resetOptAndAssertResultEquals(935, f);
812 assertEquals(5, counter); 904 assertEquals(5, counter);
813 905
814 // Variant flags: [alternativeFn2, tryThrows, doCatch, 906 // Variant flags: [alternativeFn3, tryThrows, doCatch,
815 // catchWithLocal, catchThrows] 907 // catchWithLocal, catchThrows]
816 908
817 f = function f___2_t___c_lt_____ () { 909 f = function f___3__t___c_lt_____ () {
818 var local = 3; 910 var local = 888;
819 deopt = false; 911 deopt = false;
820 try { 912 try {
821 counter++; 913 counter++;
822 return invertFunctionCall(increaseAndReturn15); 914 return 4 + invertFunctionCall(increaseAndReturn15);
823 counter++; 915 counter++;
824 } catch (ex) { 916 } catch (ex) {
825 counter++; 917 counter++;
826 throw 2 + ex; 918 throw 2 + ex;
827 counter++; 919 counter++;
828 } 920 }
829 counter++; 921 counter++;
830 } 922 }
831 resetOptAndAssertThrowsWith(44, f); 923 resetOptAndAssertThrowsWith(44, f);
832 assertEquals(3, counter); 924 assertEquals(3, counter);
833 925
834 // Variant flags: [alternativeFn2, tryThrows, doCatch, 926 // Variant flags: [alternativeFn3, tryThrows, doCatch,
835 // catchWithLocal, catchThrows, deopt] 927 // catchWithLocal, catchThrows, deopt]
836 928
837 f = function f___2_t___c_lt____d () { 929 f = function f___3__t___c_lt____d () {
838 var local = 3; 930 var local = 888;
839 deopt = true; 931 deopt = true;
840 try { 932 try {
841 counter++; 933 counter++;
842 return invertFunctionCall(increaseAndReturn15); 934 return 4 + invertFunctionCall(increaseAndReturn15);
843 counter++; 935 counter++;
844 } catch (ex) { 936 } catch (ex) {
845 counter++; 937 counter++;
846 throw 2 + ex; 938 throw 2 + ex;
847 counter++; 939 counter++;
848 } 940 }
849 counter++; 941 counter++;
850 } 942 }
851 resetOptAndAssertThrowsWith(44, f); 943 resetOptAndAssertThrowsWith(44, f);
852 assertEquals(3, counter); 944 assertEquals(3, counter);
853 945
854 // Variant flags: [alternativeFn2, tryThrows, doCatch, 946 // Variant flags: [alternativeFn3, tryThrows, doCatch,
855 // catchWithLocal, catchThrows, endReturnLocal] 947 // catchWithLocal, catchThrows, endReturnLocal]
856 948
857 f = function f___2_t___c_lt___l_ () { 949 f = function f___3__t___c_lt___l_ () {
858 var local = 3; 950 var local = 888;
859 deopt = false; 951 deopt = false;
860 try { 952 try {
861 counter++; 953 counter++;
862 return invertFunctionCall(increaseAndReturn15); 954 return 4 + invertFunctionCall(increaseAndReturn15);
863 counter++; 955 counter++;
864 } catch (ex) { 956 } catch (ex) {
865 counter++; 957 counter++;
866 throw 2 + ex; 958 throw 2 + ex;
867 counter++; 959 counter++;
868 } 960 }
869 counter++; 961 counter++;
870 return 5 + local; 962 return 5 + local;
871 } 963 }
872 resetOptAndAssertThrowsWith(44, f); 964 resetOptAndAssertThrowsWith(44, f);
873 assertEquals(3, counter); 965 assertEquals(3, counter);
874 966
875 // Variant flags: [alternativeFn2, tryThrows, doCatch, 967 // Variant flags: [alternativeFn3, tryThrows, doCatch,
876 // catchWithLocal, catchThrows, endReturnLocal, deopt] 968 // catchWithLocal, catchThrows, endReturnLocal, deopt]
877 969
878 f = function f___2_t___c_lt___ld () { 970 f = function f___3__t___c_lt___ld () {
879 var local = 3; 971 var local = 888;
880 deopt = true; 972 deopt = true;
881 try { 973 try {
882 counter++; 974 counter++;
883 return invertFunctionCall(increaseAndReturn15); 975 return 4 + invertFunctionCall(increaseAndReturn15);
884 counter++; 976 counter++;
885 } catch (ex) { 977 } catch (ex) {
886 counter++; 978 counter++;
887 throw 2 + ex; 979 throw 2 + ex;
888 counter++; 980 counter++;
889 } 981 }
890 counter++; 982 counter++;
891 return 5 + local; 983 return 5 + local;
892 } 984 }
893 resetOptAndAssertThrowsWith(44, f); 985 resetOptAndAssertThrowsWith(44, f);
894 assertEquals(3, counter); 986 assertEquals(3, counter);
895 987
896 // Variant flags: [alternativeFn2, tryThrows, doCatch, catchReturns] 988 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchReturns]
897 989
898 f = function f___2_t___cr_______ () { 990 f = function f___3__t___cr_______ () {
899 var local = 3; 991 var local = 888;
900 deopt = false; 992 deopt = false;
901 try { 993 try {
902 counter++; 994 counter++;
903 return invertFunctionCall(increaseAndReturn15); 995 return 4 + invertFunctionCall(increaseAndReturn15);
904 counter++; 996 counter++;
905 } catch (ex) { 997 } catch (ex) {
906 counter++; 998 counter++;
907 return 2 + ex; 999 return 2 + ex;
908 counter++; 1000 counter++;
909 } 1001 }
910 counter++; 1002 counter++;
911 } 1003 }
912 resetOptAndAssertResultEquals(44, f); 1004 resetOptAndAssertResultEquals(44, f);
913 assertEquals(3, counter); 1005 assertEquals(3, counter);
914 1006
915 // Variant flags: [alternativeFn2, tryThrows, doCatch, catchReturns, 1007 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchReturns,
916 // deopt] 1008 // deopt]
917 1009
918 f = function f___2_t___cr______d () { 1010 f = function f___3__t___cr______d () {
919 var local = 3; 1011 var local = 888;
920 deopt = true; 1012 deopt = true;
921 try { 1013 try {
922 counter++; 1014 counter++;
923 return invertFunctionCall(increaseAndReturn15); 1015 return 4 + invertFunctionCall(increaseAndReturn15);
924 counter++; 1016 counter++;
925 } catch (ex) { 1017 } catch (ex) {
926 counter++; 1018 counter++;
927 return 2 + ex; 1019 return 2 + ex;
928 counter++; 1020 counter++;
929 } 1021 }
930 counter++; 1022 counter++;
931 } 1023 }
932 resetOptAndAssertResultEquals(44, f); 1024 resetOptAndAssertResultEquals(44, f);
933 assertEquals(3, counter); 1025 assertEquals(3, counter);
934 1026
935 // Variant flags: [alternativeFn2, tryThrows, doCatch, catchReturns, 1027 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchReturns,
936 // catchWithLocal] 1028 // catchWithLocal]
937 1029
938 f = function f___2_t___crl______ () { 1030 f = function f___3__t___crl______ () {
939 var local = 3; 1031 var local = 888;
940 deopt = false; 1032 deopt = false;
941 try { 1033 try {
942 counter++; 1034 counter++;
943 return invertFunctionCall(increaseAndReturn15); 1035 return 4 + invertFunctionCall(increaseAndReturn15);
944 counter++; 1036 counter++;
945 } catch (ex) { 1037 } catch (ex) {
946 counter++; 1038 counter++;
947 return 2 + local; 1039 return 2 + local;
948 counter++; 1040 counter++;
949 } 1041 }
950 counter++; 1042 counter++;
951 } 1043 }
952 resetOptAndAssertResultEquals(5, f); 1044 resetOptAndAssertResultEquals(890, f);
953 assertEquals(3, counter); 1045 assertEquals(3, counter);
954 1046
955 // Variant flags: [alternativeFn2, tryThrows, doCatch, catchReturns, 1047 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchReturns,
956 // catchWithLocal, deopt] 1048 // catchWithLocal, deopt]
957 1049
958 f = function f___2_t___crl_____d () { 1050 f = function f___3__t___crl_____d () {
959 var local = 3; 1051 var local = 888;
960 deopt = true; 1052 deopt = true;
961 try { 1053 try {
962 counter++; 1054 counter++;
963 return invertFunctionCall(increaseAndReturn15); 1055 return 4 + invertFunctionCall(increaseAndReturn15);
964 counter++; 1056 counter++;
965 } catch (ex) { 1057 } catch (ex) {
966 counter++; 1058 counter++;
967 return 2 + local; 1059 return 2 + local;
968 counter++; 1060 counter++;
969 } 1061 }
970 counter++; 1062 counter++;
971 } 1063 }
972 resetOptAndAssertResultEquals(5, f); 1064 resetOptAndAssertResultEquals(890, f);
973 assertEquals(3, counter); 1065 assertEquals(3, counter);
974 1066
975 // Variant flags: [alternativeFn2, tryThrows, doCatch, catchReturns, 1067 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchReturns,
976 // catchWithLocal, endReturnLocal] 1068 // catchWithLocal, endReturnLocal]
977 1069
978 f = function f___2_t___crl____l_ () { 1070 f = function f___3__t___crl____l_ () {
979 var local = 3; 1071 var local = 888;
980 deopt = false; 1072 deopt = false;
981 try { 1073 try {
982 counter++; 1074 counter++;
983 return invertFunctionCall(increaseAndReturn15); 1075 return 4 + invertFunctionCall(increaseAndReturn15);
984 counter++; 1076 counter++;
985 } catch (ex) { 1077 } catch (ex) {
986 counter++; 1078 counter++;
987 return 2 + local; 1079 return 2 + local;
988 counter++; 1080 counter++;
989 } 1081 }
990 counter++; 1082 counter++;
991 return 5 + local; 1083 return 5 + local;
992 } 1084 }
993 resetOptAndAssertResultEquals(5, f); 1085 resetOptAndAssertResultEquals(890, f);
994 assertEquals(3, counter); 1086 assertEquals(3, counter);
995 1087
996 // Variant flags: [alternativeFn2, tryThrows, doCatch, catchReturns, 1088 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchReturns,
997 // catchWithLocal, endReturnLocal, deopt] 1089 // catchWithLocal, endReturnLocal, deopt]
998 1090
999 f = function f___2_t___crl____ld () { 1091 f = function f___3__t___crl____ld () {
1000 var local = 3; 1092 var local = 888;
1001 deopt = true; 1093 deopt = true;
1002 try { 1094 try {
1003 counter++; 1095 counter++;
1004 return invertFunctionCall(increaseAndReturn15); 1096 return 4 + invertFunctionCall(increaseAndReturn15);
1005 counter++; 1097 counter++;
1006 } catch (ex) { 1098 } catch (ex) {
1007 counter++; 1099 counter++;
1008 return 2 + local; 1100 return 2 + local;
1009 counter++; 1101 counter++;
1010 } 1102 }
1011 counter++; 1103 counter++;
1012 return 5 + local; 1104 return 5 + local;
1013 } 1105 }
1014 resetOptAndAssertResultEquals(5, f); 1106 resetOptAndAssertResultEquals(890, f);
1015 assertEquals(3, counter); 1107 assertEquals(3, counter);
1016 1108
1017 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1109 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1018 // doCatch] 1110 // doCatch]
1019 1111
1020 f = function f___2_t__lc________ () { 1112 f = function f___3__t__lc________ () {
1021 var local = 3; 1113 var local = 888;
1022 deopt = false; 1114 deopt = false;
1023 try { 1115 try {
1024 counter++; 1116 counter++;
1025 local += invertFunctionCall(increaseAndReturn15); 1117 local += 4 + invertFunctionCall(increaseAndReturn15);
1026 counter++; 1118 counter++;
1027 } catch (ex) { 1119 } catch (ex) {
1028 counter++; 1120 counter++;
1029 counter++; 1121 counter++;
1030 } 1122 }
1031 counter++; 1123 counter++;
1032 } 1124 }
1033 resetOptAndAssertResultEquals(undefined, f); 1125 resetOptAndAssertResultEquals(undefined, f);
1034 assertEquals(5, counter); 1126 assertEquals(5, counter);
1035 1127
1036 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1128 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1037 // doCatch, deopt] 1129 // doCatch, deopt]
1038 1130
1039 f = function f___2_t__lc_______d () { 1131 f = function f___3__t__lc_______d () {
1040 var local = 3; 1132 var local = 888;
1041 deopt = true; 1133 deopt = true;
1042 try { 1134 try {
1043 counter++; 1135 counter++;
1044 local += invertFunctionCall(increaseAndReturn15); 1136 local += 4 + invertFunctionCall(increaseAndReturn15);
1045 counter++; 1137 counter++;
1046 } catch (ex) { 1138 } catch (ex) {
1047 counter++; 1139 counter++;
1048 counter++; 1140 counter++;
1049 } 1141 }
1050 counter++; 1142 counter++;
1051 } 1143 }
1052 resetOptAndAssertResultEquals(undefined, f); 1144 resetOptAndAssertResultEquals(undefined, f);
1053 assertEquals(5, counter); 1145 assertEquals(5, counter);
1054 1146
1055 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1147 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1056 // doCatch, endReturnLocal] 1148 // doCatch, endReturnLocal]
1057 1149
1058 f = function f___2_t__lc______l_ () { 1150 f = function f___3__t__lc______l_ () {
1059 var local = 3; 1151 var local = 888;
1060 deopt = false; 1152 deopt = false;
1061 try { 1153 try {
1062 counter++; 1154 counter++;
1063 local += invertFunctionCall(increaseAndReturn15); 1155 local += 4 + invertFunctionCall(increaseAndReturn15);
1064 counter++; 1156 counter++;
1065 } catch (ex) { 1157 } catch (ex) {
1066 counter++; 1158 counter++;
1067 counter++; 1159 counter++;
1068 } 1160 }
1069 counter++; 1161 counter++;
1070 return 5 + local; 1162 return 5 + local;
1071 } 1163 }
1072 resetOptAndAssertResultEquals(8, f); 1164 resetOptAndAssertResultEquals(893, f);
1073 assertEquals(5, counter); 1165 assertEquals(5, counter);
1074 1166
1075 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1167 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1076 // doCatch, endReturnLocal, deopt] 1168 // doCatch, endReturnLocal, deopt]
1077 1169
1078 f = function f___2_t__lc______ld () { 1170 f = function f___3__t__lc______ld () {
1079 var local = 3; 1171 var local = 888;
1080 deopt = true; 1172 deopt = true;
1081 try { 1173 try {
1082 counter++; 1174 counter++;
1083 local += invertFunctionCall(increaseAndReturn15); 1175 local += 4 + invertFunctionCall(increaseAndReturn15);
1084 counter++; 1176 counter++;
1085 } catch (ex) { 1177 } catch (ex) {
1086 counter++; 1178 counter++;
1087 counter++; 1179 counter++;
1088 } 1180 }
1089 counter++; 1181 counter++;
1090 return 5 + local; 1182 return 5 + local;
1091 } 1183 }
1092 resetOptAndAssertResultEquals(8, f); 1184 resetOptAndAssertResultEquals(893, f);
1093 assertEquals(5, counter); 1185 assertEquals(5, counter);
1094 1186
1095 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1187 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1096 // doCatch, catchThrows] 1188 // doCatch, catchThrows]
1097 1189
1098 f = function f___2_t__lc__t_____ () { 1190 f = function f___3__t__lc__t_____ () {
1099 var local = 3; 1191 var local = 888;
1100 deopt = false; 1192 deopt = false;
1101 try { 1193 try {
1102 counter++; 1194 counter++;
1103 local += invertFunctionCall(increaseAndReturn15); 1195 local += 4 + invertFunctionCall(increaseAndReturn15);
1104 counter++; 1196 counter++;
1105 } catch (ex) { 1197 } catch (ex) {
1106 counter++; 1198 counter++;
1107 throw 2 + ex; 1199 throw 2 + ex;
1108 counter++; 1200 counter++;
1109 } 1201 }
1110 counter++; 1202 counter++;
1111 } 1203 }
1112 resetOptAndAssertThrowsWith(44, f); 1204 resetOptAndAssertThrowsWith(44, f);
1113 assertEquals(3, counter); 1205 assertEquals(3, counter);
1114 1206
1115 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1207 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1116 // doCatch, catchThrows, deopt] 1208 // doCatch, catchThrows, deopt]
1117 1209
1118 f = function f___2_t__lc__t____d () { 1210 f = function f___3__t__lc__t____d () {
1119 var local = 3; 1211 var local = 888;
1120 deopt = true; 1212 deopt = true;
1121 try { 1213 try {
1122 counter++; 1214 counter++;
1123 local += invertFunctionCall(increaseAndReturn15); 1215 local += 4 + invertFunctionCall(increaseAndReturn15);
1124 counter++; 1216 counter++;
1125 } catch (ex) { 1217 } catch (ex) {
1126 counter++; 1218 counter++;
1127 throw 2 + ex; 1219 throw 2 + ex;
1128 counter++; 1220 counter++;
1129 } 1221 }
1130 counter++; 1222 counter++;
1131 } 1223 }
1132 resetOptAndAssertThrowsWith(44, f); 1224 resetOptAndAssertThrowsWith(44, f);
1133 assertEquals(3, counter); 1225 assertEquals(3, counter);
1134 1226
1135 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1227 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1136 // doCatch, catchThrows, endReturnLocal] 1228 // doCatch, catchThrows, endReturnLocal]
1137 1229
1138 f = function f___2_t__lc__t___l_ () { 1230 f = function f___3__t__lc__t___l_ () {
1139 var local = 3; 1231 var local = 888;
1140 deopt = false; 1232 deopt = false;
1141 try { 1233 try {
1142 counter++; 1234 counter++;
1143 local += invertFunctionCall(increaseAndReturn15); 1235 local += 4 + invertFunctionCall(increaseAndReturn15);
1144 counter++; 1236 counter++;
1145 } catch (ex) { 1237 } catch (ex) {
1146 counter++; 1238 counter++;
1147 throw 2 + ex; 1239 throw 2 + ex;
1148 counter++; 1240 counter++;
1149 } 1241 }
1150 counter++; 1242 counter++;
1151 return 5 + local; 1243 return 5 + local;
1152 } 1244 }
1153 resetOptAndAssertThrowsWith(44, f); 1245 resetOptAndAssertThrowsWith(44, f);
1154 assertEquals(3, counter); 1246 assertEquals(3, counter);
1155 1247
1156 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1248 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1157 // doCatch, catchThrows, endReturnLocal, deopt] 1249 // doCatch, catchThrows, endReturnLocal, deopt]
1158 1250
1159 f = function f___2_t__lc__t___ld () { 1251 f = function f___3__t__lc__t___ld () {
1160 var local = 3; 1252 var local = 888;
1161 deopt = true; 1253 deopt = true;
1162 try { 1254 try {
1163 counter++; 1255 counter++;
1164 local += invertFunctionCall(increaseAndReturn15); 1256 local += 4 + invertFunctionCall(increaseAndReturn15);
1165 counter++; 1257 counter++;
1166 } catch (ex) { 1258 } catch (ex) {
1167 counter++; 1259 counter++;
1168 throw 2 + ex; 1260 throw 2 + ex;
1169 counter++; 1261 counter++;
1170 } 1262 }
1171 counter++; 1263 counter++;
1172 return 5 + local; 1264 return 5 + local;
1173 } 1265 }
1174 resetOptAndAssertThrowsWith(44, f); 1266 resetOptAndAssertThrowsWith(44, f);
1175 assertEquals(3, counter); 1267 assertEquals(3, counter);
1176 1268
1177 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1269 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1178 // doCatch, catchWithLocal] 1270 // doCatch, catchWithLocal]
1179 1271
1180 f = function f___2_t__lc_l______ () { 1272 f = function f___3__t__lc_l______ () {
1181 var local = 3; 1273 var local = 888;
1182 deopt = false; 1274 deopt = false;
1183 try { 1275 try {
1184 counter++; 1276 counter++;
1185 local += invertFunctionCall(increaseAndReturn15); 1277 local += 4 + invertFunctionCall(increaseAndReturn15);
1186 counter++; 1278 counter++;
1187 } catch (ex) { 1279 } catch (ex) {
1188 counter++; 1280 counter++;
1189 local += ex; 1281 local += ex;
1190 counter++; 1282 counter++;
1191 } 1283 }
1192 counter++; 1284 counter++;
1193 } 1285 }
1194 resetOptAndAssertResultEquals(undefined, f); 1286 resetOptAndAssertResultEquals(undefined, f);
1195 assertEquals(5, counter); 1287 assertEquals(5, counter);
1196 1288
1197 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1289 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1198 // doCatch, catchWithLocal, deopt] 1290 // doCatch, catchWithLocal, deopt]
1199 1291
1200 f = function f___2_t__lc_l_____d () { 1292 f = function f___3__t__lc_l_____d () {
1201 var local = 3; 1293 var local = 888;
1202 deopt = true; 1294 deopt = true;
1203 try { 1295 try {
1204 counter++; 1296 counter++;
1205 local += invertFunctionCall(increaseAndReturn15); 1297 local += 4 + invertFunctionCall(increaseAndReturn15);
1206 counter++; 1298 counter++;
1207 } catch (ex) { 1299 } catch (ex) {
1208 counter++; 1300 counter++;
1209 local += ex; 1301 local += ex;
1210 counter++; 1302 counter++;
1211 } 1303 }
1212 counter++; 1304 counter++;
1213 } 1305 }
1214 resetOptAndAssertResultEquals(undefined, f); 1306 resetOptAndAssertResultEquals(undefined, f);
1215 assertEquals(5, counter); 1307 assertEquals(5, counter);
1216 1308
1217 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1309 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1218 // doCatch, catchWithLocal, endReturnLocal] 1310 // doCatch, catchWithLocal, endReturnLocal]
1219 1311
1220 f = function f___2_t__lc_l____l_ () { 1312 f = function f___3__t__lc_l____l_ () {
1221 var local = 3; 1313 var local = 888;
1222 deopt = false; 1314 deopt = false;
1223 try { 1315 try {
1224 counter++; 1316 counter++;
1225 local += invertFunctionCall(increaseAndReturn15); 1317 local += 4 + invertFunctionCall(increaseAndReturn15);
1226 counter++; 1318 counter++;
1227 } catch (ex) { 1319 } catch (ex) {
1228 counter++; 1320 counter++;
1229 local += ex; 1321 local += ex;
1230 counter++; 1322 counter++;
1231 } 1323 }
1232 counter++; 1324 counter++;
1233 return 5 + local; 1325 return 5 + local;
1234 } 1326 }
1235 resetOptAndAssertResultEquals(50, f); 1327 resetOptAndAssertResultEquals(935, f);
1236 assertEquals(5, counter); 1328 assertEquals(5, counter);
1237 1329
1238 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1330 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1239 // doCatch, catchWithLocal, endReturnLocal, deopt] 1331 // doCatch, catchWithLocal, endReturnLocal, deopt]
1240 1332
1241 f = function f___2_t__lc_l____ld () { 1333 f = function f___3__t__lc_l____ld () {
1242 var local = 3; 1334 var local = 888;
1243 deopt = true; 1335 deopt = true;
1244 try { 1336 try {
1245 counter++; 1337 counter++;
1246 local += invertFunctionCall(increaseAndReturn15); 1338 local += 4 + invertFunctionCall(increaseAndReturn15);
1247 counter++; 1339 counter++;
1248 } catch (ex) { 1340 } catch (ex) {
1249 counter++; 1341 counter++;
1250 local += ex; 1342 local += ex;
1251 counter++; 1343 counter++;
1252 } 1344 }
1253 counter++; 1345 counter++;
1254 return 5 + local; 1346 return 5 + local;
1255 } 1347 }
1256 resetOptAndAssertResultEquals(50, f); 1348 resetOptAndAssertResultEquals(935, f);
1257 assertEquals(5, counter); 1349 assertEquals(5, counter);
1258 1350
1259 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1351 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1260 // doCatch, catchWithLocal, catchThrows] 1352 // doCatch, catchWithLocal, catchThrows]
1261 1353
1262 f = function f___2_t__lc_lt_____ () { 1354 f = function f___3__t__lc_lt_____ () {
1263 var local = 3; 1355 var local = 888;
1264 deopt = false; 1356 deopt = false;
1265 try { 1357 try {
1266 counter++; 1358 counter++;
1267 local += invertFunctionCall(increaseAndReturn15); 1359 local += 4 + invertFunctionCall(increaseAndReturn15);
1268 counter++; 1360 counter++;
1269 } catch (ex) { 1361 } catch (ex) {
1270 counter++; 1362 counter++;
1271 throw 2 + ex; 1363 throw 2 + ex;
1272 counter++; 1364 counter++;
1273 } 1365 }
1274 counter++; 1366 counter++;
1275 } 1367 }
1276 resetOptAndAssertThrowsWith(44, f); 1368 resetOptAndAssertThrowsWith(44, f);
1277 assertEquals(3, counter); 1369 assertEquals(3, counter);
1278 1370
1279 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1371 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1280 // doCatch, catchWithLocal, catchThrows, deopt] 1372 // doCatch, catchWithLocal, catchThrows, deopt]
1281 1373
1282 f = function f___2_t__lc_lt____d () { 1374 f = function f___3__t__lc_lt____d () {
1283 var local = 3; 1375 var local = 888;
1284 deopt = true; 1376 deopt = true;
1285 try { 1377 try {
1286 counter++; 1378 counter++;
1287 local += invertFunctionCall(increaseAndReturn15); 1379 local += 4 + invertFunctionCall(increaseAndReturn15);
1288 counter++; 1380 counter++;
1289 } catch (ex) { 1381 } catch (ex) {
1290 counter++; 1382 counter++;
1291 throw 2 + ex; 1383 throw 2 + ex;
1292 counter++; 1384 counter++;
1293 } 1385 }
1294 counter++; 1386 counter++;
1295 } 1387 }
1296 resetOptAndAssertThrowsWith(44, f); 1388 resetOptAndAssertThrowsWith(44, f);
1297 assertEquals(3, counter); 1389 assertEquals(3, counter);
1298 1390
1299 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1391 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1300 // doCatch, catchWithLocal, catchThrows, endReturnLocal] 1392 // doCatch, catchWithLocal, catchThrows, endReturnLocal]
1301 1393
1302 f = function f___2_t__lc_lt___l_ () { 1394 f = function f___3__t__lc_lt___l_ () {
1303 var local = 3; 1395 var local = 888;
1304 deopt = false; 1396 deopt = false;
1305 try { 1397 try {
1306 counter++; 1398 counter++;
1307 local += invertFunctionCall(increaseAndReturn15); 1399 local += 4 + invertFunctionCall(increaseAndReturn15);
1308 counter++; 1400 counter++;
1309 } catch (ex) { 1401 } catch (ex) {
1310 counter++; 1402 counter++;
1311 throw 2 + ex; 1403 throw 2 + ex;
1312 counter++; 1404 counter++;
1313 } 1405 }
1314 counter++; 1406 counter++;
1315 return 5 + local; 1407 return 5 + local;
1316 } 1408 }
1317 resetOptAndAssertThrowsWith(44, f); 1409 resetOptAndAssertThrowsWith(44, f);
1318 assertEquals(3, counter); 1410 assertEquals(3, counter);
1319 1411
1320 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1412 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1321 // doCatch, catchWithLocal, catchThrows, endReturnLocal, deopt] 1413 // doCatch, catchWithLocal, catchThrows, endReturnLocal, deopt]
1322 1414
1323 f = function f___2_t__lc_lt___ld () { 1415 f = function f___3__t__lc_lt___ld () {
1324 var local = 3; 1416 var local = 888;
1325 deopt = true; 1417 deopt = true;
1326 try { 1418 try {
1327 counter++; 1419 counter++;
1328 local += invertFunctionCall(increaseAndReturn15); 1420 local += 4 + invertFunctionCall(increaseAndReturn15);
1329 counter++; 1421 counter++;
1330 } catch (ex) { 1422 } catch (ex) {
1331 counter++; 1423 counter++;
1332 throw 2 + ex; 1424 throw 2 + ex;
1333 counter++; 1425 counter++;
1334 } 1426 }
1335 counter++; 1427 counter++;
1336 return 5 + local; 1428 return 5 + local;
1337 } 1429 }
1338 resetOptAndAssertThrowsWith(44, f); 1430 resetOptAndAssertThrowsWith(44, f);
1339 assertEquals(3, counter); 1431 assertEquals(3, counter);
1340 1432
1341 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1433 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1342 // doCatch, catchReturns] 1434 // doCatch, catchReturns]
1343 1435
1344 f = function f___2_t__lcr_______ () { 1436 f = function f___3__t__lcr_______ () {
1345 var local = 3; 1437 var local = 888;
1346 deopt = false; 1438 deopt = false;
1347 try { 1439 try {
1348 counter++; 1440 counter++;
1349 local += invertFunctionCall(increaseAndReturn15); 1441 local += 4 + invertFunctionCall(increaseAndReturn15);
1350 counter++; 1442 counter++;
1351 } catch (ex) { 1443 } catch (ex) {
1352 counter++; 1444 counter++;
1353 return 2 + ex; 1445 return 2 + ex;
1354 counter++; 1446 counter++;
1355 } 1447 }
1356 counter++; 1448 counter++;
1357 } 1449 }
1358 resetOptAndAssertResultEquals(44, f); 1450 resetOptAndAssertResultEquals(44, f);
1359 assertEquals(3, counter); 1451 assertEquals(3, counter);
1360 1452
1361 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1453 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1362 // doCatch, catchReturns, deopt] 1454 // doCatch, catchReturns, deopt]
1363 1455
1364 f = function f___2_t__lcr______d () { 1456 f = function f___3__t__lcr______d () {
1365 var local = 3; 1457 var local = 888;
1366 deopt = true; 1458 deopt = true;
1367 try { 1459 try {
1368 counter++; 1460 counter++;
1369 local += invertFunctionCall(increaseAndReturn15); 1461 local += 4 + invertFunctionCall(increaseAndReturn15);
1370 counter++; 1462 counter++;
1371 } catch (ex) { 1463 } catch (ex) {
1372 counter++; 1464 counter++;
1373 return 2 + ex; 1465 return 2 + ex;
1374 counter++; 1466 counter++;
1375 } 1467 }
1376 counter++; 1468 counter++;
1377 } 1469 }
1378 resetOptAndAssertResultEquals(44, f); 1470 resetOptAndAssertResultEquals(44, f);
1379 assertEquals(3, counter); 1471 assertEquals(3, counter);
1380 1472
1381 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1473 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1382 // doCatch, catchReturns, endReturnLocal] 1474 // doCatch, catchReturns, endReturnLocal]
1383 1475
1384 f = function f___2_t__lcr_____l_ () { 1476 f = function f___3__t__lcr_____l_ () {
1385 var local = 3; 1477 var local = 888;
1386 deopt = false; 1478 deopt = false;
1387 try { 1479 try {
1388 counter++; 1480 counter++;
1389 local += invertFunctionCall(increaseAndReturn15); 1481 local += 4 + invertFunctionCall(increaseAndReturn15);
1390 counter++; 1482 counter++;
1391 } catch (ex) { 1483 } catch (ex) {
1392 counter++; 1484 counter++;
1393 return 2 + ex; 1485 return 2 + ex;
1394 counter++; 1486 counter++;
1395 } 1487 }
1396 counter++; 1488 counter++;
1397 return 5 + local; 1489 return 5 + local;
1398 } 1490 }
1399 resetOptAndAssertResultEquals(44, f); 1491 resetOptAndAssertResultEquals(44, f);
1400 assertEquals(3, counter); 1492 assertEquals(3, counter);
1401 1493
1402 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1494 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1403 // doCatch, catchReturns, endReturnLocal, deopt] 1495 // doCatch, catchReturns, endReturnLocal, deopt]
1404 1496
1405 f = function f___2_t__lcr_____ld () { 1497 f = function f___3__t__lcr_____ld () {
1406 var local = 3; 1498 var local = 888;
1407 deopt = true; 1499 deopt = true;
1408 try { 1500 try {
1409 counter++; 1501 counter++;
1410 local += invertFunctionCall(increaseAndReturn15); 1502 local += 4 + invertFunctionCall(increaseAndReturn15);
1411 counter++; 1503 counter++;
1412 } catch (ex) { 1504 } catch (ex) {
1413 counter++; 1505 counter++;
1414 return 2 + ex; 1506 return 2 + ex;
1415 counter++; 1507 counter++;
1416 } 1508 }
1417 counter++; 1509 counter++;
1418 return 5 + local; 1510 return 5 + local;
1419 } 1511 }
1420 resetOptAndAssertResultEquals(44, f); 1512 resetOptAndAssertResultEquals(44, f);
1421 assertEquals(3, counter); 1513 assertEquals(3, counter);
1422 1514
1423 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1515 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1424 // doCatch, catchReturns, catchWithLocal] 1516 // doCatch, catchReturns, catchWithLocal]
1425 1517
1426 f = function f___2_t__lcrl______ () { 1518 f = function f___3__t__lcrl______ () {
1427 var local = 3; 1519 var local = 888;
1428 deopt = false; 1520 deopt = false;
1429 try { 1521 try {
1430 counter++; 1522 counter++;
1431 local += invertFunctionCall(increaseAndReturn15); 1523 local += 4 + invertFunctionCall(increaseAndReturn15);
1432 counter++; 1524 counter++;
1433 } catch (ex) { 1525 } catch (ex) {
1434 counter++; 1526 counter++;
1435 return 2 + local; 1527 return 2 + local;
1436 counter++; 1528 counter++;
1437 } 1529 }
1438 counter++; 1530 counter++;
1439 } 1531 }
1440 resetOptAndAssertResultEquals(5, f); 1532 resetOptAndAssertResultEquals(890, f);
1441 assertEquals(3, counter); 1533 assertEquals(3, counter);
1442 1534
1443 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1535 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1444 // doCatch, catchReturns, catchWithLocal, deopt] 1536 // doCatch, catchReturns, catchWithLocal, deopt]
1445 1537
1446 f = function f___2_t__lcrl_____d () { 1538 f = function f___3__t__lcrl_____d () {
1447 var local = 3; 1539 var local = 888;
1448 deopt = true; 1540 deopt = true;
1449 try { 1541 try {
1450 counter++; 1542 counter++;
1451 local += invertFunctionCall(increaseAndReturn15); 1543 local += 4 + invertFunctionCall(increaseAndReturn15);
1452 counter++; 1544 counter++;
1453 } catch (ex) { 1545 } catch (ex) {
1454 counter++; 1546 counter++;
1455 return 2 + local; 1547 return 2 + local;
1456 counter++; 1548 counter++;
1457 } 1549 }
1458 counter++; 1550 counter++;
1459 } 1551 }
1460 resetOptAndAssertResultEquals(5, f); 1552 resetOptAndAssertResultEquals(890, f);
1461 assertEquals(3, counter); 1553 assertEquals(3, counter);
1462 1554
1463 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1555 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1464 // doCatch, catchReturns, catchWithLocal, endReturnLocal] 1556 // doCatch, catchReturns, catchWithLocal, endReturnLocal]
1465 1557
1466 f = function f___2_t__lcrl____l_ () { 1558 f = function f___3__t__lcrl____l_ () {
1467 var local = 3; 1559 var local = 888;
1468 deopt = false; 1560 deopt = false;
1469 try { 1561 try {
1470 counter++; 1562 counter++;
1471 local += invertFunctionCall(increaseAndReturn15); 1563 local += 4 + invertFunctionCall(increaseAndReturn15);
1472 counter++; 1564 counter++;
1473 } catch (ex) { 1565 } catch (ex) {
1474 counter++; 1566 counter++;
1475 return 2 + local; 1567 return 2 + local;
1476 counter++; 1568 counter++;
1477 } 1569 }
1478 counter++; 1570 counter++;
1479 return 5 + local; 1571 return 5 + local;
1480 } 1572 }
1481 resetOptAndAssertResultEquals(5, f); 1573 resetOptAndAssertResultEquals(890, f);
1482 assertEquals(3, counter); 1574 assertEquals(3, counter);
1483 1575
1484 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal, 1576 // Variant flags: [alternativeFn3, tryThrows, tryResultToLocal,
1485 // doCatch, catchReturns, catchWithLocal, endReturnLocal, deopt] 1577 // doCatch, catchReturns, catchWithLocal, endReturnLocal, deopt]
1486 1578
1487 f = function f___2_t__lcrl____ld () { 1579 f = function f___3__t__lcrl____ld () {
1488 var local = 3; 1580 var local = 888;
1489 deopt = true; 1581 deopt = true;
1490 try { 1582 try {
1491 counter++; 1583 counter++;
1492 local += invertFunctionCall(increaseAndReturn15); 1584 local += 4 + invertFunctionCall(increaseAndReturn15);
1493 counter++; 1585 counter++;
1494 } catch (ex) { 1586 } catch (ex) {
1495 counter++; 1587 counter++;
1496 return 2 + local; 1588 return 2 + local;
1497 counter++; 1589 counter++;
1498 } 1590 }
1499 counter++; 1591 counter++;
1500 return 5 + local; 1592 return 5 + local;
1501 } 1593 }
1502 resetOptAndAssertResultEquals(5, f); 1594 resetOptAndAssertResultEquals(890, f);
1503 assertEquals(3, counter); 1595 assertEquals(3, counter);
1504 1596
1505 // Variant flags: [alternativeFn3, tryReturns, doCatch] 1597 // Variant flags: [alternativeFn4, tryReturns, doCatch]
1506 1598
1507 f = function f__3___r__c________ () { 1599 f = function f__4____r__c________ () {
1508 var local = 3; 1600 var local = 888;
1509 deopt = false; 1601 deopt = false;
1510 try { 1602 try {
1511 counter++; 1603 counter++;
1512 return (new increaseAndStore15Constructor()).x; 1604 return 4 + (new increaseAndStore15Constructor()).x;
1513 counter++; 1605 counter++;
1514 } catch (ex) { 1606 } catch (ex) {
1515 counter++; 1607 counter++;
1516 counter++; 1608 counter++;
1517 } 1609 }
1518 counter++; 1610 counter++;
1519 } 1611 }
1520 resetOptAndAssertResultEquals(15, f); 1612 resetOptAndAssertResultEquals(19, f);
1521 assertEquals(2, counter); 1613 assertEquals(2, counter);
1522 1614
1523 // Variant flags: [alternativeFn3, tryReturns, doCatch, deopt] 1615 // Variant flags: [alternativeFn4, tryReturns, doCatch, deopt]
1524 1616
1525 f = function f__3___r__c_______d () { 1617 f = function f__4____r__c_______d () {
1526 var local = 3; 1618 var local = 888;
1527 deopt = true; 1619 deopt = true;
1528 try { 1620 try {
1529 counter++; 1621 counter++;
1530 return (new increaseAndStore15Constructor()).x; 1622 return 4 + (new increaseAndStore15Constructor()).x;
1531 counter++; 1623 counter++;
1532 } catch (ex) { 1624 } catch (ex) {
1533 counter++; 1625 counter++;
1534 counter++; 1626 counter++;
1535 } 1627 }
1536 counter++; 1628 counter++;
1537 } 1629 }
1538 resetOptAndAssertResultEquals(15, f); 1630 resetOptAndAssertResultEquals(19, f);
1539 assertEquals(2, counter); 1631 assertEquals(2, counter);
1540 1632
1541 // Variant flags: [alternativeFn3, tryReturns, doCatch, catchThrows] 1633 // Variant flags: [alternativeFn4, tryReturns, doCatch, catchThrows]
1542 1634
1543 f = function f__3___r__c__t_____ () { 1635 f = function f__4____r__c__t_____ () {
1544 var local = 3; 1636 var local = 888;
1545 deopt = false; 1637 deopt = false;
1546 try { 1638 try {
1547 counter++; 1639 counter++;
1548 return (new increaseAndStore15Constructor()).x; 1640 return 4 + (new increaseAndStore15Constructor()).x;
1549 counter++; 1641 counter++;
1550 } catch (ex) { 1642 } catch (ex) {
1551 counter++; 1643 counter++;
1552 throw 2 + ex; 1644 throw 2 + ex;
1553 counter++; 1645 counter++;
1554 } 1646 }
1555 counter++; 1647 counter++;
1556 } 1648 }
1557 resetOptAndAssertResultEquals(15, f); 1649 resetOptAndAssertResultEquals(19, f);
1558 assertEquals(2, counter); 1650 assertEquals(2, counter);
1559 1651
1560 // Variant flags: [alternativeFn3, tryReturns, doCatch, catchThrows, 1652 // Variant flags: [alternativeFn4, tryReturns, doCatch, catchThrows,
1561 // deopt] 1653 // deopt]
1562 1654
1563 f = function f__3___r__c__t____d () { 1655 f = function f__4____r__c__t____d () {
1564 var local = 3; 1656 var local = 888;
1565 deopt = true; 1657 deopt = true;
1566 try { 1658 try {
1567 counter++; 1659 counter++;
1568 return (new increaseAndStore15Constructor()).x; 1660 return 4 + (new increaseAndStore15Constructor()).x;
1569 counter++; 1661 counter++;
1570 } catch (ex) { 1662 } catch (ex) {
1571 counter++; 1663 counter++;
1572 throw 2 + ex; 1664 throw 2 + ex;
1573 counter++; 1665 counter++;
1574 } 1666 }
1575 counter++; 1667 counter++;
1576 } 1668 }
1577 resetOptAndAssertResultEquals(15, f); 1669 resetOptAndAssertResultEquals(19, f);
1578 assertEquals(2, counter); 1670 assertEquals(2, counter);
1579 1671
1580 // Variant flags: [alternativeFn3, tryReturns, doCatch, 1672 // Variant flags: [alternativeFn4, tryReturns, doCatch,
1581 // catchReturns] 1673 // catchReturns]
1582 1674
1583 f = function f__3___r__cr_______ () { 1675 f = function f__4____r__cr_______ () {
1584 var local = 3; 1676 var local = 888;
1585 deopt = false; 1677 deopt = false;
1586 try { 1678 try {
1587 counter++; 1679 counter++;
1588 return (new increaseAndStore15Constructor()).x; 1680 return 4 + (new increaseAndStore15Constructor()).x;
1589 counter++; 1681 counter++;
1590 } catch (ex) { 1682 } catch (ex) {
1591 counter++; 1683 counter++;
1592 return 2 + ex; 1684 return 2 + ex;
1593 counter++; 1685 counter++;
1594 } 1686 }
1595 counter++; 1687 counter++;
1596 } 1688 }
1597 resetOptAndAssertResultEquals(15, f); 1689 resetOptAndAssertResultEquals(19, f);
1598 assertEquals(2, counter); 1690 assertEquals(2, counter);
1599 1691
1600 // Variant flags: [alternativeFn3, tryReturns, doCatch, 1692 // Variant flags: [alternativeFn4, tryReturns, doCatch,
1601 // catchReturns, deopt] 1693 // catchReturns, deopt]
1602 1694
1603 f = function f__3___r__cr______d () { 1695 f = function f__4____r__cr______d () {
1604 var local = 3; 1696 var local = 888;
1605 deopt = true; 1697 deopt = true;
1606 try { 1698 try {
1607 counter++; 1699 counter++;
1608 return (new increaseAndStore15Constructor()).x; 1700 return 4 + (new increaseAndStore15Constructor()).x;
1609 counter++; 1701 counter++;
1610 } catch (ex) { 1702 } catch (ex) {
1611 counter++; 1703 counter++;
1612 return 2 + ex; 1704 return 2 + ex;
1613 counter++; 1705 counter++;
1614 } 1706 }
1615 counter++; 1707 counter++;
1616 } 1708 }
1617 resetOptAndAssertResultEquals(15, f); 1709 resetOptAndAssertResultEquals(19, f);
1618 assertEquals(2, counter); 1710 assertEquals(2, counter);
1619 1711
1620 // Variant flags: [alternativeFn3, tryThrows, doCatch] 1712 // Variant flags: [alternativeFn4, tryThrows, doCatch]
1621 1713
1622 f = function f__3__t___c________ () { 1714 f = function f__4___t___c________ () {
1623 var local = 3; 1715 var local = 888;
1624 deopt = false; 1716 deopt = false;
1625 try { 1717 try {
1626 counter++; 1718 counter++;
1627 return (new increaseAndThrow42Constructor()).x; 1719 return 4 + (new increaseAndThrow42Constructor()).x;
1628 counter++; 1720 counter++;
1629 } catch (ex) { 1721 } catch (ex) {
1630 counter++; 1722 counter++;
1631 counter++; 1723 counter++;
1632 } 1724 }
1633 counter++; 1725 counter++;
1634 } 1726 }
1635 resetOptAndAssertResultEquals(undefined, f); 1727 resetOptAndAssertResultEquals(undefined, f);
1636 assertEquals(5, counter); 1728 assertEquals(5, counter);
1637 1729
1638 // Variant flags: [alternativeFn3, tryThrows, doCatch, deopt] 1730 // Variant flags: [alternativeFn4, tryThrows, doCatch, deopt]
1639 1731
1640 f = function f__3__t___c_______d () { 1732 f = function f__4___t___c_______d () {
1641 var local = 3; 1733 var local = 888;
1642 deopt = true; 1734 deopt = true;
1643 try { 1735 try {
1644 counter++; 1736 counter++;
1645 return (new increaseAndThrow42Constructor()).x; 1737 return 4 + (new increaseAndThrow42Constructor()).x;
1646 counter++; 1738 counter++;
1647 } catch (ex) { 1739 } catch (ex) {
1648 counter++; 1740 counter++;
1649 counter++; 1741 counter++;
1650 } 1742 }
1651 counter++; 1743 counter++;
1652 } 1744 }
1653 resetOptAndAssertResultEquals(undefined, f); 1745 resetOptAndAssertResultEquals(undefined, f);
1654 assertEquals(5, counter); 1746 assertEquals(5, counter);
1655 1747
1656 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchThrows] 1748 // Variant flags: [alternativeFn4, tryThrows, doCatch, catchThrows]
1657 1749
1658 f = function f__3__t___c__t_____ () { 1750 f = function f__4___t___c__t_____ () {
1659 var local = 3; 1751 var local = 888;
1660 deopt = false; 1752 deopt = false;
1661 try { 1753 try {
1662 counter++; 1754 counter++;
1663 return (new increaseAndThrow42Constructor()).x; 1755 return 4 + (new increaseAndThrow42Constructor()).x;
1664 counter++; 1756 counter++;
1665 } catch (ex) { 1757 } catch (ex) {
1666 counter++; 1758 counter++;
1667 throw 2 + ex; 1759 throw 2 + ex;
1668 counter++; 1760 counter++;
1669 } 1761 }
1670 counter++; 1762 counter++;
1671 } 1763 }
1672 resetOptAndAssertThrowsWith(44, f); 1764 resetOptAndAssertThrowsWith(44, f);
1673 assertEquals(3, counter); 1765 assertEquals(3, counter);
1674 1766
1675 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchThrows, 1767 // Variant flags: [alternativeFn4, tryThrows, doCatch, catchThrows,
1676 // deopt] 1768 // deopt]
1677 1769
1678 f = function f__3__t___c__t____d () { 1770 f = function f__4___t___c__t____d () {
1679 var local = 3; 1771 var local = 888;
1680 deopt = true; 1772 deopt = true;
1681 try { 1773 try {
1682 counter++; 1774 counter++;
1683 return (new increaseAndThrow42Constructor()).x; 1775 return 4 + (new increaseAndThrow42Constructor()).x;
1684 counter++; 1776 counter++;
1685 } catch (ex) { 1777 } catch (ex) {
1686 counter++; 1778 counter++;
1687 throw 2 + ex; 1779 throw 2 + ex;
1688 counter++; 1780 counter++;
1689 } 1781 }
1690 counter++; 1782 counter++;
1691 } 1783 }
1692 resetOptAndAssertThrowsWith(44, f); 1784 resetOptAndAssertThrowsWith(44, f);
1693 assertEquals(3, counter); 1785 assertEquals(3, counter);
1694 1786
1695 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchReturns] 1787 // Variant flags: [alternativeFn4, tryThrows, doCatch, catchReturns]
1696 1788
1697 f = function f__3__t___cr_______ () { 1789 f = function f__4___t___cr_______ () {
1698 var local = 3; 1790 var local = 888;
1699 deopt = false; 1791 deopt = false;
1700 try { 1792 try {
1701 counter++; 1793 counter++;
1702 return (new increaseAndThrow42Constructor()).x; 1794 return 4 + (new increaseAndThrow42Constructor()).x;
1703 counter++; 1795 counter++;
1704 } catch (ex) { 1796 } catch (ex) {
1705 counter++; 1797 counter++;
1706 return 2 + ex; 1798 return 2 + ex;
1707 counter++; 1799 counter++;
1708 } 1800 }
1709 counter++; 1801 counter++;
1710 } 1802 }
1711 resetOptAndAssertResultEquals(44, f); 1803 resetOptAndAssertResultEquals(44, f);
1712 assertEquals(3, counter); 1804 assertEquals(3, counter);
1713 1805
1714 // Variant flags: [alternativeFn3, tryThrows, doCatch, catchReturns, 1806 // Variant flags: [alternativeFn4, tryThrows, doCatch, catchReturns,
1715 // deopt] 1807 // deopt]
1716 1808
1717 f = function f__3__t___cr______d () { 1809 f = function f__4___t___cr______d () {
1718 var local = 3; 1810 var local = 888;
1719 deopt = true; 1811 deopt = true;
1720 try { 1812 try {
1721 counter++; 1813 counter++;
1722 return (new increaseAndThrow42Constructor()).x; 1814 return 4 + (new increaseAndThrow42Constructor()).x;
1723 counter++; 1815 counter++;
1724 } catch (ex) { 1816 } catch (ex) {
1725 counter++; 1817 counter++;
1726 return 2 + ex; 1818 return 2 + ex;
1727 counter++; 1819 counter++;
1728 } 1820 }
1729 counter++; 1821 counter++;
1730 } 1822 }
1731 resetOptAndAssertResultEquals(44, f); 1823 resetOptAndAssertResultEquals(44, f);
1732 assertEquals(3, counter); 1824 assertEquals(3, counter);
1733 1825
1734 // Variant flags: [alternativeFn4, tryReturns, doCatch] 1826 // Variant flags: [alternativeFn5, tryReturns, doCatch]
1735 1827
1736 f = function f_4____r__c________ () { 1828 f = function f_5_____r__c________ () {
1737 var local = 3; 1829 var local = 888;
1738 deopt = false; 1830 deopt = false;
1739 try { 1831 try {
1740 counter++; 1832 counter++;
1741 return magic.prop /* returns 15 */; 1833 return 4 + magic.prop /* returns 15 */;
1742 counter++; 1834 counter++;
1743 } catch (ex) { 1835 } catch (ex) {
1744 counter++; 1836 counter++;
1745 counter++; 1837 counter++;
1746 } 1838 }
1747 counter++; 1839 counter++;
1748 } 1840 }
1749 resetOptAndAssertResultEquals(15, f); 1841 resetOptAndAssertResultEquals(19, f);
1750 assertEquals(2, counter); 1842 assertEquals(2, counter);
1751 1843
1752 // Variant flags: [alternativeFn4, tryReturns, doCatch, deopt] 1844 // Variant flags: [alternativeFn5, tryReturns, doCatch, deopt]
1753 1845
1754 f = function f_4____r__c_______d () { 1846 f = function f_5_____r__c_______d () {
1755 var local = 3; 1847 var local = 888;
1756 deopt = true; 1848 deopt = true;
1757 try { 1849 try {
1758 counter++; 1850 counter++;
1759 return magic.prop /* returns 15 */; 1851 return 4 + magic.prop /* returns 15 */;
1760 counter++; 1852 counter++;
1761 } catch (ex) { 1853 } catch (ex) {
1762 counter++; 1854 counter++;
1763 counter++; 1855 counter++;
1764 } 1856 }
1765 counter++; 1857 counter++;
1766 } 1858 }
1767 resetOptAndAssertResultEquals(15, f); 1859 resetOptAndAssertResultEquals(19, f);
1768 assertEquals(2, counter); 1860 assertEquals(2, counter);
1769 1861
1770 // Variant flags: [alternativeFn4, tryReturns, doCatch, catchThrows] 1862 // Variant flags: [alternativeFn5, tryReturns, doCatch, catchThrows]
1771 1863
1772 f = function f_4____r__c__t_____ () { 1864 f = function f_5_____r__c__t_____ () {
1773 var local = 3; 1865 var local = 888;
1774 deopt = false; 1866 deopt = false;
1775 try { 1867 try {
1776 counter++; 1868 counter++;
1777 return magic.prop /* returns 15 */; 1869 return 4 + magic.prop /* returns 15 */;
1778 counter++; 1870 counter++;
1779 } catch (ex) { 1871 } catch (ex) {
1780 counter++; 1872 counter++;
1781 throw 2 + ex; 1873 throw 2 + ex;
1782 counter++; 1874 counter++;
1783 } 1875 }
1784 counter++; 1876 counter++;
1785 } 1877 }
1786 resetOptAndAssertResultEquals(15, f); 1878 resetOptAndAssertResultEquals(19, f);
1787 assertEquals(2, counter); 1879 assertEquals(2, counter);
1788 1880
1789 // Variant flags: [alternativeFn4, tryReturns, doCatch, catchThrows, 1881 // Variant flags: [alternativeFn5, tryReturns, doCatch, catchThrows,
1790 // deopt] 1882 // deopt]
1791 1883
1792 f = function f_4____r__c__t____d () { 1884 f = function f_5_____r__c__t____d () {
1793 var local = 3; 1885 var local = 888;
1794 deopt = true; 1886 deopt = true;
1795 try { 1887 try {
1796 counter++; 1888 counter++;
1797 return magic.prop /* returns 15 */; 1889 return 4 + magic.prop /* returns 15 */;
1798 counter++; 1890 counter++;
1799 } catch (ex) { 1891 } catch (ex) {
1800 counter++; 1892 counter++;
1801 throw 2 + ex; 1893 throw 2 + ex;
1802 counter++; 1894 counter++;
1803 } 1895 }
1804 counter++; 1896 counter++;
1805 } 1897 }
1806 resetOptAndAssertResultEquals(15, f); 1898 resetOptAndAssertResultEquals(19, f);
1807 assertEquals(2, counter); 1899 assertEquals(2, counter);
1808 1900
1809 // Variant flags: [alternativeFn4, tryReturns, doCatch, 1901 // Variant flags: [alternativeFn5, tryReturns, doCatch,
1810 // catchReturns] 1902 // catchReturns]
1811 1903
1812 f = function f_4____r__cr_______ () { 1904 f = function f_5_____r__cr_______ () {
1813 var local = 3; 1905 var local = 888;
1814 deopt = false; 1906 deopt = false;
1815 try { 1907 try {
1816 counter++; 1908 counter++;
1817 return magic.prop /* returns 15 */; 1909 return 4 + magic.prop /* returns 15 */;
1818 counter++; 1910 counter++;
1819 } catch (ex) { 1911 } catch (ex) {
1820 counter++; 1912 counter++;
1821 return 2 + ex; 1913 return 2 + ex;
1822 counter++; 1914 counter++;
1823 } 1915 }
1824 counter++; 1916 counter++;
1825 } 1917 }
1826 resetOptAndAssertResultEquals(15, f); 1918 resetOptAndAssertResultEquals(19, f);
1827 assertEquals(2, counter); 1919 assertEquals(2, counter);
1828 1920
1829 // Variant flags: [alternativeFn4, tryReturns, doCatch, 1921 // Variant flags: [alternativeFn5, tryReturns, doCatch,
1830 // catchReturns, deopt] 1922 // catchReturns, deopt]
1831 1923
1832 f = function f_4____r__cr______d () { 1924 f = function f_5_____r__cr______d () {
1833 var local = 3; 1925 var local = 888;
1834 deopt = true; 1926 deopt = true;
1835 try { 1927 try {
1836 counter++; 1928 counter++;
1837 return magic.prop /* returns 15 */; 1929 return 4 + magic.prop /* returns 15 */;
1838 counter++; 1930 counter++;
1839 } catch (ex) { 1931 } catch (ex) {
1840 counter++; 1932 counter++;
1841 return 2 + ex; 1933 return 2 + ex;
1842 counter++; 1934 counter++;
1843 } 1935 }
1844 counter++; 1936 counter++;
1845 } 1937 }
1846 resetOptAndAssertResultEquals(15, f); 1938 resetOptAndAssertResultEquals(19, f);
1847 assertEquals(2, counter); 1939 assertEquals(2, counter);
1848 1940
1849 // Variant flags: [alternativeFn4, tryThrows, doCatch] 1941 // Variant flags: [alternativeFn5, tryThrows, doCatch]
1850 1942
1851 f = function f_4___t___c________ () { 1943 f = function f_5____t___c________ () {
1852 var local = 3; 1944 var local = 888;
1853 deopt = false; 1945 deopt = false;
1854 try { 1946 try {
1855 counter++; 1947 counter++;
1856 return (magic.prop = 37 /* throws 42 */); 1948 return 4 + (magic.prop = 37 /* throws 42 */);
1857 counter++; 1949 counter++;
1858 } catch (ex) { 1950 } catch (ex) {
1859 counter++; 1951 counter++;
1860 counter++; 1952 counter++;
1861 } 1953 }
1862 counter++; 1954 counter++;
1863 } 1955 }
1864 resetOptAndAssertResultEquals(undefined, f); 1956 resetOptAndAssertResultEquals(undefined, f);
1865 assertEquals(5, counter); 1957 assertEquals(5, counter);
1866 1958
1867 // Variant flags: [alternativeFn4, tryThrows, doCatch, deopt] 1959 // Variant flags: [alternativeFn5, tryThrows, doCatch, deopt]
1868 1960
1869 f = function f_4___t___c_______d () { 1961 f = function f_5____t___c_______d () {
1870 var local = 3; 1962 var local = 888;
1871 deopt = true; 1963 deopt = true;
1872 try { 1964 try {
1873 counter++; 1965 counter++;
1874 return (magic.prop = 37 /* throws 42 */); 1966 return 4 + (magic.prop = 37 /* throws 42 */);
1875 counter++; 1967 counter++;
1876 } catch (ex) { 1968 } catch (ex) {
1877 counter++; 1969 counter++;
1878 counter++; 1970 counter++;
1879 } 1971 }
1880 counter++; 1972 counter++;
1881 } 1973 }
1882 resetOptAndAssertResultEquals(undefined, f); 1974 resetOptAndAssertResultEquals(undefined, f);
1883 assertEquals(5, counter); 1975 assertEquals(5, counter);
1884 1976
1885 // Variant flags: [alternativeFn4, tryThrows, doCatch, catchThrows] 1977 // Variant flags: [alternativeFn5, tryThrows, doCatch, catchThrows]
1886 1978
1887 f = function f_4___t___c__t_____ () { 1979 f = function f_5____t___c__t_____ () {
1888 var local = 3; 1980 var local = 888;
1889 deopt = false; 1981 deopt = false;
1890 try { 1982 try {
1891 counter++; 1983 counter++;
1892 return (magic.prop = 37 /* throws 42 */); 1984 return 4 + (magic.prop = 37 /* throws 42 */);
1893 counter++; 1985 counter++;
1894 } catch (ex) { 1986 } catch (ex) {
1895 counter++; 1987 counter++;
1896 throw 2 + ex; 1988 throw 2 + ex;
1897 counter++; 1989 counter++;
1898 } 1990 }
1899 counter++; 1991 counter++;
1900 } 1992 }
1901 resetOptAndAssertThrowsWith(44, f); 1993 resetOptAndAssertThrowsWith(44, f);
1902 assertEquals(3, counter); 1994 assertEquals(3, counter);
1903 1995
1904 // Variant flags: [alternativeFn4, tryThrows, doCatch, catchThrows, 1996 // Variant flags: [alternativeFn5, tryThrows, doCatch, catchThrows,
1905 // deopt] 1997 // deopt]
1906 1998
1907 f = function f_4___t___c__t____d () { 1999 f = function f_5____t___c__t____d () {
1908 var local = 3; 2000 var local = 888;
1909 deopt = true; 2001 deopt = true;
1910 try { 2002 try {
1911 counter++; 2003 counter++;
1912 return (magic.prop = 37 /* throws 42 */); 2004 return 4 + (magic.prop = 37 /* throws 42 */);
1913 counter++; 2005 counter++;
1914 } catch (ex) { 2006 } catch (ex) {
1915 counter++; 2007 counter++;
1916 throw 2 + ex; 2008 throw 2 + ex;
1917 counter++; 2009 counter++;
1918 } 2010 }
1919 counter++; 2011 counter++;
1920 } 2012 }
1921 resetOptAndAssertThrowsWith(44, f); 2013 resetOptAndAssertThrowsWith(44, f);
1922 assertEquals(3, counter); 2014 assertEquals(3, counter);
1923 2015
1924 // Variant flags: [alternativeFn4, tryThrows, doCatch, catchReturns] 2016 // Variant flags: [alternativeFn5, tryThrows, doCatch, catchReturns]
1925 2017
1926 f = function f_4___t___cr_______ () { 2018 f = function f_5____t___cr_______ () {
1927 var local = 3; 2019 var local = 888;
1928 deopt = false; 2020 deopt = false;
1929 try { 2021 try {
1930 counter++; 2022 counter++;
1931 return (magic.prop = 37 /* throws 42 */); 2023 return 4 + (magic.prop = 37 /* throws 42 */);
1932 counter++; 2024 counter++;
1933 } catch (ex) { 2025 } catch (ex) {
1934 counter++; 2026 counter++;
1935 return 2 + ex; 2027 return 2 + ex;
1936 counter++; 2028 counter++;
1937 } 2029 }
1938 counter++; 2030 counter++;
1939 } 2031 }
1940 resetOptAndAssertResultEquals(44, f); 2032 resetOptAndAssertResultEquals(44, f);
1941 assertEquals(3, counter); 2033 assertEquals(3, counter);
1942 2034
1943 // Variant flags: [alternativeFn4, tryThrows, doCatch, catchReturns, 2035 // Variant flags: [alternativeFn5, tryThrows, doCatch, catchReturns,
1944 // deopt] 2036 // deopt]
1945 2037
1946 f = function f_4___t___cr______d () { 2038 f = function f_5____t___cr______d () {
1947 var local = 3; 2039 var local = 888;
1948 deopt = true; 2040 deopt = true;
1949 try { 2041 try {
1950 counter++; 2042 counter++;
1951 return (magic.prop = 37 /* throws 42 */); 2043 return 4 + (magic.prop = 37 /* throws 42 */);
1952 counter++; 2044 counter++;
1953 } catch (ex) { 2045 } catch (ex) {
1954 counter++; 2046 counter++;
1955 return 2 + ex; 2047 return 2 + ex;
1956 counter++; 2048 counter++;
1957 } 2049 }
1958 counter++; 2050 counter++;
1959 } 2051 }
1960 resetOptAndAssertResultEquals(44, f); 2052 resetOptAndAssertResultEquals(44, f);
1961 assertEquals(3, counter); 2053 assertEquals(3, counter);
1962 2054
1963 } 2055 }
1964 %NeverOptimizeFunction(runThisShard); 2056 %NeverOptimizeFunction(runThisShard);
1965 2057
1966 // 92 tests in this shard. 2058 // 95 tests in this shard.
1967 // 186 tests up to here. 2059 // 192 tests up to here.
1968 2060
1969 runThisShard(); 2061 runThisShard();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698