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