1.language ECMAScript 2 3slotNum = 0x1e 4.function any .#*#testNestedTryBlock(any a0, any a1, any a2) { 5 nop 6label_45: 7label_0: 8 ldundefined 9 sta v0 10label_30: 11label_26: 12label_20: 13label_32: 14 ldai 0x1 15 sta v5 16 mov v1, v5 17 lda v5 18 throw 19label_21: 20end_label_21: 21label_47: 22 sta v4 23label_38: 24 mov v1, v5 25 tryldglobalbyname 0x0, print 26 callarg1 0x1, v4 27 tryldglobalbyname 0x3, print 28 callarg1 0x4, v5 29 lda v5 30 throw 31label_27: 32end_label_27: 33label_48: 34 sta v3 35label_39: 36 mov v1, v5 37 tryldglobalbyname 0x6, print 38 callarg1 0x7, v3 39 ldundefined 40 sta v3 41label_22: 42label_18: 43label_34: 44 ldai 0x3 45 sta v6 46 mov v1, v6 47 lda v6 48 throw 49label_19: 50end_label_19: 51label_49: 52 sta v5 53label_40: 54 mov v1, v6 55 lda v5 56 throw 57label_23: 58end_label_23: 59label_50: 60 sta v4 61label_4: 62 ldai 0x5 63 sta v5 64 mov v1, v6 65 ldundefined 66 eq 0x9, v3 67 jeqz label_54 68label_6: 69 tryldglobalbyname 0xa, print 70 callarg1 0xb, v6 71 mov v3, v5 72 jmp label_5 73label_54: 74 mov v3, v6 75label_5: 76 mov v1, v3 77 ldhole 78 sta v5 79 lda v4 80 noteq 0xd, v5 81 jeqz label_2 82label_7: 83 lda v4 84 throw 85label_31: 86end_label_31: 87label_2: 88 ldhole 89 sta v4 90 mov v1, v3 91 mov v2, v4 92 jmp label_8 93label_51: 94 sta v2 95label_8: 96 ldundefined 97 eq 0xe, v0 98 jeqz label_9 99label_10: 100 tryldglobalbyname 0xf, print 101 callarg1 0x10, v1 102 ldundefined 103 sta v0 104label_28: 105label_24: 106label_36: 107 ldai 0x6 108 sta v5 109 mov v1, v5 110 lda v5 111 throw 112label_25: 113end_label_25: 114label_52: 115 sta v4 116label_43: 117 ldai 0x8 118 sta v6 119 mov v1, v5 120 tryldglobalbyname 0x12, print 121 callarg1 0x13, v4 122 tryldglobalbyname 0x15, print 123 callarg1 0x16, v5 124 mov v1, v6 125 lda v6 126 throw 127label_29: 128end_label_29: 129label_53: 130 sta v3 131label_12: 132 ldundefined 133 eq 0x18, v0 134 jeqz label_13 135label_14: 136 tryldglobalbyname 0x19, print 137 callarg1 0x1a, v1 138label_13: 139 ldhole 140 sta v0 141 lda v3 142 noteq 0x1c, v0 143 jeqz label_9 144label_15: 145 lda v3 146 throw 147label_9: 148 ldhole 149 sta v0 150 lda v2 151 noteq 0x1d, v0 152 jeqz label_16 153label_17: 154 lda v2 155 throw 156label_16: 157 ldundefined 158 returnundefined 159label_46: 160} 161 162.catchall label_18, end_label_19, label_49 163 164.catchall label_20, end_label_21, label_47 165 166.catchall label_22, end_label_23, label_50 167 168.catchall label_24, end_label_25, label_52 169 170.catchall label_26, end_label_27, label_48 171 172.catchall label_28, end_label_29, label_53 173 174.catchall label_30, end_label_31, label_51 175 176slotNum = 0x54 177.function any .#*#testTryBlockWithLoop(any a0, any a1, any a2) { 178 nop 179label_71: 180label_0: 181 ldai 0x8 182 sta v0 183 ldai 0x7 184 sta v1 185 ldai 0x5 186 sta v2 187 ldai 0x6 188 sta v3 189 ldai 0x4 190 sta v4 191 ldai 0x2 192 sta v5 193 ldai 0x3 194 sta v6 195 ldai 0xa 196 sta v7 197 ldai 0x1 198 sta v8 199 ldai 0x0 200 sta v9 201 ldundefined 202 sta v10 203 mov v11, v8 204 mov v12, v9 205label_59: 206label_57: 207label_7: 208 mov v16, v10 209 mov v17, v11 210 mov v13, v10 211 mov v14, v11 212 lda v7 213 less 0x0, v9 214 jeqz label_82 215label_2: 216 lda v8 217 add2 0x1, v9 218 sta v9 219 ldundefined 220 sta v19 221label_55: 222label_53: 223label_12: 224 mov v26, v19 225 mov v27, v10 226 mov v28, v12 227 mov v29, v9 228 mov v30, v11 229 mov v20, v19 230 mov v21, v10 231 mov v22, v12 232 mov v23, v9 233 mov v24, v11 234 mov v16, v10 235 mov v17, v11 236 mov v13, v10 237 mov v14, v11 238 lda v7 239 less 0x2, v12 240 jeqz label_33 241label_4: 242 lda v8 243 add2 0x3, v12 244 sta v12 245 mov v28, v12 246 mov v22, v12 247 ldundefined 248 sta v32 249label_51: 250label_49: 251label_61: 252 mov v40, v32 253 mov v41, v19 254 mov v42, v10 255 mov v43, v12 256 mov v44, v9 257 mov v45, v11 258 mov v33, v32 259 mov v34, v19 260 mov v35, v10 261 mov v36, v12 262 mov v37, v9 263 mov v38, v11 264 ldundefined 265 sta v47 266label_47: 267label_45: 268label_62: 269 mov v50, v11 270 mov v48, v11 271 lda v6 272 stricteq 0x4, v9 273 jeqz label_5 274label_6: 275 tryldglobalbyname 0x5, print 276 callarg1 0x6, v11 277 mov v50, v5 278 mov v48, v5 279 mov v45, v5 280 mov v38, v5 281 mov v30, v5 282 mov v24, v5 283 mov v17, v5 284 mov v14, v5 285 tryldglobalbyname 0x8, print 286 callarg1 0x9, v5 287 mov v50, v4 288 mov v48, v4 289 mov v45, v4 290 mov v38, v4 291 mov v30, v4 292 mov v24, v4 293 mov v17, v4 294 mov v14, v4 295 tryldglobalbyname 0xb, print 296 callarg1 0xc, v4 297 mov v11, v3 298 jmp label_59 299label_5: 300 lda v2 301 stricteq 0xe, v9 302 jeqz label_8 303label_9: 304 tryldglobalbyname 0xf, print 305 callarg1 0x10, v11 306 mov v50, v5 307 mov v48, v5 308 mov v45, v5 309 mov v38, v5 310 mov v30, v5 311 mov v24, v5 312 mov v17, v5 313 mov v14, v5 314 tryldglobalbyname 0x12, print 315 callarg1 0x13, v5 316 mov v50, v4 317 mov v48, v4 318 mov v45, v4 319 mov v38, v4 320 mov v30, v4 321 mov v24, v4 322 mov v17, v4 323 mov v14, v4 324 tryldglobalbyname 0x15, print 325 callarg1 0x16, v4 326 jmp label_39 327label_8: 328 lda v6 329 stricteq 0x18, v12 330 jeqz label_10 331label_11: 332 tryldglobalbyname 0x19, print 333 callarg1 0x1a, v11 334 mov v50, v5 335 mov v48, v5 336 mov v45, v5 337 mov v38, v5 338 mov v30, v5 339 mov v24, v5 340 mov v17, v5 341 mov v14, v5 342 tryldglobalbyname 0x1c, print 343 callarg1 0x1d, v5 344 mov v11, v4 345 jmp label_55 346label_10: 347 lda v2 348 stricteq 0x1f, v12 349 jeqz label_13 350label_14: 351 tryldglobalbyname 0x20, print 352 callarg1 0x21, v11 353 mov v50, v5 354 mov v48, v5 355 mov v45, v5 356 mov v38, v5 357 mov v30, v5 358 mov v24, v5 359 mov v17, v5 360 mov v14, v5 361 tryldglobalbyname 0x23, print 362 callarg1 0x24, v5 363 mov v11, v4 364 jmp label_33 365label_13: 366 lda v1 367 stricteq 0x26, v9 368 callruntime.isfalse 0x27 369 jnez label_15 370label_16: 371 lda v2 372 stricteq 0x28, v12 373 callruntime.isfalse 0x29 374 jnez label_15 375label_17: 376 lda v11 377 throw 378label_15: 379 lda v0 380 stricteq 0x2a, v9 381 callruntime.isfalse 0x2b 382 jnez label_21 383label_19: 384 lda v2 385 stricteq 0x2c, v12 386 callruntime.isfalse 0x2d 387 jnez label_21 388label_20: 389 tryldglobalbyname 0x2e, print 390 callarg1 0x2f, v11 391 mov v50, v5 392 mov v48, v5 393 mov v45, v5 394 mov v38, v5 395 mov v30, v5 396 mov v24, v5 397 mov v17, v5 398 mov v14, v5 399 tryldglobalbyname 0x31, print 400 callarg1 0x32, v5 401 mov v50, v4 402 mov v48, v4 403 mov v45, v4 404 mov v38, v4 405 mov v30, v4 406 mov v24, v4 407 mov v17, v4 408 mov v14, v4 409 tryldglobalbyname 0x34, print 410 callarg1 0x35, v4 411 mov v50, v3 412 mov v48, v3 413 mov v45, v3 414 mov v38, v3 415 mov v30, v3 416 mov v24, v3 417 mov v17, v3 418 mov v14, v3 419 tryldglobalbyname 0x37, print 420 callarg1 0x38, v3 421 mov v50, v1 422 mov v48, v1 423 mov v45, v1 424 mov v38, v1 425 mov v30, v1 426 mov v24, v1 427 mov v17, v1 428 mov v14, v1 429 lda v11 430 return 431label_46: 432end_label_46: 433label_73: 434 sta v51 435label_63: 436 mov v48, v50 437 mov v45, v50 438 mov v38, v50 439 mov v30, v50 440 mov v24, v50 441 mov v17, v50 442 mov v14, v50 443 lda v51 444 throw 445label_48: 446end_label_48: 447label_21: 448 ldhole 449 sta v50 450 mov v49, v50 451 jmp label_22 452label_74: 453 sta v49 454 mov v11, v48 455label_22: 456 mov v40, v32 457 mov v41, v19 458 mov v42, v10 459 mov v43, v12 460 mov v44, v9 461 mov v45, v11 462 mov v33, v32 463 mov v34, v19 464 mov v35, v10 465 mov v36, v12 466 mov v37, v9 467 mov v38, v11 468 mov v26, v19 469 mov v27, v10 470 mov v28, v12 471 mov v29, v9 472 mov v30, v11 473 mov v20, v19 474 mov v21, v10 475 mov v22, v12 476 mov v23, v9 477 mov v24, v11 478 mov v16, v10 479 mov v17, v11 480 mov v13, v10 481 mov v14, v11 482 ldundefined 483 eq 0x3a, v47 484 jeqz label_23 485label_24: 486 tryldglobalbyname 0x3b, print 487 mov v33, v32 488 mov v34, v19 489 mov v35, v10 490 mov v36, v12 491 mov v37, v9 492 callarg1 0x3c, v11 493 mov v11, v5 494label_23: 495 mov v45, v11 496 mov v38, v11 497 mov v30, v11 498 mov v24, v11 499 mov v17, v11 500 mov v14, v11 501 ldhole 502 sta v47 503 lda v49 504 noteq 0x3e, v47 505 jeqz label_27 506label_26: 507 lda v49 508 throw 509label_50: 510end_label_50: 511label_75: 512 sta v46 513label_65: 514 mov v33, v40 515 mov v34, v41 516 mov v35, v42 517 mov v36, v43 518 mov v37, v44 519 mov v38, v45 520 mov v26, v41 521 mov v27, v42 522 mov v28, v43 523 mov v29, v44 524 mov v30, v45 525 mov v20, v41 526 mov v21, v42 527 mov v22, v43 528 mov v23, v44 529 mov v24, v45 530 mov v16, v42 531 mov v17, v45 532 mov v13, v42 533 mov v14, v45 534 tryldglobalbyname 0x3f, print 535 callarg1 0x40, v46 536 tryldglobalbyname 0x42, print 537 callarg1 0x43, v45 538label_52: 539end_label_52: 540label_81: 541 mov v11, v6 542 mov v9, v44 543 mov v12, v43 544 mov v10, v42 545 mov v19, v41 546 mov v32, v40 547label_27: 548 mov v26, v19 549 mov v27, v10 550 mov v28, v12 551 mov v29, v9 552 mov v30, v11 553 mov v20, v19 554 mov v21, v10 555 mov v22, v12 556 mov v23, v9 557 mov v24, v11 558 mov v16, v10 559 mov v17, v11 560 mov v13, v10 561 mov v14, v11 562 ldhole 563 sta v40 564 mov v39, v40 565 jmp label_28 566label_76: 567 sta v39 568 mov v11, v38 569 mov v9, v37 570 mov v12, v36 571 mov v10, v35 572 mov v19, v34 573 mov v32, v33 574label_28: 575 mov v26, v19 576 mov v27, v10 577 mov v28, v12 578 mov v29, v9 579 mov v30, v11 580 mov v20, v19 581 mov v21, v10 582 mov v22, v12 583 mov v23, v9 584 mov v24, v11 585 mov v16, v10 586 mov v17, v11 587 mov v13, v10 588 mov v14, v11 589 ldundefined 590 eq 0x45, v32 591 jeqz label_29 592label_30: 593 mov v26, v19 594 mov v27, v10 595 mov v28, v12 596 mov v29, v9 597 mov v20, v19 598 mov v21, v10 599 mov v22, v12 600 mov v23, v9 601 tryldglobalbyname 0x46, print 602 callarg1 0x47, v11 603 mov v11, v4 604label_29: 605 mov v30, v11 606 mov v24, v11 607 mov v17, v11 608 mov v14, v11 609 ldhole 610 sta v32 611 lda v39 612 noteq 0x49, v32 613 jeqz label_54 614label_32: 615 lda v39 616 throw 617label_54: 618end_label_54: 619 jmp label_55 620label_77: 621 sta v31 622label_67: 623 mov v20, v26 624 mov v21, v27 625 mov v22, v28 626 mov v23, v29 627 mov v24, v30 628 mov v16, v27 629 mov v17, v30 630 mov v13, v27 631 mov v14, v30 632 lda v31 633 throw 634label_56: 635end_label_56: 636label_33: 637 mov v17, v11 638 mov v14, v11 639 ldhole 640 sta v26 641 mov v25, v26 642 jmp label_34 643label_78: 644 sta v25 645 mov v11, v24 646 mov v9, v23 647 mov v12, v22 648 mov v10, v21 649 mov v19, v20 650label_34: 651 mov v16, v10 652 mov v17, v11 653 mov v13, v10 654 mov v14, v11 655 ldundefined 656 eq 0x4a, v19 657 jeqz label_35 658label_36: 659 mov v16, v10 660 mov v13, v10 661 tryldglobalbyname 0x4b, print 662 callarg1 0x4c, v11 663 mov v11, v3 664label_35: 665 mov v17, v11 666 mov v14, v11 667 ldhole 668 sta v19 669 lda v25 670 noteq 0x4e, v19 671 jeqz label_58 672label_38: 673 lda v25 674 throw 675label_58: 676end_label_58: 677 jmp label_59 678label_79: 679 sta v18 680label_69: 681 mov v13, v16 682 mov v14, v17 683 lda v18 684 throw 685label_60: 686end_label_60: 687label_82: 688 mov v3, v11 689label_39: 690 ldhole 691 sta v0 692 mov v15, v0 693 jmp label_40 694label_80: 695 sta v15 696 mov v3, v14 697 mov v10, v13 698label_40: 699 ldundefined 700 eq 0x4f, v10 701 jeqz label_41 702label_42: 703 tryldglobalbyname 0x50, print 704 callarg1 0x51, v3 705label_41: 706 ldhole 707 sta v0 708 lda v15 709 noteq 0x53, v0 710 jeqz label_43 711label_44: 712 lda v15 713 throw 714label_43: 715 ldundefined 716 returnundefined 717label_72: 718} 719 720.catchall label_45, end_label_46, label_73 721 722.catchall label_47, end_label_48, label_74 723 724.catchall label_49, end_label_50, label_75 725 726.catchall label_51, end_label_52, label_76 727 728.catchall label_53, end_label_54, label_77 729 730.catchall label_55, end_label_56, label_78 731 732.catchall label_57, end_label_58, label_79 733 734.catchall label_59, end_label_60, label_80 735 736slotNum = 0xc 737.function any .func_main_0(any a0, any a1, any a2) { 738 nop 739label_12: 740label_0: 741 definefunc 0x0, .#*#testNestedTryBlock, 0x0 742 sta v0 743 definefunc 0x1, .#*#testTryBlockWithLoop, 0x0 744 sta v1 745label_3: 746label_7: 747 lda v0 748 callarg0 0x2 749label_4: 750end_label_4: 751 jmp label_5 752label_14: 753 sta v2 754label_10: 755 tryldglobalbyname 0x4, print 756 callarg1 0x5, v2 757label_5: 758label_1: 759 lda v1 760 callarg0 0x7 761label_6: 762end_label_6: 763 jmp label_2 764label_15: 765 sta v0 766label_11: 767 tryldglobalbyname 0x9, print 768 callarg1 0xa, v0 769label_2: 770 ldundefined 771 returnundefined 772label_13: 773} 774 775.catchall label_3, end_label_4, label_14 776 777.catchall label_5, end_label_6, label_15 778 779 780