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

Side by Side Diff: test/mjsunit/compiler/inline-exception-1.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
« no previous file with comments | « no previous file | test/mjsunit/compiler/inline-exception-2.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Shard 1. 1 // Shard 1.
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() {
Jarin 2016/08/29 09:48:07 The "noopt" in the name is confusing because incre
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: [tryReturns, doFinally] 159 // Variant flags: [tryReturns, doFinally]
128 160
129 f = function f______r______f____ () { 161 f = function f_______r______f____ () {
130 var local = 3; 162 var local = 888;
131 deopt = false; 163 deopt = false;
132 try { 164 try {
133 counter++; 165 counter++;
134 return increaseAndReturn15(); 166 return 4 + increaseAndReturn15();
135 counter++; 167 counter++;
136 } finally { 168 } finally {
137 counter++; 169 counter++;
138 local += 2; 170 local += 2;
139 counter++; 171 counter++;
140 } 172 }
141 counter++; 173 counter++;
142 } 174 }
143 resetOptAndAssertResultEquals(15, f); 175 resetOptAndAssertResultEquals(19, f);
144 assertEquals(4, counter); 176 assertEquals(4, counter);
145 177
146 // Variant flags: [tryReturns, doFinally, finallyThrows] 178 // Variant flags: [tryReturns, doFinally, finallyThrows]
147 179
148 f = function f______r______f_t__ () { 180 f = function f_______r______f_t__ () {
149 var local = 3; 181 var local = 888;
150 deopt = false; 182 deopt = false;
151 try { 183 try {
152 counter++; 184 counter++;
153 return increaseAndReturn15(); 185 return 4 + increaseAndReturn15();
154 counter++; 186 counter++;
155 } finally { 187 } finally {
156 counter++; 188 counter++;
157 throw 25; 189 throw 25;
158 counter++; 190 counter++;
159 } 191 }
160 counter++; 192 counter++;
161 } 193 }
162 resetOptAndAssertThrowsWith(25, f); 194 resetOptAndAssertThrowsWith(25, f);
163 assertEquals(3, counter); 195 assertEquals(3, counter);
164 196
165 // Variant flags: [tryReturns, doFinally, finallyReturns] 197 // Variant flags: [tryReturns, doFinally, finallyReturns]
166 198
167 f = function f______r______fr___ () { 199 f = function f_______r______fr___ () {
168 var local = 3; 200 var local = 888;
169 deopt = false; 201 deopt = false;
170 try { 202 try {
171 counter++; 203 counter++;
172 return increaseAndReturn15(); 204 return 4 + increaseAndReturn15();
173 counter++; 205 counter++;
174 } finally { 206 } finally {
175 counter++; 207 counter++;
176 return 3 + local; 208 return 3 + local;
177 counter++; 209 counter++;
178 } 210 }
179 counter++; 211 counter++;
180 } 212 }
181 resetOptAndAssertResultEquals(6, f); 213 resetOptAndAssertResultEquals(891, f);
182 assertEquals(3, counter); 214 assertEquals(3, counter);
183 215
184 // Variant flags: [tryReturns, doCatch] 216 // Variant flags: [tryReturns, doCatch]
185 217
186 f = function f______r__c________ () { 218 f = function f_______r__c________ () {
187 var local = 3; 219 var local = 888;
188 deopt = false; 220 deopt = false;
189 try { 221 try {
190 counter++; 222 counter++;
191 return increaseAndReturn15(); 223 return 4 + increaseAndReturn15();
192 counter++; 224 counter++;
193 } catch (ex) { 225 } catch (ex) {
194 counter++; 226 counter++;
195 counter++; 227 counter++;
196 } 228 }
197 counter++; 229 counter++;
198 } 230 }
199 resetOptAndAssertResultEquals(15, f); 231 resetOptAndAssertResultEquals(19, f);
200 assertEquals(2, counter); 232 assertEquals(2, counter);
201 233
202 // Variant flags: [tryReturns, doCatch, deopt] 234 // Variant flags: [tryReturns, doCatch, deopt]
203 235
204 f = function f______r__c_______d () { 236 f = function f_______r__c_______d () {
205 var local = 3; 237 var local = 888;
206 deopt = true; 238 deopt = true;
207 try { 239 try {
208 counter++; 240 counter++;
209 return increaseAndReturn15(); 241 return 4 + increaseAndReturn15();
210 counter++; 242 counter++;
211 } catch (ex) { 243 } catch (ex) {
212 counter++; 244 counter++;
213 counter++; 245 counter++;
214 } 246 }
215 counter++; 247 counter++;
216 } 248 }
217 resetOptAndAssertResultEquals(15, f); 249 resetOptAndAssertResultEquals(19, f);
218 assertEquals(2, counter); 250 assertEquals(2, counter);
219 251
220 // Variant flags: [tryReturns, doCatch, doFinally] 252 // Variant flags: [tryReturns, doCatch, doFinally]
221 253
222 f = function f______r__c___f____ () { 254 f = function f_______r__c___f____ () {
223 var local = 3; 255 var local = 888;
224 deopt = false; 256 deopt = false;
225 try { 257 try {
226 counter++; 258 counter++;
227 return increaseAndReturn15(); 259 return 4 + increaseAndReturn15();
228 counter++; 260 counter++;
229 } catch (ex) { 261 } catch (ex) {
230 counter++; 262 counter++;
231 counter++; 263 counter++;
232 } finally { 264 } finally {
233 counter++; 265 counter++;
234 local += 2; 266 local += 2;
235 counter++; 267 counter++;
236 } 268 }
237 counter++; 269 counter++;
238 } 270 }
239 resetOptAndAssertResultEquals(15, f); 271 resetOptAndAssertResultEquals(19, f);
240 assertEquals(4, counter); 272 assertEquals(4, counter);
241 273
242 // Variant flags: [tryReturns, doCatch, doFinally, finallyThrows] 274 // Variant flags: [tryReturns, doCatch, doFinally, finallyThrows]
243 275
244 f = function f______r__c___f_t__ () { 276 f = function f_______r__c___f_t__ () {
245 var local = 3; 277 var local = 888;
246 deopt = false; 278 deopt = false;
247 try { 279 try {
248 counter++; 280 counter++;
249 return increaseAndReturn15(); 281 return 4 + increaseAndReturn15();
250 counter++; 282 counter++;
251 } catch (ex) { 283 } catch (ex) {
252 counter++; 284 counter++;
253 counter++; 285 counter++;
254 } finally { 286 } finally {
255 counter++; 287 counter++;
256 throw 25; 288 throw 25;
257 counter++; 289 counter++;
258 } 290 }
259 counter++; 291 counter++;
260 } 292 }
261 resetOptAndAssertThrowsWith(25, f); 293 resetOptAndAssertThrowsWith(25, f);
262 assertEquals(3, counter); 294 assertEquals(3, counter);
263 295
264 // Variant flags: [tryReturns, doCatch, doFinally, finallyReturns] 296 // Variant flags: [tryReturns, doCatch, doFinally, finallyReturns]
265 297
266 f = function f______r__c___fr___ () { 298 f = function f_______r__c___fr___ () {
267 var local = 3; 299 var local = 888;
268 deopt = false; 300 deopt = false;
269 try { 301 try {
270 counter++; 302 counter++;
271 return increaseAndReturn15(); 303 return 4 + increaseAndReturn15();
272 counter++; 304 counter++;
273 } catch (ex) { 305 } catch (ex) {
274 counter++; 306 counter++;
275 counter++; 307 counter++;
276 } finally { 308 } finally {
277 counter++; 309 counter++;
278 return 3 + local; 310 return 3 + local;
279 counter++; 311 counter++;
280 } 312 }
281 counter++; 313 counter++;
282 } 314 }
283 resetOptAndAssertResultEquals(6, f); 315 resetOptAndAssertResultEquals(891, f);
284 assertEquals(3, counter); 316 assertEquals(3, counter);
285 317
286 // Variant flags: [tryReturns, doCatch, catchThrows] 318 // Variant flags: [tryReturns, doCatch, catchThrows]
287 319
288 f = function f______r__c__t_____ () { 320 f = function f_______r__c__t_____ () {
289 var local = 3; 321 var local = 888;
290 deopt = false; 322 deopt = false;
291 try { 323 try {
292 counter++; 324 counter++;
293 return increaseAndReturn15(); 325 return 4 + increaseAndReturn15();
294 counter++; 326 counter++;
295 } catch (ex) { 327 } catch (ex) {
296 counter++; 328 counter++;
297 throw 2 + ex; 329 throw 2 + ex;
298 counter++; 330 counter++;
299 } 331 }
300 counter++; 332 counter++;
301 } 333 }
302 resetOptAndAssertResultEquals(15, f); 334 resetOptAndAssertResultEquals(19, f);
303 assertEquals(2, counter); 335 assertEquals(2, counter);
304 336
305 // Variant flags: [tryReturns, doCatch, catchThrows, deopt] 337 // Variant flags: [tryReturns, doCatch, catchThrows, deopt]
306 338
307 f = function f______r__c__t____d () { 339 f = function f_______r__c__t____d () {
308 var local = 3; 340 var local = 888;
309 deopt = true; 341 deopt = true;
310 try { 342 try {
311 counter++; 343 counter++;
312 return increaseAndReturn15(); 344 return 4 + increaseAndReturn15();
313 counter++; 345 counter++;
314 } catch (ex) { 346 } catch (ex) {
315 counter++; 347 counter++;
316 throw 2 + ex; 348 throw 2 + ex;
317 counter++; 349 counter++;
318 } 350 }
319 counter++; 351 counter++;
320 } 352 }
321 resetOptAndAssertResultEquals(15, f); 353 resetOptAndAssertResultEquals(19, f);
322 assertEquals(2, counter); 354 assertEquals(2, counter);
323 355
324 // Variant flags: [tryReturns, doCatch, catchThrows, doFinally] 356 // Variant flags: [tryReturns, doCatch, catchThrows, doFinally]
325 357
326 f = function f______r__c__tf____ () { 358 f = function f_______r__c__tf____ () {
327 var local = 3; 359 var local = 888;
328 deopt = false; 360 deopt = false;
329 try { 361 try {
330 counter++; 362 counter++;
331 return increaseAndReturn15(); 363 return 4 + increaseAndReturn15();
332 counter++; 364 counter++;
333 } catch (ex) { 365 } catch (ex) {
334 counter++; 366 counter++;
335 throw 2 + ex; 367 throw 2 + ex;
336 counter++; 368 counter++;
337 } finally { 369 } finally {
338 counter++; 370 counter++;
339 local += 2; 371 local += 2;
340 counter++; 372 counter++;
341 } 373 }
342 counter++; 374 counter++;
343 } 375 }
344 resetOptAndAssertResultEquals(15, f); 376 resetOptAndAssertResultEquals(19, f);
345 assertEquals(4, counter); 377 assertEquals(4, counter);
346 378
347 // Variant flags: [tryReturns, doCatch, catchThrows, doFinally, 379 // Variant flags: [tryReturns, doCatch, catchThrows, doFinally,
348 // finallyThrows] 380 // finallyThrows]
349 381
350 f = function f______r__c__tf_t__ () { 382 f = function f_______r__c__tf_t__ () {
351 var local = 3; 383 var local = 888;
352 deopt = false; 384 deopt = false;
353 try { 385 try {
354 counter++; 386 counter++;
355 return increaseAndReturn15(); 387 return 4 + increaseAndReturn15();
356 counter++; 388 counter++;
357 } catch (ex) { 389 } catch (ex) {
358 counter++; 390 counter++;
359 throw 2 + ex; 391 throw 2 + ex;
360 counter++; 392 counter++;
361 } finally { 393 } finally {
362 counter++; 394 counter++;
363 throw 25; 395 throw 25;
364 counter++; 396 counter++;
365 } 397 }
366 counter++; 398 counter++;
367 } 399 }
368 resetOptAndAssertThrowsWith(25, f); 400 resetOptAndAssertThrowsWith(25, f);
369 assertEquals(3, counter); 401 assertEquals(3, counter);
370 402
371 // Variant flags: [tryReturns, doCatch, catchThrows, doFinally, 403 // Variant flags: [tryReturns, doCatch, catchThrows, doFinally,
372 // finallyReturns] 404 // finallyReturns]
373 405
374 f = function f______r__c__tfr___ () { 406 f = function f_______r__c__tfr___ () {
375 var local = 3; 407 var local = 888;
376 deopt = false; 408 deopt = false;
377 try { 409 try {
378 counter++; 410 counter++;
379 return increaseAndReturn15(); 411 return 4 + increaseAndReturn15();
380 counter++; 412 counter++;
381 } catch (ex) { 413 } catch (ex) {
382 counter++; 414 counter++;
383 throw 2 + ex; 415 throw 2 + ex;
384 counter++; 416 counter++;
385 } finally { 417 } finally {
386 counter++; 418 counter++;
387 return 3 + local; 419 return 3 + local;
388 counter++; 420 counter++;
389 } 421 }
390 counter++; 422 counter++;
391 } 423 }
392 resetOptAndAssertResultEquals(6, f); 424 resetOptAndAssertResultEquals(891, f);
393 assertEquals(3, counter); 425 assertEquals(3, counter);
394 426
395 // Variant flags: [tryReturns, doCatch, catchReturns] 427 // Variant flags: [tryReturns, doCatch, catchReturns]
396 428
397 f = function f______r__cr_______ () { 429 f = function f_______r__cr_______ () {
398 var local = 3; 430 var local = 888;
399 deopt = false; 431 deopt = false;
400 try { 432 try {
401 counter++; 433 counter++;
402 return increaseAndReturn15(); 434 return 4 + increaseAndReturn15();
403 counter++; 435 counter++;
404 } catch (ex) { 436 } catch (ex) {
405 counter++; 437 counter++;
406 return 2 + ex; 438 return 2 + ex;
407 counter++; 439 counter++;
408 } 440 }
409 counter++; 441 counter++;
410 } 442 }
411 resetOptAndAssertResultEquals(15, f); 443 resetOptAndAssertResultEquals(19, f);
412 assertEquals(2, counter); 444 assertEquals(2, counter);
413 445
414 // Variant flags: [tryReturns, doCatch, catchReturns, deopt] 446 // Variant flags: [tryReturns, doCatch, catchReturns, deopt]
415 447
416 f = function f______r__cr______d () { 448 f = function f_______r__cr______d () {
417 var local = 3; 449 var local = 888;
418 deopt = true; 450 deopt = true;
419 try { 451 try {
420 counter++; 452 counter++;
421 return increaseAndReturn15(); 453 return 4 + increaseAndReturn15();
422 counter++; 454 counter++;
423 } catch (ex) { 455 } catch (ex) {
424 counter++; 456 counter++;
425 return 2 + ex; 457 return 2 + ex;
426 counter++; 458 counter++;
427 } 459 }
428 counter++; 460 counter++;
429 } 461 }
430 resetOptAndAssertResultEquals(15, f); 462 resetOptAndAssertResultEquals(19, f);
431 assertEquals(2, counter); 463 assertEquals(2, counter);
432 464
433 // Variant flags: [tryReturns, doCatch, catchReturns, doFinally] 465 // Variant flags: [tryReturns, doCatch, catchReturns, doFinally]
434 466
435 f = function f______r__cr__f____ () { 467 f = function f_______r__cr__f____ () {
436 var local = 3; 468 var local = 888;
437 deopt = false; 469 deopt = false;
438 try { 470 try {
439 counter++; 471 counter++;
440 return increaseAndReturn15(); 472 return 4 + increaseAndReturn15();
441 counter++; 473 counter++;
442 } catch (ex) { 474 } catch (ex) {
443 counter++; 475 counter++;
444 return 2 + ex; 476 return 2 + ex;
445 counter++; 477 counter++;
446 } finally { 478 } finally {
447 counter++; 479 counter++;
448 local += 2; 480 local += 2;
449 counter++; 481 counter++;
450 } 482 }
451 counter++; 483 counter++;
452 } 484 }
453 resetOptAndAssertResultEquals(15, f); 485 resetOptAndAssertResultEquals(19, f);
454 assertEquals(4, counter); 486 assertEquals(4, counter);
455 487
456 // Variant flags: [tryReturns, doCatch, catchReturns, doFinally, 488 // Variant flags: [tryReturns, doCatch, catchReturns, doFinally,
457 // finallyThrows] 489 // finallyThrows]
458 490
459 f = function f______r__cr__f_t__ () { 491 f = function f_______r__cr__f_t__ () {
460 var local = 3; 492 var local = 888;
461 deopt = false; 493 deopt = false;
462 try { 494 try {
463 counter++; 495 counter++;
464 return increaseAndReturn15(); 496 return 4 + increaseAndReturn15();
465 counter++; 497 counter++;
466 } catch (ex) { 498 } catch (ex) {
467 counter++; 499 counter++;
468 return 2 + ex; 500 return 2 + ex;
469 counter++; 501 counter++;
470 } finally { 502 } finally {
471 counter++; 503 counter++;
472 throw 25; 504 throw 25;
473 counter++; 505 counter++;
474 } 506 }
475 counter++; 507 counter++;
476 } 508 }
477 resetOptAndAssertThrowsWith(25, f); 509 resetOptAndAssertThrowsWith(25, f);
478 assertEquals(3, counter); 510 assertEquals(3, counter);
479 511
480 // Variant flags: [tryReturns, doCatch, catchReturns, doFinally, 512 // Variant flags: [tryReturns, doCatch, catchReturns, doFinally,
481 // finallyReturns] 513 // finallyReturns]
482 514
483 f = function f______r__cr__fr___ () { 515 f = function f_______r__cr__fr___ () {
484 var local = 3; 516 var local = 888;
485 deopt = false; 517 deopt = false;
486 try { 518 try {
487 counter++; 519 counter++;
488 return increaseAndReturn15(); 520 return 4 + increaseAndReturn15();
489 counter++; 521 counter++;
490 } catch (ex) { 522 } catch (ex) {
491 counter++; 523 counter++;
492 return 2 + ex; 524 return 2 + ex;
493 counter++; 525 counter++;
494 } finally { 526 } finally {
495 counter++; 527 counter++;
496 return 3 + local; 528 return 3 + local;
497 counter++; 529 counter++;
498 } 530 }
499 counter++; 531 counter++;
500 } 532 }
501 resetOptAndAssertResultEquals(6, f); 533 resetOptAndAssertResultEquals(891, f);
502 assertEquals(3, counter); 534 assertEquals(3, counter);
503 535
504 // Variant flags: [tryThrows, doFinally] 536 // Variant flags: [tryThrows, doFinally]
505 537
506 f = function f_____t_______f____ () { 538 f = function f______t_______f____ () {
507 var local = 3; 539 var local = 888;
508 deopt = false; 540 deopt = false;
509 try { 541 try {
510 counter++; 542 counter++;
511 return increaseAndThrow42(); 543 return 4 + increaseAndThrow42();
512 counter++; 544 counter++;
513 } finally { 545 } finally {
514 counter++; 546 counter++;
515 local += 2; 547 local += 2;
516 counter++; 548 counter++;
517 } 549 }
518 counter++; 550 counter++;
519 } 551 }
520 resetOptAndAssertThrowsWith(42, f); 552 resetOptAndAssertThrowsWith(42, f);
521 assertEquals(4, counter); 553 assertEquals(4, counter);
522 554
523 // Variant flags: [tryThrows, doFinally, finallyThrows] 555 // Variant flags: [tryThrows, doFinally, finallyThrows]
524 556
525 f = function f_____t_______f_t__ () { 557 f = function f______t_______f_t__ () {
526 var local = 3; 558 var local = 888;
527 deopt = false; 559 deopt = false;
528 try { 560 try {
529 counter++; 561 counter++;
530 return increaseAndThrow42(); 562 return 4 + increaseAndThrow42();
531 counter++; 563 counter++;
532 } finally { 564 } finally {
533 counter++; 565 counter++;
534 throw 25; 566 throw 25;
535 counter++; 567 counter++;
536 } 568 }
537 counter++; 569 counter++;
538 } 570 }
539 resetOptAndAssertThrowsWith(25, f); 571 resetOptAndAssertThrowsWith(25, f);
540 assertEquals(3, counter); 572 assertEquals(3, counter);
541 573
542 // Variant flags: [tryThrows, doFinally, finallyReturns] 574 // Variant flags: [tryThrows, doFinally, finallyReturns]
543 575
544 f = function f_____t_______fr___ () { 576 f = function f______t_______fr___ () {
545 var local = 3; 577 var local = 888;
546 deopt = false; 578 deopt = false;
547 try { 579 try {
548 counter++; 580 counter++;
549 return increaseAndThrow42(); 581 return 4 + increaseAndThrow42();
550 counter++; 582 counter++;
551 } finally { 583 } finally {
552 counter++; 584 counter++;
553 return 3 + local; 585 return 3 + local;
554 counter++; 586 counter++;
555 } 587 }
556 counter++; 588 counter++;
557 } 589 }
558 resetOptAndAssertResultEquals(6, f); 590 resetOptAndAssertResultEquals(891, f);
559 assertEquals(3, counter); 591 assertEquals(3, counter);
560 592
561 // Variant flags: [tryThrows, doCatch] 593 // Variant flags: [tryThrows, doCatch]
562 594
563 f = function f_____t___c________ () { 595 f = function f______t___c________ () {
564 var local = 3; 596 var local = 888;
565 deopt = false; 597 deopt = false;
566 try { 598 try {
567 counter++; 599 counter++;
568 return increaseAndThrow42(); 600 return 4 + increaseAndThrow42();
569 counter++; 601 counter++;
570 } catch (ex) { 602 } catch (ex) {
571 counter++; 603 counter++;
572 counter++; 604 counter++;
573 } 605 }
574 counter++; 606 counter++;
575 } 607 }
576 resetOptAndAssertResultEquals(undefined, f); 608 resetOptAndAssertResultEquals(undefined, f);
577 assertEquals(5, counter); 609 assertEquals(5, counter);
578 610
579 // Variant flags: [tryThrows, doCatch, deopt] 611 // Variant flags: [tryThrows, doCatch, deopt]
580 612
581 f = function f_____t___c_______d () { 613 f = function f______t___c_______d () {
582 var local = 3; 614 var local = 888;
583 deopt = true; 615 deopt = true;
584 try { 616 try {
585 counter++; 617 counter++;
586 return increaseAndThrow42(); 618 return 4 + increaseAndThrow42();
587 counter++; 619 counter++;
588 } catch (ex) { 620 } catch (ex) {
589 counter++; 621 counter++;
590 counter++; 622 counter++;
591 } 623 }
592 counter++; 624 counter++;
593 } 625 }
594 resetOptAndAssertResultEquals(undefined, f); 626 resetOptAndAssertResultEquals(undefined, f);
595 assertEquals(5, counter); 627 assertEquals(5, counter);
596 628
597 // Variant flags: [tryThrows, doCatch, doFinally] 629 // Variant flags: [tryThrows, doCatch, doFinally]
598 630
599 f = function f_____t___c___f____ () { 631 f = function f______t___c___f____ () {
600 var local = 3; 632 var local = 888;
601 deopt = false; 633 deopt = false;
602 try { 634 try {
603 counter++; 635 counter++;
604 return increaseAndThrow42(); 636 return 4 + increaseAndThrow42();
605 counter++; 637 counter++;
606 } catch (ex) { 638 } catch (ex) {
607 counter++; 639 counter++;
608 counter++; 640 counter++;
609 } finally { 641 } finally {
610 counter++; 642 counter++;
611 local += 2; 643 local += 2;
612 counter++; 644 counter++;
613 } 645 }
614 counter++; 646 counter++;
615 } 647 }
616 resetOptAndAssertResultEquals(undefined, f); 648 resetOptAndAssertResultEquals(undefined, f);
617 assertEquals(7, counter); 649 assertEquals(7, counter);
618 650
619 // Variant flags: [tryThrows, doCatch, doFinally, finallyThrows] 651 // Variant flags: [tryThrows, doCatch, doFinally, finallyThrows]
620 652
621 f = function f_____t___c___f_t__ () { 653 f = function f______t___c___f_t__ () {
622 var local = 3; 654 var local = 888;
623 deopt = false; 655 deopt = false;
624 try { 656 try {
625 counter++; 657 counter++;
626 return increaseAndThrow42(); 658 return 4 + increaseAndThrow42();
627 counter++; 659 counter++;
628 } catch (ex) { 660 } catch (ex) {
629 counter++; 661 counter++;
630 counter++; 662 counter++;
631 } finally { 663 } finally {
632 counter++; 664 counter++;
633 throw 25; 665 throw 25;
634 counter++; 666 counter++;
635 } 667 }
636 counter++; 668 counter++;
637 } 669 }
638 resetOptAndAssertThrowsWith(25, f); 670 resetOptAndAssertThrowsWith(25, f);
639 assertEquals(5, counter); 671 assertEquals(5, counter);
640 672
641 // Variant flags: [tryThrows, doCatch, doFinally, finallyReturns] 673 // Variant flags: [tryThrows, doCatch, doFinally, finallyReturns]
642 674
643 f = function f_____t___c___fr___ () { 675 f = function f______t___c___fr___ () {
644 var local = 3; 676 var local = 888;
645 deopt = false; 677 deopt = false;
646 try { 678 try {
647 counter++; 679 counter++;
648 return increaseAndThrow42(); 680 return 4 + increaseAndThrow42();
649 counter++; 681 counter++;
650 } catch (ex) { 682 } catch (ex) {
651 counter++; 683 counter++;
652 counter++; 684 counter++;
653 } finally { 685 } finally {
654 counter++; 686 counter++;
655 return 3 + local; 687 return 3 + local;
656 counter++; 688 counter++;
657 } 689 }
658 counter++; 690 counter++;
659 } 691 }
660 resetOptAndAssertResultEquals(6, f); 692 resetOptAndAssertResultEquals(891, f);
661 assertEquals(5, counter); 693 assertEquals(5, counter);
662 694
663 // Variant flags: [tryThrows, doCatch, catchThrows] 695 // Variant flags: [tryThrows, doCatch, catchThrows]
664 696
665 f = function f_____t___c__t_____ () { 697 f = function f______t___c__t_____ () {
666 var local = 3; 698 var local = 888;
667 deopt = false; 699 deopt = false;
668 try { 700 try {
669 counter++; 701 counter++;
670 return increaseAndThrow42(); 702 return 4 + increaseAndThrow42();
671 counter++; 703 counter++;
672 } catch (ex) { 704 } catch (ex) {
673 counter++; 705 counter++;
674 throw 2 + ex; 706 throw 2 + ex;
675 counter++; 707 counter++;
676 } 708 }
677 counter++; 709 counter++;
678 } 710 }
679 resetOptAndAssertThrowsWith(44, f); 711 resetOptAndAssertThrowsWith(44, f);
680 assertEquals(3, counter); 712 assertEquals(3, counter);
681 713
682 // Variant flags: [tryThrows, doCatch, catchThrows, deopt] 714 // Variant flags: [tryThrows, doCatch, catchThrows, deopt]
683 715
684 f = function f_____t___c__t____d () { 716 f = function f______t___c__t____d () {
685 var local = 3; 717 var local = 888;
686 deopt = true; 718 deopt = true;
687 try { 719 try {
688 counter++; 720 counter++;
689 return increaseAndThrow42(); 721 return 4 + increaseAndThrow42();
690 counter++; 722 counter++;
691 } catch (ex) { 723 } catch (ex) {
692 counter++; 724 counter++;
693 throw 2 + ex; 725 throw 2 + ex;
694 counter++; 726 counter++;
695 } 727 }
696 counter++; 728 counter++;
697 } 729 }
698 resetOptAndAssertThrowsWith(44, f); 730 resetOptAndAssertThrowsWith(44, f);
699 assertEquals(3, counter); 731 assertEquals(3, counter);
700 732
701 // Variant flags: [tryThrows, doCatch, catchThrows, doFinally] 733 // Variant flags: [tryThrows, doCatch, catchThrows, doFinally]
702 734
703 f = function f_____t___c__tf____ () { 735 f = function f______t___c__tf____ () {
704 var local = 3; 736 var local = 888;
705 deopt = false; 737 deopt = false;
706 try { 738 try {
707 counter++; 739 counter++;
708 return increaseAndThrow42(); 740 return 4 + increaseAndThrow42();
709 counter++; 741 counter++;
710 } catch (ex) { 742 } catch (ex) {
711 counter++; 743 counter++;
712 throw 2 + ex; 744 throw 2 + ex;
713 counter++; 745 counter++;
714 } finally { 746 } finally {
715 counter++; 747 counter++;
716 local += 2; 748 local += 2;
717 counter++; 749 counter++;
718 } 750 }
719 counter++; 751 counter++;
720 } 752 }
721 resetOptAndAssertThrowsWith(44, f); 753 resetOptAndAssertThrowsWith(44, f);
722 assertEquals(5, counter); 754 assertEquals(5, counter);
723 755
724 // Variant flags: [tryThrows, doCatch, catchThrows, doFinally, 756 // Variant flags: [tryThrows, doCatch, catchThrows, doFinally,
725 // finallyThrows] 757 // finallyThrows]
726 758
727 f = function f_____t___c__tf_t__ () { 759 f = function f______t___c__tf_t__ () {
728 var local = 3; 760 var local = 888;
729 deopt = false; 761 deopt = false;
730 try { 762 try {
731 counter++; 763 counter++;
732 return increaseAndThrow42(); 764 return 4 + increaseAndThrow42();
733 counter++; 765 counter++;
734 } catch (ex) { 766 } catch (ex) {
735 counter++; 767 counter++;
736 throw 2 + ex; 768 throw 2 + ex;
737 counter++; 769 counter++;
738 } finally { 770 } finally {
739 counter++; 771 counter++;
740 throw 25; 772 throw 25;
741 counter++; 773 counter++;
742 } 774 }
743 counter++; 775 counter++;
744 } 776 }
745 resetOptAndAssertThrowsWith(25, f); 777 resetOptAndAssertThrowsWith(25, f);
746 assertEquals(4, counter); 778 assertEquals(4, counter);
747 779
748 // Variant flags: [tryThrows, doCatch, catchThrows, doFinally, 780 // Variant flags: [tryThrows, doCatch, catchThrows, doFinally,
749 // finallyReturns] 781 // finallyReturns]
750 782
751 f = function f_____t___c__tfr___ () { 783 f = function f______t___c__tfr___ () {
752 var local = 3; 784 var local = 888;
753 deopt = false; 785 deopt = false;
754 try { 786 try {
755 counter++; 787 counter++;
756 return increaseAndThrow42(); 788 return 4 + increaseAndThrow42();
757 counter++; 789 counter++;
758 } catch (ex) { 790 } catch (ex) {
759 counter++; 791 counter++;
760 throw 2 + ex; 792 throw 2 + ex;
761 counter++; 793 counter++;
762 } finally { 794 } finally {
763 counter++; 795 counter++;
764 return 3 + local; 796 return 3 + local;
765 counter++; 797 counter++;
766 } 798 }
767 counter++; 799 counter++;
768 } 800 }
769 resetOptAndAssertResultEquals(6, f); 801 resetOptAndAssertResultEquals(891, f);
770 assertEquals(4, counter); 802 assertEquals(4, counter);
771 803
772 // Variant flags: [tryThrows, doCatch, catchReturns] 804 // Variant flags: [tryThrows, doCatch, catchReturns]
773 805
774 f = function f_____t___cr_______ () { 806 f = function f______t___cr_______ () {
775 var local = 3; 807 var local = 888;
776 deopt = false; 808 deopt = false;
777 try { 809 try {
778 counter++; 810 counter++;
779 return increaseAndThrow42(); 811 return 4 + increaseAndThrow42();
780 counter++; 812 counter++;
781 } catch (ex) { 813 } catch (ex) {
782 counter++; 814 counter++;
783 return 2 + ex; 815 return 2 + ex;
784 counter++; 816 counter++;
785 } 817 }
786 counter++; 818 counter++;
787 } 819 }
788 resetOptAndAssertResultEquals(44, f); 820 resetOptAndAssertResultEquals(44, f);
789 assertEquals(3, counter); 821 assertEquals(3, counter);
790 822
791 // Variant flags: [tryThrows, doCatch, catchReturns, deopt] 823 // Variant flags: [tryThrows, doCatch, catchReturns, deopt]
792 824
793 f = function f_____t___cr______d () { 825 f = function f______t___cr______d () {
794 var local = 3; 826 var local = 888;
795 deopt = true; 827 deopt = true;
796 try { 828 try {
797 counter++; 829 counter++;
798 return increaseAndThrow42(); 830 return 4 + increaseAndThrow42();
799 counter++; 831 counter++;
800 } catch (ex) { 832 } catch (ex) {
801 counter++; 833 counter++;
802 return 2 + ex; 834 return 2 + ex;
803 counter++; 835 counter++;
804 } 836 }
805 counter++; 837 counter++;
806 } 838 }
807 resetOptAndAssertResultEquals(44, f); 839 resetOptAndAssertResultEquals(44, f);
808 assertEquals(3, counter); 840 assertEquals(3, counter);
809 841
810 // Variant flags: [tryThrows, doCatch, catchReturns, doFinally] 842 // Variant flags: [tryThrows, doCatch, catchReturns, doFinally]
811 843
812 f = function f_____t___cr__f____ () { 844 f = function f______t___cr__f____ () {
813 var local = 3; 845 var local = 888;
814 deopt = false; 846 deopt = false;
815 try { 847 try {
816 counter++; 848 counter++;
817 return increaseAndThrow42(); 849 return 4 + increaseAndThrow42();
818 counter++; 850 counter++;
819 } catch (ex) { 851 } catch (ex) {
820 counter++; 852 counter++;
821 return 2 + ex; 853 return 2 + ex;
822 counter++; 854 counter++;
823 } finally { 855 } finally {
824 counter++; 856 counter++;
825 local += 2; 857 local += 2;
826 counter++; 858 counter++;
827 } 859 }
828 counter++; 860 counter++;
829 } 861 }
830 resetOptAndAssertResultEquals(44, f); 862 resetOptAndAssertResultEquals(44, f);
831 assertEquals(5, counter); 863 assertEquals(5, counter);
832 864
833 // Variant flags: [tryThrows, doCatch, catchReturns, doFinally, 865 // Variant flags: [tryThrows, doCatch, catchReturns, doFinally,
834 // finallyThrows] 866 // finallyThrows]
835 867
836 f = function f_____t___cr__f_t__ () { 868 f = function f______t___cr__f_t__ () {
837 var local = 3; 869 var local = 888;
838 deopt = false; 870 deopt = false;
839 try { 871 try {
840 counter++; 872 counter++;
841 return increaseAndThrow42(); 873 return 4 + increaseAndThrow42();
842 counter++; 874 counter++;
843 } catch (ex) { 875 } catch (ex) {
844 counter++; 876 counter++;
845 return 2 + ex; 877 return 2 + ex;
846 counter++; 878 counter++;
847 } finally { 879 } finally {
848 counter++; 880 counter++;
849 throw 25; 881 throw 25;
850 counter++; 882 counter++;
851 } 883 }
852 counter++; 884 counter++;
853 } 885 }
854 resetOptAndAssertThrowsWith(25, f); 886 resetOptAndAssertThrowsWith(25, f);
855 assertEquals(4, counter); 887 assertEquals(4, counter);
856 888
857 // Variant flags: [tryThrows, doCatch, catchReturns, doFinally, 889 // Variant flags: [tryThrows, doCatch, catchReturns, doFinally,
858 // finallyReturns] 890 // finallyReturns]
859 891
860 f = function f_____t___cr__fr___ () { 892 f = function f______t___cr__fr___ () {
861 var local = 3; 893 var local = 888;
862 deopt = false; 894 deopt = false;
863 try { 895 try {
864 counter++; 896 counter++;
865 return increaseAndThrow42(); 897 return 4 + increaseAndThrow42();
866 counter++; 898 counter++;
867 } catch (ex) { 899 } catch (ex) {
868 counter++; 900 counter++;
869 return 2 + ex; 901 return 2 + ex;
870 counter++; 902 counter++;
871 } finally { 903 } finally {
872 counter++; 904 counter++;
873 return 3 + local; 905 return 3 + local;
874 counter++; 906 counter++;
875 } 907 }
876 counter++; 908 counter++;
877 } 909 }
878 resetOptAndAssertResultEquals(6, f); 910 resetOptAndAssertResultEquals(891, f);
879 assertEquals(4, counter); 911 assertEquals(4, counter);
880 912
881 // Variant flags: [tryThrows, tryReturns, doFinally] 913 // Variant flags: [tryThrows, tryReturns, doFinally]
882 914
883 f = function f_____tr______f____ () { 915 f = function f______tr______f____ () {
884 var local = 3; 916 var local = 888;
885 deopt = false; 917 deopt = false;
886 try { 918 try {
887 counter++; 919 counter++;
888 return increaseAndThrow42(); 920 return 4 + increaseAndThrow42();
889 return increaseAndReturn15(); 921 return 4 + increaseAndReturn15();
890 counter++; 922 counter++;
891 } finally { 923 } finally {
892 counter++; 924 counter++;
893 local += 2; 925 local += 2;
894 counter++; 926 counter++;
895 } 927 }
896 counter++; 928 counter++;
897 } 929 }
898 resetOptAndAssertThrowsWith(42, f); 930 resetOptAndAssertThrowsWith(42, f);
899 assertEquals(4, counter); 931 assertEquals(4, counter);
900 932
901 // Variant flags: [tryThrows, tryReturns, doFinally, finallyThrows] 933 // Variant flags: [tryThrows, tryReturns, doFinally, finallyThrows]
902 934
903 f = function f_____tr______f_t__ () { 935 f = function f______tr______f_t__ () {
904 var local = 3; 936 var local = 888;
905 deopt = false; 937 deopt = false;
906 try { 938 try {
907 counter++; 939 counter++;
908 return increaseAndThrow42(); 940 return 4 + increaseAndThrow42();
909 return increaseAndReturn15(); 941 return 4 + increaseAndReturn15();
910 counter++; 942 counter++;
911 } finally { 943 } finally {
912 counter++; 944 counter++;
913 throw 25; 945 throw 25;
914 counter++; 946 counter++;
915 } 947 }
916 counter++; 948 counter++;
917 } 949 }
918 resetOptAndAssertThrowsWith(25, f); 950 resetOptAndAssertThrowsWith(25, f);
919 assertEquals(3, counter); 951 assertEquals(3, counter);
920 952
921 // Variant flags: [tryThrows, tryReturns, doFinally, finallyReturns] 953 // Variant flags: [tryThrows, tryReturns, doFinally, finallyReturns]
922 954
923 f = function f_____tr______fr___ () { 955 f = function f______tr______fr___ () {
924 var local = 3; 956 var local = 888;
925 deopt = false; 957 deopt = false;
926 try { 958 try {
927 counter++; 959 counter++;
928 return increaseAndThrow42(); 960 return 4 + increaseAndThrow42();
929 return increaseAndReturn15(); 961 return 4 + increaseAndReturn15();
930 counter++; 962 counter++;
931 } finally { 963 } finally {
932 counter++; 964 counter++;
933 return 3 + local; 965 return 3 + local;
934 counter++; 966 counter++;
935 } 967 }
936 counter++; 968 counter++;
937 } 969 }
938 resetOptAndAssertResultEquals(6, f); 970 resetOptAndAssertResultEquals(891, f);
939 assertEquals(3, counter); 971 assertEquals(3, counter);
940 972
941 // Variant flags: [tryThrows, tryReturns, doCatch] 973 // Variant flags: [tryThrows, tryReturns, doCatch]
942 974
943 f = function f_____tr__c________ () { 975 f = function f______tr__c________ () {
944 var local = 3; 976 var local = 888;
945 deopt = false; 977 deopt = false;
946 try { 978 try {
947 counter++; 979 counter++;
948 return increaseAndThrow42(); 980 return 4 + increaseAndThrow42();
949 return increaseAndReturn15(); 981 return 4 + increaseAndReturn15();
950 counter++; 982 counter++;
951 } catch (ex) { 983 } catch (ex) {
952 counter++; 984 counter++;
953 counter++; 985 counter++;
954 } 986 }
955 counter++; 987 counter++;
956 } 988 }
957 resetOptAndAssertResultEquals(undefined, f); 989 resetOptAndAssertResultEquals(undefined, f);
958 assertEquals(5, counter); 990 assertEquals(5, counter);
959 991
960 // Variant flags: [tryThrows, tryReturns, doCatch, doFinally] 992 // Variant flags: [tryThrows, tryReturns, doCatch, doFinally]
961 993
962 f = function f_____tr__c___f____ () { 994 f = function f______tr__c___f____ () {
963 var local = 3; 995 var local = 888;
964 deopt = false; 996 deopt = false;
965 try { 997 try {
966 counter++; 998 counter++;
967 return increaseAndThrow42(); 999 return 4 + increaseAndThrow42();
968 return increaseAndReturn15(); 1000 return 4 + increaseAndReturn15();
969 counter++; 1001 counter++;
970 } catch (ex) { 1002 } catch (ex) {
971 counter++; 1003 counter++;
972 counter++; 1004 counter++;
973 } finally { 1005 } finally {
974 counter++; 1006 counter++;
975 local += 2; 1007 local += 2;
976 counter++; 1008 counter++;
977 } 1009 }
978 counter++; 1010 counter++;
979 } 1011 }
980 resetOptAndAssertResultEquals(undefined, f); 1012 resetOptAndAssertResultEquals(undefined, f);
981 assertEquals(7, counter); 1013 assertEquals(7, counter);
982 1014
983 // Variant flags: [tryThrows, tryReturns, doCatch, doFinally, 1015 // Variant flags: [tryThrows, tryReturns, doCatch, doFinally,
984 // finallyThrows] 1016 // finallyThrows]
985 1017
986 f = function f_____tr__c___f_t__ () { 1018 f = function f______tr__c___f_t__ () {
987 var local = 3; 1019 var local = 888;
988 deopt = false; 1020 deopt = false;
989 try { 1021 try {
990 counter++; 1022 counter++;
991 return increaseAndThrow42(); 1023 return 4 + increaseAndThrow42();
992 return increaseAndReturn15(); 1024 return 4 + increaseAndReturn15();
993 counter++; 1025 counter++;
994 } catch (ex) { 1026 } catch (ex) {
995 counter++; 1027 counter++;
996 counter++; 1028 counter++;
997 } finally { 1029 } finally {
998 counter++; 1030 counter++;
999 throw 25; 1031 throw 25;
1000 counter++; 1032 counter++;
1001 } 1033 }
1002 counter++; 1034 counter++;
1003 } 1035 }
1004 resetOptAndAssertThrowsWith(25, f); 1036 resetOptAndAssertThrowsWith(25, f);
1005 assertEquals(5, counter); 1037 assertEquals(5, counter);
1006 1038
1007 // Variant flags: [tryThrows, tryReturns, doCatch, doFinally, 1039 // Variant flags: [tryThrows, tryReturns, doCatch, doFinally,
1008 // finallyReturns] 1040 // finallyReturns]
1009 1041
1010 f = function f_____tr__c___fr___ () { 1042 f = function f______tr__c___fr___ () {
1011 var local = 3; 1043 var local = 888;
1012 deopt = false; 1044 deopt = false;
1013 try { 1045 try {
1014 counter++; 1046 counter++;
1015 return increaseAndThrow42(); 1047 return 4 + increaseAndThrow42();
1016 return increaseAndReturn15(); 1048 return 4 + increaseAndReturn15();
1017 counter++; 1049 counter++;
1018 } catch (ex) { 1050 } catch (ex) {
1019 counter++; 1051 counter++;
1020 counter++; 1052 counter++;
1021 } finally { 1053 } finally {
1022 counter++; 1054 counter++;
1023 return 3 + local; 1055 return 3 + local;
1024 counter++; 1056 counter++;
1025 } 1057 }
1026 counter++; 1058 counter++;
1027 } 1059 }
1028 resetOptAndAssertResultEquals(6, f); 1060 resetOptAndAssertResultEquals(891, f);
1029 assertEquals(5, counter); 1061 assertEquals(5, counter);
1030 1062
1031 // Variant flags: [tryThrows, tryReturns, doCatch, catchThrows] 1063 // Variant flags: [tryThrows, tryReturns, doCatch, catchThrows]
1032 1064
1033 f = function f_____tr__c__t_____ () { 1065 f = function f______tr__c__t_____ () {
1034 var local = 3; 1066 var local = 888;
1035 deopt = false; 1067 deopt = false;
1036 try { 1068 try {
1037 counter++; 1069 counter++;
1038 return increaseAndThrow42(); 1070 return 4 + increaseAndThrow42();
1039 return increaseAndReturn15(); 1071 return 4 + increaseAndReturn15();
1040 counter++; 1072 counter++;
1041 } catch (ex) { 1073 } catch (ex) {
1042 counter++; 1074 counter++;
1043 throw 2 + ex; 1075 throw 2 + ex;
1044 counter++; 1076 counter++;
1045 } 1077 }
1046 counter++; 1078 counter++;
1047 } 1079 }
1048 resetOptAndAssertThrowsWith(44, f); 1080 resetOptAndAssertThrowsWith(44, f);
1049 assertEquals(3, counter); 1081 assertEquals(3, counter);
1050 1082
1051 // Variant flags: [tryThrows, tryReturns, doCatch, catchThrows, 1083 // Variant flags: [tryThrows, tryReturns, doCatch, catchThrows,
1052 // doFinally] 1084 // doFinally]
1053 1085
1054 f = function f_____tr__c__tf____ () { 1086 f = function f______tr__c__tf____ () {
1055 var local = 3; 1087 var local = 888;
1056 deopt = false; 1088 deopt = false;
1057 try { 1089 try {
1058 counter++; 1090 counter++;
1059 return increaseAndThrow42(); 1091 return 4 + increaseAndThrow42();
1060 return increaseAndReturn15(); 1092 return 4 + increaseAndReturn15();
1061 counter++; 1093 counter++;
1062 } catch (ex) { 1094 } catch (ex) {
1063 counter++; 1095 counter++;
1064 throw 2 + ex; 1096 throw 2 + ex;
1065 counter++; 1097 counter++;
1066 } finally { 1098 } finally {
1067 counter++; 1099 counter++;
1068 local += 2; 1100 local += 2;
1069 counter++; 1101 counter++;
1070 } 1102 }
1071 counter++; 1103 counter++;
1072 } 1104 }
1073 resetOptAndAssertThrowsWith(44, f); 1105 resetOptAndAssertThrowsWith(44, f);
1074 assertEquals(5, counter); 1106 assertEquals(5, counter);
1075 1107
1076 // Variant flags: [tryThrows, tryReturns, doCatch, catchThrows, 1108 // Variant flags: [tryThrows, tryReturns, doCatch, catchThrows,
1077 // doFinally, finallyThrows] 1109 // doFinally, finallyThrows]
1078 1110
1079 f = function f_____tr__c__tf_t__ () { 1111 f = function f______tr__c__tf_t__ () {
1080 var local = 3; 1112 var local = 888;
1081 deopt = false; 1113 deopt = false;
1082 try { 1114 try {
1083 counter++; 1115 counter++;
1084 return increaseAndThrow42(); 1116 return 4 + increaseAndThrow42();
1085 return increaseAndReturn15(); 1117 return 4 + increaseAndReturn15();
1086 counter++; 1118 counter++;
1087 } catch (ex) { 1119 } catch (ex) {
1088 counter++; 1120 counter++;
1089 throw 2 + ex; 1121 throw 2 + ex;
1090 counter++; 1122 counter++;
1091 } finally { 1123 } finally {
1092 counter++; 1124 counter++;
1093 throw 25; 1125 throw 25;
1094 counter++; 1126 counter++;
1095 } 1127 }
1096 counter++; 1128 counter++;
1097 } 1129 }
1098 resetOptAndAssertThrowsWith(25, f); 1130 resetOptAndAssertThrowsWith(25, f);
1099 assertEquals(4, counter); 1131 assertEquals(4, counter);
1100 1132
1101 // Variant flags: [tryThrows, tryReturns, doCatch, catchThrows, 1133 // Variant flags: [tryThrows, tryReturns, doCatch, catchThrows,
1102 // doFinally, finallyReturns] 1134 // doFinally, finallyReturns]
1103 1135
1104 f = function f_____tr__c__tfr___ () { 1136 f = function f______tr__c__tfr___ () {
1105 var local = 3; 1137 var local = 888;
1106 deopt = false; 1138 deopt = false;
1107 try { 1139 try {
1108 counter++; 1140 counter++;
1109 return increaseAndThrow42(); 1141 return 4 + increaseAndThrow42();
1110 return increaseAndReturn15(); 1142 return 4 + increaseAndReturn15();
1111 counter++; 1143 counter++;
1112 } catch (ex) { 1144 } catch (ex) {
1113 counter++; 1145 counter++;
1114 throw 2 + ex; 1146 throw 2 + ex;
1115 counter++; 1147 counter++;
1116 } finally { 1148 } finally {
1117 counter++; 1149 counter++;
1118 return 3 + local; 1150 return 3 + local;
1119 counter++; 1151 counter++;
1120 } 1152 }
1121 counter++; 1153 counter++;
1122 } 1154 }
1123 resetOptAndAssertResultEquals(6, f); 1155 resetOptAndAssertResultEquals(891, f);
1124 assertEquals(4, counter); 1156 assertEquals(4, counter);
1125 1157
1126 // Variant flags: [tryThrows, tryReturns, doCatch, catchReturns] 1158 // Variant flags: [tryThrows, tryReturns, doCatch, catchReturns]
1127 1159
1128 f = function f_____tr__cr_______ () { 1160 f = function f______tr__cr_______ () {
1129 var local = 3; 1161 var local = 888;
1130 deopt = false; 1162 deopt = false;
1131 try { 1163 try {
1132 counter++; 1164 counter++;
1133 return increaseAndThrow42(); 1165 return 4 + increaseAndThrow42();
1134 return increaseAndReturn15(); 1166 return 4 + increaseAndReturn15();
1135 counter++; 1167 counter++;
1136 } catch (ex) { 1168 } catch (ex) {
1137 counter++; 1169 counter++;
1138 return 2 + ex; 1170 return 2 + ex;
1139 counter++; 1171 counter++;
1140 } 1172 }
1141 counter++; 1173 counter++;
1142 } 1174 }
1143 resetOptAndAssertResultEquals(44, f); 1175 resetOptAndAssertResultEquals(44, f);
1144 assertEquals(3, counter); 1176 assertEquals(3, counter);
1145 1177
1146 // Variant flags: [tryThrows, tryReturns, doCatch, catchReturns, 1178 // Variant flags: [tryThrows, tryReturns, doCatch, catchReturns,
1147 // doFinally] 1179 // doFinally]
1148 1180
1149 f = function f_____tr__cr__f____ () { 1181 f = function f______tr__cr__f____ () {
1150 var local = 3; 1182 var local = 888;
1151 deopt = false; 1183 deopt = false;
1152 try { 1184 try {
1153 counter++; 1185 counter++;
1154 return increaseAndThrow42(); 1186 return 4 + increaseAndThrow42();
1155 return increaseAndReturn15(); 1187 return 4 + increaseAndReturn15();
1156 counter++; 1188 counter++;
1157 } catch (ex) { 1189 } catch (ex) {
1158 counter++; 1190 counter++;
1159 return 2 + ex; 1191 return 2 + ex;
1160 counter++; 1192 counter++;
1161 } finally { 1193 } finally {
1162 counter++; 1194 counter++;
1163 local += 2; 1195 local += 2;
1164 counter++; 1196 counter++;
1165 } 1197 }
1166 counter++; 1198 counter++;
1167 } 1199 }
1168 resetOptAndAssertResultEquals(44, f); 1200 resetOptAndAssertResultEquals(44, f);
1169 assertEquals(5, counter); 1201 assertEquals(5, counter);
1170 1202
1171 // Variant flags: [tryThrows, tryReturns, doCatch, catchReturns, 1203 // Variant flags: [tryThrows, tryReturns, doCatch, catchReturns,
1172 // doFinally, finallyThrows] 1204 // doFinally, finallyThrows]
1173 1205
1174 f = function f_____tr__cr__f_t__ () { 1206 f = function f______tr__cr__f_t__ () {
1175 var local = 3; 1207 var local = 888;
1176 deopt = false; 1208 deopt = false;
1177 try { 1209 try {
1178 counter++; 1210 counter++;
1179 return increaseAndThrow42(); 1211 return 4 + increaseAndThrow42();
1180 return increaseAndReturn15(); 1212 return 4 + increaseAndReturn15();
1181 counter++; 1213 counter++;
1182 } catch (ex) { 1214 } catch (ex) {
1183 counter++; 1215 counter++;
1184 return 2 + ex; 1216 return 2 + ex;
1185 counter++; 1217 counter++;
1186 } finally { 1218 } finally {
1187 counter++; 1219 counter++;
1188 throw 25; 1220 throw 25;
1189 counter++; 1221 counter++;
1190 } 1222 }
1191 counter++; 1223 counter++;
1192 } 1224 }
1193 resetOptAndAssertThrowsWith(25, f); 1225 resetOptAndAssertThrowsWith(25, f);
1194 assertEquals(4, counter); 1226 assertEquals(4, counter);
1195 1227
1196 // Variant flags: [tryThrows, tryReturns, doCatch, catchReturns, 1228 // Variant flags: [tryThrows, tryReturns, doCatch, catchReturns,
1197 // doFinally, finallyReturns] 1229 // doFinally, finallyReturns]
1198 1230
1199 f = function f_____tr__cr__fr___ () { 1231 f = function f______tr__cr__fr___ () {
1200 var local = 3; 1232 var local = 888;
1201 deopt = false; 1233 deopt = false;
1202 try { 1234 try {
1203 counter++; 1235 counter++;
1204 return increaseAndThrow42(); 1236 return 4 + increaseAndThrow42();
1205 return increaseAndReturn15(); 1237 return 4 + increaseAndReturn15();
1206 counter++; 1238 counter++;
1207 } catch (ex) { 1239 } catch (ex) {
1208 counter++; 1240 counter++;
1209 return 2 + ex; 1241 return 2 + ex;
1210 counter++; 1242 counter++;
1211 } finally { 1243 } finally {
1212 counter++; 1244 counter++;
1213 return 3 + local; 1245 return 3 + local;
1214 counter++; 1246 counter++;
1215 } 1247 }
1216 counter++; 1248 counter++;
1217 } 1249 }
1218 resetOptAndAssertResultEquals(6, f); 1250 resetOptAndAssertResultEquals(891, f);
1219 assertEquals(4, counter); 1251 assertEquals(4, counter);
1220 1252
1221 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, 1253 // Variant flags: [tryThrows, tryReturns, tryFirstReturns,
1222 // doFinally] 1254 // doFinally]
1223 1255
1224 f = function f_____trf_____f____ () { 1256 f = function f______trf_____f____ () {
1225 var local = 3; 1257 var local = 888;
1226 deopt = false; 1258 deopt = false;
1227 try { 1259 try {
1228 counter++; 1260 counter++;
1229 return increaseAndReturn15(); 1261 return 4 + increaseAndReturn15();
1230 return increaseAndThrow42(); 1262 return 4 + increaseAndThrow42();
1231 counter++; 1263 counter++;
1232 } finally { 1264 } finally {
1233 counter++; 1265 counter++;
1234 local += 2; 1266 local += 2;
1235 counter++; 1267 counter++;
1236 } 1268 }
1237 counter++; 1269 counter++;
1238 } 1270 }
1239 resetOptAndAssertResultEquals(15, f); 1271 resetOptAndAssertResultEquals(19, f);
1240 assertEquals(4, counter); 1272 assertEquals(4, counter);
1241 1273
1242 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, 1274 // Variant flags: [tryThrows, tryReturns, tryFirstReturns,
1243 // doFinally, finallyThrows] 1275 // doFinally, finallyThrows]
1244 1276
1245 f = function f_____trf_____f_t__ () { 1277 f = function f______trf_____f_t__ () {
1246 var local = 3; 1278 var local = 888;
1247 deopt = false; 1279 deopt = false;
1248 try { 1280 try {
1249 counter++; 1281 counter++;
1250 return increaseAndReturn15(); 1282 return 4 + increaseAndReturn15();
1251 return increaseAndThrow42(); 1283 return 4 + increaseAndThrow42();
1252 counter++; 1284 counter++;
1253 } finally { 1285 } finally {
1254 counter++; 1286 counter++;
1255 throw 25; 1287 throw 25;
1256 counter++; 1288 counter++;
1257 } 1289 }
1258 counter++; 1290 counter++;
1259 } 1291 }
1260 resetOptAndAssertThrowsWith(25, f); 1292 resetOptAndAssertThrowsWith(25, f);
1261 assertEquals(3, counter); 1293 assertEquals(3, counter);
1262 1294
1263 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, 1295 // Variant flags: [tryThrows, tryReturns, tryFirstReturns,
1264 // doFinally, finallyReturns] 1296 // doFinally, finallyReturns]
1265 1297
1266 f = function f_____trf_____fr___ () { 1298 f = function f______trf_____fr___ () {
1267 var local = 3; 1299 var local = 888;
1268 deopt = false; 1300 deopt = false;
1269 try { 1301 try {
1270 counter++; 1302 counter++;
1271 return increaseAndReturn15(); 1303 return 4 + increaseAndReturn15();
1272 return increaseAndThrow42(); 1304 return 4 + increaseAndThrow42();
1273 counter++; 1305 counter++;
1274 } finally { 1306 } finally {
1275 counter++; 1307 counter++;
1276 return 3 + local; 1308 return 3 + local;
1277 counter++; 1309 counter++;
1278 } 1310 }
1279 counter++; 1311 counter++;
1280 } 1312 }
1281 resetOptAndAssertResultEquals(6, f); 1313 resetOptAndAssertResultEquals(891, f);
1282 assertEquals(3, counter); 1314 assertEquals(3, counter);
1283 1315
1284 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch] 1316 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch]
1285 1317
1286 f = function f_____trf_c________ () { 1318 f = function f______trf_c________ () {
1287 var local = 3; 1319 var local = 888;
1288 deopt = false; 1320 deopt = false;
1289 try { 1321 try {
1290 counter++; 1322 counter++;
1291 return increaseAndReturn15(); 1323 return 4 + increaseAndReturn15();
1292 return increaseAndThrow42(); 1324 return 4 + increaseAndThrow42();
1293 counter++; 1325 counter++;
1294 } catch (ex) { 1326 } catch (ex) {
1295 counter++; 1327 counter++;
1296 counter++; 1328 counter++;
1297 } 1329 }
1298 counter++; 1330 counter++;
1299 } 1331 }
1300 resetOptAndAssertResultEquals(15, f); 1332 resetOptAndAssertResultEquals(19, f);
1301 assertEquals(2, counter); 1333 assertEquals(2, counter);
1302 1334
1303 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1335 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1304 // doFinally] 1336 // doFinally]
1305 1337
1306 f = function f_____trf_c___f____ () { 1338 f = function f______trf_c___f____ () {
1307 var local = 3; 1339 var local = 888;
1308 deopt = false; 1340 deopt = false;
1309 try { 1341 try {
1310 counter++; 1342 counter++;
1311 return increaseAndReturn15(); 1343 return 4 + increaseAndReturn15();
1312 return increaseAndThrow42(); 1344 return 4 + increaseAndThrow42();
1313 counter++; 1345 counter++;
1314 } catch (ex) { 1346 } catch (ex) {
1315 counter++; 1347 counter++;
1316 counter++; 1348 counter++;
1317 } finally { 1349 } finally {
1318 counter++; 1350 counter++;
1319 local += 2; 1351 local += 2;
1320 counter++; 1352 counter++;
1321 } 1353 }
1322 counter++; 1354 counter++;
1323 } 1355 }
1324 resetOptAndAssertResultEquals(15, f); 1356 resetOptAndAssertResultEquals(19, f);
1325 assertEquals(4, counter); 1357 assertEquals(4, counter);
1326 1358
1327 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1359 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1328 // doFinally, finallyThrows] 1360 // doFinally, finallyThrows]
1329 1361
1330 f = function f_____trf_c___f_t__ () { 1362 f = function f______trf_c___f_t__ () {
1331 var local = 3; 1363 var local = 888;
1332 deopt = false; 1364 deopt = false;
1333 try { 1365 try {
1334 counter++; 1366 counter++;
1335 return increaseAndReturn15(); 1367 return 4 + increaseAndReturn15();
1336 return increaseAndThrow42(); 1368 return 4 + increaseAndThrow42();
1337 counter++; 1369 counter++;
1338 } catch (ex) { 1370 } catch (ex) {
1339 counter++; 1371 counter++;
1340 counter++; 1372 counter++;
1341 } finally { 1373 } finally {
1342 counter++; 1374 counter++;
1343 throw 25; 1375 throw 25;
1344 counter++; 1376 counter++;
1345 } 1377 }
1346 counter++; 1378 counter++;
1347 } 1379 }
1348 resetOptAndAssertThrowsWith(25, f); 1380 resetOptAndAssertThrowsWith(25, f);
1349 assertEquals(3, counter); 1381 assertEquals(3, counter);
1350 1382
1351 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1383 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1352 // doFinally, finallyReturns] 1384 // doFinally, finallyReturns]
1353 1385
1354 f = function f_____trf_c___fr___ () { 1386 f = function f______trf_c___fr___ () {
1355 var local = 3; 1387 var local = 888;
1356 deopt = false; 1388 deopt = false;
1357 try { 1389 try {
1358 counter++; 1390 counter++;
1359 return increaseAndReturn15(); 1391 return 4 + increaseAndReturn15();
1360 return increaseAndThrow42(); 1392 return 4 + increaseAndThrow42();
1361 counter++; 1393 counter++;
1362 } catch (ex) { 1394 } catch (ex) {
1363 counter++; 1395 counter++;
1364 counter++; 1396 counter++;
1365 } finally { 1397 } finally {
1366 counter++; 1398 counter++;
1367 return 3 + local; 1399 return 3 + local;
1368 counter++; 1400 counter++;
1369 } 1401 }
1370 counter++; 1402 counter++;
1371 } 1403 }
1372 resetOptAndAssertResultEquals(6, f); 1404 resetOptAndAssertResultEquals(891, f);
1373 assertEquals(3, counter); 1405 assertEquals(3, counter);
1374 1406
1375 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1407 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1376 // catchThrows] 1408 // catchThrows]
1377 1409
1378 f = function f_____trf_c__t_____ () { 1410 f = function f______trf_c__t_____ () {
1379 var local = 3; 1411 var local = 888;
1380 deopt = false; 1412 deopt = false;
1381 try { 1413 try {
1382 counter++; 1414 counter++;
1383 return increaseAndReturn15(); 1415 return 4 + increaseAndReturn15();
1384 return increaseAndThrow42(); 1416 return 4 + increaseAndThrow42();
1385 counter++; 1417 counter++;
1386 } catch (ex) { 1418 } catch (ex) {
1387 counter++; 1419 counter++;
1388 throw 2 + ex; 1420 throw 2 + ex;
1389 counter++; 1421 counter++;
1390 } 1422 }
1391 counter++; 1423 counter++;
1392 } 1424 }
1393 resetOptAndAssertResultEquals(15, f); 1425 resetOptAndAssertResultEquals(19, f);
1394 assertEquals(2, counter); 1426 assertEquals(2, counter);
1395 1427
1396 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1428 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1397 // catchThrows, doFinally] 1429 // catchThrows, doFinally]
1398 1430
1399 f = function f_____trf_c__tf____ () { 1431 f = function f______trf_c__tf____ () {
1400 var local = 3; 1432 var local = 888;
1401 deopt = false; 1433 deopt = false;
1402 try { 1434 try {
1403 counter++; 1435 counter++;
1404 return increaseAndReturn15(); 1436 return 4 + increaseAndReturn15();
1405 return increaseAndThrow42(); 1437 return 4 + increaseAndThrow42();
1406 counter++; 1438 counter++;
1407 } catch (ex) { 1439 } catch (ex) {
1408 counter++; 1440 counter++;
1409 throw 2 + ex; 1441 throw 2 + ex;
1410 counter++; 1442 counter++;
1411 } finally { 1443 } finally {
1412 counter++; 1444 counter++;
1413 local += 2; 1445 local += 2;
1414 counter++; 1446 counter++;
1415 } 1447 }
1416 counter++; 1448 counter++;
1417 } 1449 }
1418 resetOptAndAssertResultEquals(15, f); 1450 resetOptAndAssertResultEquals(19, f);
1419 assertEquals(4, counter); 1451 assertEquals(4, counter);
1420 1452
1421 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1453 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1422 // catchThrows, doFinally, finallyThrows] 1454 // catchThrows, doFinally, finallyThrows]
1423 1455
1424 f = function f_____trf_c__tf_t__ () { 1456 f = function f______trf_c__tf_t__ () {
1425 var local = 3; 1457 var local = 888;
1426 deopt = false; 1458 deopt = false;
1427 try { 1459 try {
1428 counter++; 1460 counter++;
1429 return increaseAndReturn15(); 1461 return 4 + increaseAndReturn15();
1430 return increaseAndThrow42(); 1462 return 4 + increaseAndThrow42();
1431 counter++; 1463 counter++;
1432 } catch (ex) { 1464 } catch (ex) {
1433 counter++; 1465 counter++;
1434 throw 2 + ex; 1466 throw 2 + ex;
1435 counter++; 1467 counter++;
1436 } finally { 1468 } finally {
1437 counter++; 1469 counter++;
1438 throw 25; 1470 throw 25;
1439 counter++; 1471 counter++;
1440 } 1472 }
1441 counter++; 1473 counter++;
1442 } 1474 }
1443 resetOptAndAssertThrowsWith(25, f); 1475 resetOptAndAssertThrowsWith(25, f);
1444 assertEquals(3, counter); 1476 assertEquals(3, counter);
1445 1477
1446 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1478 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1447 // catchThrows, doFinally, finallyReturns] 1479 // catchThrows, doFinally, finallyReturns]
1448 1480
1449 f = function f_____trf_c__tfr___ () { 1481 f = function f______trf_c__tfr___ () {
1450 var local = 3; 1482 var local = 888;
1451 deopt = false; 1483 deopt = false;
1452 try { 1484 try {
1453 counter++; 1485 counter++;
1454 return increaseAndReturn15(); 1486 return 4 + increaseAndReturn15();
1455 return increaseAndThrow42(); 1487 return 4 + increaseAndThrow42();
1456 counter++; 1488 counter++;
1457 } catch (ex) { 1489 } catch (ex) {
1458 counter++; 1490 counter++;
1459 throw 2 + ex; 1491 throw 2 + ex;
1460 counter++; 1492 counter++;
1461 } finally { 1493 } finally {
1462 counter++; 1494 counter++;
1463 return 3 + local; 1495 return 3 + local;
1464 counter++; 1496 counter++;
1465 } 1497 }
1466 counter++; 1498 counter++;
1467 } 1499 }
1468 resetOptAndAssertResultEquals(6, f); 1500 resetOptAndAssertResultEquals(891, f);
1469 assertEquals(3, counter); 1501 assertEquals(3, counter);
1470 1502
1471 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1503 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1472 // catchReturns] 1504 // catchReturns]
1473 1505
1474 f = function f_____trf_cr_______ () { 1506 f = function f______trf_cr_______ () {
1475 var local = 3; 1507 var local = 888;
1476 deopt = false; 1508 deopt = false;
1477 try { 1509 try {
1478 counter++; 1510 counter++;
1479 return increaseAndReturn15(); 1511 return 4 + increaseAndReturn15();
1480 return increaseAndThrow42(); 1512 return 4 + increaseAndThrow42();
1481 counter++; 1513 counter++;
1482 } catch (ex) { 1514 } catch (ex) {
1483 counter++; 1515 counter++;
1484 return 2 + ex; 1516 return 2 + ex;
1485 counter++; 1517 counter++;
1486 } 1518 }
1487 counter++; 1519 counter++;
1488 } 1520 }
1489 resetOptAndAssertResultEquals(15, f); 1521 resetOptAndAssertResultEquals(19, f);
1490 assertEquals(2, counter); 1522 assertEquals(2, counter);
1491 1523
1492 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1524 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1493 // catchReturns, doFinally] 1525 // catchReturns, doFinally]
1494 1526
1495 f = function f_____trf_cr__f____ () { 1527 f = function f______trf_cr__f____ () {
1496 var local = 3; 1528 var local = 888;
1497 deopt = false; 1529 deopt = false;
1498 try { 1530 try {
1499 counter++; 1531 counter++;
1500 return increaseAndReturn15(); 1532 return 4 + increaseAndReturn15();
1501 return increaseAndThrow42(); 1533 return 4 + increaseAndThrow42();
1502 counter++; 1534 counter++;
1503 } catch (ex) { 1535 } catch (ex) {
1504 counter++; 1536 counter++;
1505 return 2 + ex; 1537 return 2 + ex;
1506 counter++; 1538 counter++;
1507 } finally { 1539 } finally {
1508 counter++; 1540 counter++;
1509 local += 2; 1541 local += 2;
1510 counter++; 1542 counter++;
1511 } 1543 }
1512 counter++; 1544 counter++;
1513 } 1545 }
1514 resetOptAndAssertResultEquals(15, f); 1546 resetOptAndAssertResultEquals(19, f);
1515 assertEquals(4, counter); 1547 assertEquals(4, counter);
1516 1548
1517 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1549 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1518 // catchReturns, doFinally, finallyThrows] 1550 // catchReturns, doFinally, finallyThrows]
1519 1551
1520 f = function f_____trf_cr__f_t__ () { 1552 f = function f______trf_cr__f_t__ () {
1521 var local = 3; 1553 var local = 888;
1522 deopt = false; 1554 deopt = false;
1523 try { 1555 try {
1524 counter++; 1556 counter++;
1525 return increaseAndReturn15(); 1557 return 4 + increaseAndReturn15();
1526 return increaseAndThrow42(); 1558 return 4 + increaseAndThrow42();
1527 counter++; 1559 counter++;
1528 } catch (ex) { 1560 } catch (ex) {
1529 counter++; 1561 counter++;
1530 return 2 + ex; 1562 return 2 + ex;
1531 counter++; 1563 counter++;
1532 } finally { 1564 } finally {
1533 counter++; 1565 counter++;
1534 throw 25; 1566 throw 25;
1535 counter++; 1567 counter++;
1536 } 1568 }
1537 counter++; 1569 counter++;
1538 } 1570 }
1539 resetOptAndAssertThrowsWith(25, f); 1571 resetOptAndAssertThrowsWith(25, f);
1540 assertEquals(3, counter); 1572 assertEquals(3, counter);
1541 1573
1542 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch, 1574 // Variant flags: [tryThrows, tryReturns, tryFirstReturns, doCatch,
1543 // catchReturns, doFinally, finallyReturns] 1575 // catchReturns, doFinally, finallyReturns]
1544 1576
1545 f = function f_____trf_cr__fr___ () { 1577 f = function f______trf_cr__fr___ () {
1546 var local = 3; 1578 var local = 888;
1547 deopt = false; 1579 deopt = false;
1548 try { 1580 try {
1549 counter++; 1581 counter++;
1550 return increaseAndReturn15(); 1582 return 4 + increaseAndReturn15();
1551 return increaseAndThrow42(); 1583 return 4 + increaseAndThrow42();
1552 counter++; 1584 counter++;
1553 } catch (ex) { 1585 } catch (ex) {
1554 counter++; 1586 counter++;
1555 return 2 + ex; 1587 return 2 + ex;
1556 counter++; 1588 counter++;
1557 } finally { 1589 } finally {
1558 counter++; 1590 counter++;
1559 return 3 + local; 1591 return 3 + local;
1560 counter++; 1592 counter++;
1561 } 1593 }
1562 counter++; 1594 counter++;
1563 } 1595 }
1564 resetOptAndAssertResultEquals(6, f); 1596 resetOptAndAssertResultEquals(891, f);
1565 assertEquals(3, counter); 1597 assertEquals(3, counter);
1566 1598
1567 // Variant flags: [alternativeFn1, tryReturns, doCatch] 1599 // Variant flags: [alternativeFn1, tryReturns, doCatch]
1568 1600
1569 f = function f____1_r__c________ () { 1601 f = function f_____1_r__c________ () {
1570 var local = 3; 1602 var local = 888;
1571 deopt = false; 1603 deopt = false;
1572 try { 1604 try {
1573 counter++; 1605 counter++;
1574 return returnOrThrow(true); 1606 return 4 + returnOrThrow(true);
1575 counter++; 1607 counter++;
1576 } catch (ex) { 1608 } catch (ex) {
1577 counter++; 1609 counter++;
1578 counter++; 1610 counter++;
1579 } 1611 }
1580 counter++; 1612 counter++;
1581 } 1613 }
1582 resetOptAndAssertResultEquals(15, f); 1614 resetOptAndAssertResultEquals(19, f);
1583 assertEquals(2, counter); 1615 assertEquals(2, counter);
1584 1616
1585 // Variant flags: [alternativeFn1, tryReturns, doCatch, deopt] 1617 // Variant flags: [alternativeFn1, tryReturns, doCatch, deopt]
1586 1618
1587 f = function f____1_r__c_______d () { 1619 f = function f_____1_r__c_______d () {
1588 var local = 3; 1620 var local = 888;
1589 deopt = true; 1621 deopt = true;
1590 try { 1622 try {
1591 counter++; 1623 counter++;
1592 return returnOrThrow(true); 1624 return 4 + returnOrThrow(true);
1593 counter++; 1625 counter++;
1594 } catch (ex) { 1626 } catch (ex) {
1595 counter++; 1627 counter++;
1596 counter++; 1628 counter++;
1597 } 1629 }
1598 counter++; 1630 counter++;
1599 } 1631 }
1600 resetOptAndAssertResultEquals(15, f); 1632 resetOptAndAssertResultEquals(19, f);
1601 assertEquals(2, counter); 1633 assertEquals(2, counter);
1602 1634
1603 // Variant flags: [alternativeFn1, tryReturns, doCatch, catchThrows] 1635 // Variant flags: [alternativeFn1, tryReturns, doCatch, catchThrows]
1604 1636
1605 f = function f____1_r__c__t_____ () { 1637 f = function f_____1_r__c__t_____ () {
1606 var local = 3; 1638 var local = 888;
1607 deopt = false; 1639 deopt = false;
1608 try { 1640 try {
1609 counter++; 1641 counter++;
1610 return returnOrThrow(true); 1642 return 4 + returnOrThrow(true);
1611 counter++; 1643 counter++;
1612 } catch (ex) { 1644 } catch (ex) {
1613 counter++; 1645 counter++;
1614 throw 2 + ex; 1646 throw 2 + ex;
1615 counter++; 1647 counter++;
1616 } 1648 }
1617 counter++; 1649 counter++;
1618 } 1650 }
1619 resetOptAndAssertResultEquals(15, f); 1651 resetOptAndAssertResultEquals(19, f);
1620 assertEquals(2, counter); 1652 assertEquals(2, counter);
1621 1653
1622 // Variant flags: [alternativeFn1, tryReturns, doCatch, catchThrows, 1654 // Variant flags: [alternativeFn1, tryReturns, doCatch, catchThrows,
1623 // deopt] 1655 // deopt]
1624 1656
1625 f = function f____1_r__c__t____d () { 1657 f = function f_____1_r__c__t____d () {
1626 var local = 3; 1658 var local = 888;
1627 deopt = true; 1659 deopt = true;
1628 try { 1660 try {
1629 counter++; 1661 counter++;
1630 return returnOrThrow(true); 1662 return 4 + returnOrThrow(true);
1631 counter++; 1663 counter++;
1632 } catch (ex) { 1664 } catch (ex) {
1633 counter++; 1665 counter++;
1634 throw 2 + ex; 1666 throw 2 + ex;
1635 counter++; 1667 counter++;
1636 } 1668 }
1637 counter++; 1669 counter++;
1638 } 1670 }
1639 resetOptAndAssertResultEquals(15, f); 1671 resetOptAndAssertResultEquals(19, f);
1640 assertEquals(2, counter); 1672 assertEquals(2, counter);
1641 1673
1642 // Variant flags: [alternativeFn1, tryReturns, doCatch, 1674 // Variant flags: [alternativeFn1, tryReturns, doCatch,
1643 // catchReturns] 1675 // catchReturns]
1644 1676
1645 f = function f____1_r__cr_______ () { 1677 f = function f_____1_r__cr_______ () {
1646 var local = 3; 1678 var local = 888;
1647 deopt = false; 1679 deopt = false;
1648 try { 1680 try {
1649 counter++; 1681 counter++;
1650 return returnOrThrow(true); 1682 return 4 + returnOrThrow(true);
1651 counter++; 1683 counter++;
1652 } catch (ex) { 1684 } catch (ex) {
1653 counter++; 1685 counter++;
1654 return 2 + ex; 1686 return 2 + ex;
1655 counter++; 1687 counter++;
1656 } 1688 }
1657 counter++; 1689 counter++;
1658 } 1690 }
1659 resetOptAndAssertResultEquals(15, f); 1691 resetOptAndAssertResultEquals(19, f);
1660 assertEquals(2, counter); 1692 assertEquals(2, counter);
1661 1693
1662 // Variant flags: [alternativeFn1, tryReturns, doCatch, 1694 // Variant flags: [alternativeFn1, tryReturns, doCatch,
1663 // catchReturns, deopt] 1695 // catchReturns, deopt]
1664 1696
1665 f = function f____1_r__cr______d () { 1697 f = function f_____1_r__cr______d () {
1666 var local = 3; 1698 var local = 888;
1667 deopt = true; 1699 deopt = true;
1668 try { 1700 try {
1669 counter++; 1701 counter++;
1670 return returnOrThrow(true); 1702 return 4 + returnOrThrow(true);
1671 counter++; 1703 counter++;
1672 } catch (ex) { 1704 } catch (ex) {
1673 counter++; 1705 counter++;
1674 return 2 + ex; 1706 return 2 + ex;
1675 counter++; 1707 counter++;
1676 } 1708 }
1677 counter++; 1709 counter++;
1678 } 1710 }
1679 resetOptAndAssertResultEquals(15, f); 1711 resetOptAndAssertResultEquals(19, f);
1680 assertEquals(2, counter); 1712 assertEquals(2, counter);
1681 1713
1682 // Variant flags: [alternativeFn1, tryThrows, doCatch] 1714 // Variant flags: [alternativeFn1, tryThrows, doCatch]
1683 1715
1684 f = function f____1t___c________ () { 1716 f = function f_____1t___c________ () {
1685 var local = 3; 1717 var local = 888;
1686 deopt = false; 1718 deopt = false;
1687 try { 1719 try {
1688 counter++; 1720 counter++;
1689 return returnOrThrow(false); 1721 return 4 + returnOrThrow(false);
1690 counter++; 1722 counter++;
1691 } catch (ex) { 1723 } catch (ex) {
1692 counter++; 1724 counter++;
1693 counter++; 1725 counter++;
1694 } 1726 }
1695 counter++; 1727 counter++;
1696 } 1728 }
1697 resetOptAndAssertResultEquals(undefined, f); 1729 resetOptAndAssertResultEquals(undefined, f);
1698 assertEquals(5, counter); 1730 assertEquals(5, counter);
1699 1731
1700 // Variant flags: [alternativeFn1, tryThrows, doCatch, deopt] 1732 // Variant flags: [alternativeFn1, tryThrows, doCatch, deopt]
1701 1733
1702 f = function f____1t___c_______d () { 1734 f = function f_____1t___c_______d () {
1703 var local = 3; 1735 var local = 888;
1704 deopt = true; 1736 deopt = true;
1705 try { 1737 try {
1706 counter++; 1738 counter++;
1707 return returnOrThrow(false); 1739 return 4 + returnOrThrow(false);
1708 counter++; 1740 counter++;
1709 } catch (ex) { 1741 } catch (ex) {
1710 counter++; 1742 counter++;
1711 counter++; 1743 counter++;
1712 } 1744 }
1713 counter++; 1745 counter++;
1714 } 1746 }
1715 resetOptAndAssertResultEquals(undefined, f); 1747 resetOptAndAssertResultEquals(undefined, f);
1716 assertEquals(5, counter); 1748 assertEquals(5, counter);
1717 1749
1718 // Variant flags: [alternativeFn1, tryThrows, doCatch, catchThrows] 1750 // Variant flags: [alternativeFn1, tryThrows, doCatch, catchThrows]
1719 1751
1720 f = function f____1t___c__t_____ () { 1752 f = function f_____1t___c__t_____ () {
1721 var local = 3; 1753 var local = 888;
1722 deopt = false; 1754 deopt = false;
1723 try { 1755 try {
1724 counter++; 1756 counter++;
1725 return returnOrThrow(false); 1757 return 4 + returnOrThrow(false);
1726 counter++; 1758 counter++;
1727 } catch (ex) { 1759 } catch (ex) {
1728 counter++; 1760 counter++;
1729 throw 2 + ex; 1761 throw 2 + ex;
1730 counter++; 1762 counter++;
1731 } 1763 }
1732 counter++; 1764 counter++;
1733 } 1765 }
1734 resetOptAndAssertThrowsWith(44, f); 1766 resetOptAndAssertThrowsWith(44, f);
1735 assertEquals(3, counter); 1767 assertEquals(3, counter);
1736 1768
1737 // Variant flags: [alternativeFn1, tryThrows, doCatch, catchThrows, 1769 // Variant flags: [alternativeFn1, tryThrows, doCatch, catchThrows,
1738 // deopt] 1770 // deopt]
1739 1771
1740 f = function f____1t___c__t____d () { 1772 f = function f_____1t___c__t____d () {
1741 var local = 3; 1773 var local = 888;
1742 deopt = true; 1774 deopt = true;
1743 try { 1775 try {
1744 counter++; 1776 counter++;
1745 return returnOrThrow(false); 1777 return 4 + returnOrThrow(false);
1746 counter++; 1778 counter++;
1747 } catch (ex) { 1779 } catch (ex) {
1748 counter++; 1780 counter++;
1749 throw 2 + ex; 1781 throw 2 + ex;
1750 counter++; 1782 counter++;
1751 } 1783 }
1752 counter++; 1784 counter++;
1753 } 1785 }
1754 resetOptAndAssertThrowsWith(44, f); 1786 resetOptAndAssertThrowsWith(44, f);
1755 assertEquals(3, counter); 1787 assertEquals(3, counter);
1756 1788
1757 // Variant flags: [alternativeFn1, tryThrows, doCatch, catchReturns] 1789 // Variant flags: [alternativeFn1, tryThrows, doCatch, catchReturns]
1758 1790
1759 f = function f____1t___cr_______ () { 1791 f = function f_____1t___cr_______ () {
1760 var local = 3; 1792 var local = 888;
1761 deopt = false; 1793 deopt = false;
1762 try { 1794 try {
1763 counter++; 1795 counter++;
1764 return returnOrThrow(false); 1796 return 4 + returnOrThrow(false);
1765 counter++; 1797 counter++;
1766 } catch (ex) { 1798 } catch (ex) {
1767 counter++; 1799 counter++;
1768 return 2 + ex; 1800 return 2 + ex;
1769 counter++; 1801 counter++;
1770 } 1802 }
1771 counter++; 1803 counter++;
1772 } 1804 }
1773 resetOptAndAssertResultEquals(44, f); 1805 resetOptAndAssertResultEquals(44, f);
1774 assertEquals(3, counter); 1806 assertEquals(3, counter);
1775 1807
1776 // Variant flags: [alternativeFn1, tryThrows, doCatch, catchReturns, 1808 // Variant flags: [alternativeFn1, tryThrows, doCatch, catchReturns,
1777 // deopt] 1809 // deopt]
1778 1810
1779 f = function f____1t___cr______d () { 1811 f = function f_____1t___cr______d () {
1780 var local = 3; 1812 var local = 888;
1781 deopt = true; 1813 deopt = true;
1782 try { 1814 try {
1783 counter++; 1815 counter++;
1784 return returnOrThrow(false); 1816 return 4 + returnOrThrow(false);
1785 counter++; 1817 counter++;
1786 } catch (ex) { 1818 } catch (ex) {
1787 counter++; 1819 counter++;
1788 return 2 + ex; 1820 return 2 + ex;
1789 counter++; 1821 counter++;
1790 } 1822 }
1791 counter++; 1823 counter++;
1792 } 1824 }
1793 resetOptAndAssertResultEquals(44, f); 1825 resetOptAndAssertResultEquals(44, f);
1794 assertEquals(3, counter); 1826 assertEquals(3, counter);
1795 1827
1796 // Variant flags: [alternativeFn2, tryReturns, doCatch] 1828 // Variant flags: [alternativeFn2, tryReturns, doCatch,
1829 // catchWithLocal, endReturnLocal, deopt]
1797 1830
1798 f = function f___2__r__c________ () { 1831 f = function f____2__r__c_l____ld () {
1799 var local = 3; 1832 var local = 888;
1800 deopt = false;
1801 try {
1802 counter++;
1803 return invertFunctionCall(increaseAndThrow42);
1804 counter++;
1805 } catch (ex) {
1806 counter++;
1807 counter++;
1808 }
1809 counter++;
1810 }
1811 resetOptAndAssertResultEquals(15, f);
1812 assertEquals(2, counter);
1813
1814 // Variant flags: [alternativeFn2, tryReturns, doCatch, deopt]
1815
1816 f = function f___2__r__c_______d () {
1817 var local = 3;
1818 deopt = true; 1833 deopt = true;
1819 try { 1834 try {
1820 counter++; 1835 counter++;
1821 return invertFunctionCall(increaseAndThrow42); 1836 return 4 + increaseAndReturn15_noopt_outer();
1822 counter++;
1823 } catch (ex) {
1824 counter++;
1825 counter++;
1826 }
1827 counter++;
1828 }
1829 resetOptAndAssertResultEquals(15, f);
1830 assertEquals(2, counter);
1831
1832 // Variant flags: [alternativeFn2, tryReturns, doCatch, catchThrows]
1833
1834 f = function f___2__r__c__t_____ () {
1835 var local = 3;
1836 deopt = false;
1837 try {
1838 counter++;
1839 return invertFunctionCall(increaseAndThrow42);
1840 counter++;
1841 } catch (ex) {
1842 counter++;
1843 throw 2 + ex;
1844 counter++;
1845 }
1846 counter++;
1847 }
1848 resetOptAndAssertResultEquals(15, f);
1849 assertEquals(2, counter);
1850
1851 // Variant flags: [alternativeFn2, tryReturns, doCatch, catchThrows,
1852 // deopt]
1853
1854 f = function f___2__r__c__t____d () {
1855 var local = 3;
1856 deopt = true;
1857 try {
1858 counter++;
1859 return invertFunctionCall(increaseAndThrow42);
1860 counter++;
1861 } catch (ex) {
1862 counter++;
1863 throw 2 + ex;
1864 counter++;
1865 }
1866 counter++;
1867 }
1868 resetOptAndAssertResultEquals(15, f);
1869 assertEquals(2, counter);
1870
1871 // Variant flags: [alternativeFn2, tryReturns, doCatch,
1872 // catchWithLocal]
1873
1874 f = function f___2__r__c_l______ () {
1875 var local = 3;
1876 deopt = false;
1877 try {
1878 counter++;
1879 return invertFunctionCall(increaseAndThrow42);
1880 counter++; 1837 counter++;
1881 } catch (ex) { 1838 } catch (ex) {
1882 counter++; 1839 counter++;
1883 local += ex; 1840 local += ex;
1884 counter++; 1841 counter++;
1885 } 1842 }
1886 counter++; 1843 counter++;
1844 return 5 + local;
1887 } 1845 }
1888 resetOptAndAssertResultEquals(15, f); 1846 resetOptAndAssertResultEquals(19, f);
1889 assertEquals(2, counter); 1847 assertEquals(2, counter);
1890 1848
1891 // Variant flags: [alternativeFn2, tryReturns, doCatch, 1849 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal,
1892 // catchWithLocal, deopt] 1850 // doCatch, endReturnLocal, deopt]
1893 1851
1894 f = function f___2__r__c_l_____d () { 1852 f = function f____2__r_lc______ld () {
1895 var local = 3; 1853 var local = 888;
1896 deopt = true; 1854 deopt = true;
1897 try { 1855 try {
1898 counter++; 1856 counter++;
1899 return invertFunctionCall(increaseAndThrow42); 1857 local += 4 + increaseAndReturn15_noopt_outer();
1900 counter++; 1858 counter++;
1901 } catch (ex) { 1859 } catch (ex) {
1902 counter++; 1860 counter++;
1861 counter++;
1862 }
1863 counter++;
1864 return 5 + local;
1865 }
1866 resetOptAndAssertResultEquals(912, f);
1867 assertEquals(4, counter);
1868
1869 // Variant flags: [alternativeFn2, tryReturns, tryResultToLocal,
1870 // doCatch, catchWithLocal, endReturnLocal, deopt]
1871
1872 f = function f____2__r_lc_l____ld () {
1873 var local = 888;
1874 deopt = true;
1875 try {
1876 counter++;
1877 local += 4 + increaseAndReturn15_noopt_outer();
1878 counter++;
1879 } catch (ex) {
1880 counter++;
1881 local += ex;
1882 counter++;
1883 }
1884 counter++;
1885 return 5 + local;
1886 }
1887 resetOptAndAssertResultEquals(912, f);
1888 assertEquals(4, counter);
1889
1890 // Variant flags: [alternativeFn2, tryThrows, doCatch,
1891 // catchWithLocal, endReturnLocal, deopt]
1892
1893 f = function f____2_t___c_l____ld () {
1894 var local = 888;
1895 deopt = true;
1896 try {
1897 counter++;
1898 return 4 + increaseAndThrow42_noopt_outer();
1899 counter++;
1900 } catch (ex) {
1901 counter++;
1902 local += ex;
1903 counter++;
1904 }
1905 counter++;
1906 return 5 + local;
1907 }
1908 resetOptAndAssertResultEquals(935, f);
1909 assertEquals(5, counter);
1910
1911 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal,
1912 // doCatch, endReturnLocal, deopt]
1913
1914 f = function f____2_t__lc______ld () {
1915 var local = 888;
1916 deopt = true;
1917 try {
1918 counter++;
1919 local += 4 + increaseAndThrow42_noopt_outer();
1920 counter++;
1921 } catch (ex) {
1922 counter++;
1923 counter++;
1924 }
1925 counter++;
1926 return 5 + local;
1927 }
1928 resetOptAndAssertResultEquals(893, f);
1929 assertEquals(5, counter);
1930
1931 // Variant flags: [alternativeFn2, tryThrows, tryResultToLocal,
1932 // doCatch, catchWithLocal, endReturnLocal, deopt]
1933
1934 f = function f____2_t__lc_l____ld () {
1935 var local = 888;
1936 deopt = true;
1937 try {
1938 counter++;
1939 local += 4 + increaseAndThrow42_noopt_outer();
1940 counter++;
1941 } catch (ex) {
1942 counter++;
1903 local += ex; 1943 local += ex;
1904 counter++; 1944 counter++;
1905 } 1945 }
1906 counter++; 1946 counter++;
1907 }
1908 resetOptAndAssertResultEquals(15, f);
1909 assertEquals(2, counter);
1910
1911 // Variant flags: [alternativeFn2, tryReturns, doCatch,
1912 // catchWithLocal, endReturnLocal]
1913
1914 f = function f___2__r__c_l____l_ () {
1915 var local = 3;
1916 deopt = false;
1917 try {
1918 counter++;
1919 return invertFunctionCall(increaseAndThrow42);
1920 counter++;
1921 } catch (ex) {
1922 counter++;
1923 local += ex;
1924 counter++;
1925 }
1926 counter++;
1927 return 5 + local; 1947 return 5 + local;
1928 } 1948 }
1929 resetOptAndAssertResultEquals(15, f); 1949 resetOptAndAssertResultEquals(935, f);
1950 assertEquals(5, counter);
1951
1952 // Variant flags: [alternativeFn3, tryReturns, doCatch]
1953
1954 f = function f___3___r__c________ () {
1955 var local = 888;
1956 deopt = false;
1957 try {
1958 counter++;
1959 return 4 + invertFunctionCall(increaseAndThrow42);
1960 counter++;
1961 } catch (ex) {
1962 counter++;
1963 counter++;
1964 }
1965 counter++;
1966 }
1967 resetOptAndAssertResultEquals(19, f);
1930 assertEquals(2, counter); 1968 assertEquals(2, counter);
1931 1969
1932 // Variant flags: [alternativeFn2, tryReturns, doCatch, 1970 // Variant flags: [alternativeFn3, tryReturns, doCatch, deopt]
1933 // catchWithLocal, endReturnLocal, deopt]
1934 1971
1935 f = function f___2__r__c_l____ld () { 1972 f = function f___3___r__c_______d () {
1936 var local = 3; 1973 var local = 888;
1937 deopt = true; 1974 deopt = true;
1938 try { 1975 try {
1939 counter++; 1976 counter++;
1940 return invertFunctionCall(increaseAndThrow42); 1977 return 4 + invertFunctionCall(increaseAndThrow42);
1941 counter++; 1978 counter++;
1942 } catch (ex) { 1979 } catch (ex) {
1943 counter++; 1980 counter++;
1944 local += ex;
1945 counter++; 1981 counter++;
1946 } 1982 }
1947 counter++; 1983 counter++;
1948 return 5 + local;
1949 } 1984 }
1950 resetOptAndAssertResultEquals(15, f); 1985 resetOptAndAssertResultEquals(19, f);
1951 assertEquals(2, counter); 1986 assertEquals(2, counter);
1952 1987
1953 // Variant flags: [alternativeFn2, tryReturns, doCatch, 1988 // Variant flags: [alternativeFn3, tryReturns, doCatch, catchThrows]
1954 // catchWithLocal, catchThrows]
1955 1989
1956 f = function f___2__r__c_lt_____ () { 1990 f = function f___3___r__c__t_____ () {
1957 var local = 3; 1991 var local = 888;
1958 deopt = false; 1992 deopt = false;
1959 try { 1993 try {
1960 counter++; 1994 counter++;
1961 return invertFunctionCall(increaseAndThrow42); 1995 return 4 + invertFunctionCall(increaseAndThrow42);
1962 counter++; 1996 counter++;
1963 } catch (ex) { 1997 } catch (ex) {
1964 counter++; 1998 counter++;
1965 throw 2 + ex; 1999 throw 2 + ex;
1966 counter++; 2000 counter++;
1967 } 2001 }
1968 counter++; 2002 counter++;
1969 } 2003 }
1970 resetOptAndAssertResultEquals(15, f); 2004 resetOptAndAssertResultEquals(19, f);
1971 assertEquals(2, counter); 2005 assertEquals(2, counter);
1972 2006
1973 // Variant flags: [alternativeFn2, tryReturns, doCatch, 2007 // Variant flags: [alternativeFn3, tryReturns, doCatch, catchThrows,
1974 // catchWithLocal, catchThrows, deopt] 2008 // deopt]
1975 2009
1976 f = function f___2__r__c_lt____d () { 2010 f = function f___3___r__c__t____d () {
1977 var local = 3; 2011 var local = 888;
1978 deopt = true; 2012 deopt = true;
1979 try { 2013 try {
1980 counter++; 2014 counter++;
1981 return invertFunctionCall(increaseAndThrow42); 2015 return 4 + invertFunctionCall(increaseAndThrow42);
1982 counter++; 2016 counter++;
1983 } catch (ex) { 2017 } catch (ex) {
1984 counter++; 2018 counter++;
1985 throw 2 + ex; 2019 throw 2 + ex;
1986 counter++; 2020 counter++;
1987 } 2021 }
1988 counter++; 2022 counter++;
1989 } 2023 }
1990 resetOptAndAssertResultEquals(15, f); 2024 resetOptAndAssertResultEquals(19, f);
1991 assertEquals(2, counter); 2025 assertEquals(2, counter);
1992 2026
1993 // Variant flags: [alternativeFn2, tryReturns, doCatch, 2027 // Variant flags: [alternativeFn3, tryReturns, doCatch,
1994 // catchWithLocal, catchThrows, endReturnLocal] 2028 // catchWithLocal]
1995 2029
1996 f = function f___2__r__c_lt___l_ () { 2030 f = function f___3___r__c_l______ () {
1997 var local = 3; 2031 var local = 888;
1998 deopt = false; 2032 deopt = false;
1999 try { 2033 try {
2000 counter++; 2034 counter++;
2001 return invertFunctionCall(increaseAndThrow42); 2035 return 4 + invertFunctionCall(increaseAndThrow42);
2036 counter++;
2037 } catch (ex) {
2038 counter++;
2039 local += ex;
2040 counter++;
2041 }
2042 counter++;
2043 }
2044 resetOptAndAssertResultEquals(19, f);
2045 assertEquals(2, counter);
2046
2047 // Variant flags: [alternativeFn3, tryReturns, doCatch,
2048 // catchWithLocal, deopt]
2049
2050 f = function f___3___r__c_l_____d () {
2051 var local = 888;
2052 deopt = true;
2053 try {
2054 counter++;
2055 return 4 + invertFunctionCall(increaseAndThrow42);
2056 counter++;
2057 } catch (ex) {
2058 counter++;
2059 local += ex;
2060 counter++;
2061 }
2062 counter++;
2063 }
2064 resetOptAndAssertResultEquals(19, f);
2065 assertEquals(2, counter);
2066
2067 // Variant flags: [alternativeFn3, tryReturns, doCatch,
2068 // catchWithLocal, endReturnLocal]
2069
2070 f = function f___3___r__c_l____l_ () {
2071 var local = 888;
2072 deopt = false;
2073 try {
2074 counter++;
2075 return 4 + invertFunctionCall(increaseAndThrow42);
2076 counter++;
2077 } catch (ex) {
2078 counter++;
2079 local += ex;
2080 counter++;
2081 }
2082 counter++;
2083 return 5 + local;
2084 }
2085 resetOptAndAssertResultEquals(19, f);
2086 assertEquals(2, counter);
2087
2088 // Variant flags: [alternativeFn3, tryReturns, doCatch,
2089 // catchWithLocal, endReturnLocal, deopt]
2090
2091 f = function f___3___r__c_l____ld () {
2092 var local = 888;
2093 deopt = true;
2094 try {
2095 counter++;
2096 return 4 + invertFunctionCall(increaseAndThrow42);
2097 counter++;
2098 } catch (ex) {
2099 counter++;
2100 local += ex;
2101 counter++;
2102 }
2103 counter++;
2104 return 5 + local;
2105 }
2106 resetOptAndAssertResultEquals(19, f);
2107 assertEquals(2, counter);
2108
2109 // Variant flags: [alternativeFn3, tryReturns, doCatch,
2110 // catchWithLocal, catchThrows]
2111
2112 f = function f___3___r__c_lt_____ () {
2113 var local = 888;
2114 deopt = false;
2115 try {
2116 counter++;
2117 return 4 + invertFunctionCall(increaseAndThrow42);
2118 counter++;
2119 } catch (ex) {
2120 counter++;
2121 throw 2 + ex;
2122 counter++;
2123 }
2124 counter++;
2125 }
2126 resetOptAndAssertResultEquals(19, f);
2127 assertEquals(2, counter);
2128
2129 // Variant flags: [alternativeFn3, tryReturns, doCatch,
2130 // catchWithLocal, catchThrows, deopt]
2131
2132 f = function f___3___r__c_lt____d () {
2133 var local = 888;
2134 deopt = true;
2135 try {
2136 counter++;
2137 return 4 + invertFunctionCall(increaseAndThrow42);
2138 counter++;
2139 } catch (ex) {
2140 counter++;
2141 throw 2 + ex;
2142 counter++;
2143 }
2144 counter++;
2145 }
2146 resetOptAndAssertResultEquals(19, f);
2147 assertEquals(2, counter);
2148
2149 // Variant flags: [alternativeFn3, tryReturns, doCatch,
2150 // catchWithLocal, catchThrows, endReturnLocal]
2151
2152 f = function f___3___r__c_lt___l_ () {
2153 var local = 888;
2154 deopt = false;
2155 try {
2156 counter++;
2157 return 4 + invertFunctionCall(increaseAndThrow42);
2002 counter++; 2158 counter++;
2003 } catch (ex) { 2159 } catch (ex) {
2004 counter++; 2160 counter++;
2005 throw 2 + ex; 2161 throw 2 + ex;
2006 counter++; 2162 counter++;
2007 } 2163 }
2008 counter++; 2164 counter++;
2009 return 5 + local; 2165 return 5 + local;
2010 } 2166 }
2011 resetOptAndAssertResultEquals(15, f); 2167 resetOptAndAssertResultEquals(19, f);
2012 assertEquals(2, counter); 2168 assertEquals(2, counter);
2013 2169
2014 // Variant flags: [alternativeFn2, tryReturns, doCatch, 2170 // Variant flags: [alternativeFn3, tryReturns, doCatch,
2015 // catchWithLocal, catchThrows, endReturnLocal, deopt] 2171 // catchWithLocal, catchThrows, endReturnLocal, deopt]
2016 2172
2017 f = function f___2__r__c_lt___ld () { 2173 f = function f___3___r__c_lt___ld () {
2018 var local = 3; 2174 var local = 888;
2019 deopt = true; 2175 deopt = true;
2020 try { 2176 try {
2021 counter++; 2177 counter++;
2022 return invertFunctionCall(increaseAndThrow42); 2178 return 4 + invertFunctionCall(increaseAndThrow42);
2023 counter++; 2179 counter++;
2024 } catch (ex) { 2180 } catch (ex) {
2025 counter++; 2181 counter++;
2026 throw 2 + ex; 2182 throw 2 + ex;
2027 counter++; 2183 counter++;
2028 } 2184 }
2029 counter++; 2185 counter++;
2030 return 5 + local; 2186 return 5 + local;
2031 } 2187 }
2032 resetOptAndAssertResultEquals(15, f); 2188 resetOptAndAssertResultEquals(19, f);
2033 assertEquals(2, counter); 2189 assertEquals(2, counter);
2034 2190
2035 // Variant flags: [alternativeFn2, tryReturns, doCatch, 2191 // Variant flags: [alternativeFn3, tryReturns, doCatch,
2036 // catchReturns] 2192 // catchReturns]
2037 2193
2038 f = function f___2__r__cr_______ () { 2194 f = function f___3___r__cr_______ () {
2039 var local = 3; 2195 var local = 888;
2040 deopt = false; 2196 deopt = false;
2041 try { 2197 try {
2042 counter++; 2198 counter++;
2043 return invertFunctionCall(increaseAndThrow42); 2199 return 4 + invertFunctionCall(increaseAndThrow42);
2044 counter++; 2200 counter++;
2045 } catch (ex) { 2201 } catch (ex) {
2046 counter++; 2202 counter++;
2047 return 2 + ex; 2203 return 2 + ex;
2048 counter++; 2204 counter++;
2049 } 2205 }
2050 counter++; 2206 counter++;
2051 } 2207 }
2052 resetOptAndAssertResultEquals(15, f); 2208 resetOptAndAssertResultEquals(19, f);
2053 assertEquals(2, counter);
2054
2055 // Variant flags: [alternativeFn2, tryReturns, doCatch,
2056 // catchReturns, deopt]
2057
2058 f = function f___2__r__cr______d () {
2059 var local = 3;
2060 deopt = true;
2061 try {
2062 counter++;
2063 return invertFunctionCall(increaseAndThrow42);
2064 counter++;
2065 } catch (ex) {
2066 counter++;
2067 return 2 + ex;
2068 counter++;
2069 }
2070 counter++;
2071 }
2072 resetOptAndAssertResultEquals(15, f);
2073 assertEquals(2, counter);
2074
2075 // Variant flags: [alternativeFn2, tryReturns, doCatch,
2076 // catchReturns, catchWithLocal]
2077
2078 f = function f___2__r__crl______ () {
2079 var local = 3;
2080 deopt = false;
2081 try {
2082 counter++;
2083 return invertFunctionCall(increaseAndThrow42);
2084 counter++;
2085 } catch (ex) {
2086 counter++;
2087 return 2 + local;
2088 counter++;
2089 }
2090 counter++;
2091 }
2092 resetOptAndAssertResultEquals(15, f);
2093 assertEquals(2, counter);
2094
2095 // Variant flags: [alternativeFn2, tryReturns, doCatch,
2096 // catchReturns, catchWithLocal, deopt]
2097
2098 f = function f___2__r__crl_____d () {
2099 var local = 3;
2100 deopt = true;
2101 try {
2102 counter++;
2103 return invertFunctionCall(increaseAndThrow42);
2104 counter++;
2105 } catch (ex) {
2106 counter++;
2107 return 2 + local;
2108 counter++;
2109 }
2110 counter++;
2111 }
2112 resetOptAndAssertResultEquals(15, f);
2113 assertEquals(2, counter); 2209 assertEquals(2, counter);
2114 2210
2115 } 2211 }
2116 %NeverOptimizeFunction(runThisShard); 2212 %NeverOptimizeFunction(runThisShard);
2117 2213
2118 // 94 tests in this shard. 2214 // 97 tests in this shard.
2119 // 94 tests up to here. 2215 // 97 tests up to here.
2120 2216
2121 runThisShard(); 2217 runThisShard();
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/compiler/inline-exception-2.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698