1.language ECMAScript 2 3slotNum = 0x1a 4.function any .#*#testComplexThrow(any a0, any a1, any a2) { 5 nop 6label_21: 7 ldai 0x8 8 sta v0 9 ldai 0x9 10 sta v1 11label_12: 12label_14: 13 ldai 0x1 14 sta v4 15 mov v2, v4 16 ldundefined 17 sta v4 18label_10: 19label_8: 20label_16: 21 ldai 0x2 22 sta v8 23 mov v5, v8 24 mov v2, v8 25 tryldglobalbyname 0x0, print 26 callarg1 0x1, v8 27 lda v8 28 throw 29label_9: 30end_label_9: 31label_23: 32 sta v7 33label_18: 34 ldai 0x4 35 sta v9 36 mov v5, v8 37 mov v2, v8 38 tryldglobalbyname 0x3, print 39 callarg1 0x4, v7 40 tryldglobalbyname 0x6, print 41 callarg1 0x7, v8 42 mov v5, v9 43 mov v2, v9 44 lda v9 45 throw 46label_11: 47end_label_11: 48label_24: 49 sta v6 50label_2: 51 mov v2, v5 52 ldundefined 53 eq 0x9, v4 54 jeqz label_3 55label_4: 56 ldai 0x6 57 sta v0 58 tryldglobalbyname 0xa, print 59 callarg1 0xb, v5 60 mov v2, v0 61 lda v0 62 throw 63label_3: 64 ldhole 65 sta v4 66 lda v6 67 noteq 0xd, v4 68 jeqz label_5 69label_6: 70 lda v6 71 throw 72label_5: 73 tryldglobalbyname 0xe, print 74 callarg1 0xf, v5 75label_13: 76end_label_13: 77 jmp label_7 78label_25: 79 sta v3 80label_20: 81 tryldglobalbyname 0x11, print 82 callarg1 0x12, v3 83 tryldglobalbyname 0x14, print 84 callarg1 0x15, v2 85 mov v0, v1 86label_7: 87 tryldglobalbyname 0x17, print 88 callarg1 0x18, v0 89 ldundefined 90 returnundefined 91label_22: 92} 93 94.catchall label_8, end_label_9, label_23 95 96.catchall label_10, end_label_11, label_24 97 98.catchall label_12, end_label_13, label_25 99 100slotNum = 0x6 101.function any .#*#testSimpleThrow(any a0, any a1, any a2) { 102label_1: 103label_0: 104 tryldglobalbyname 0x0, print 105 sta v0 106 ldai 0x1 107 sta v1 108 lda v0 109 callarg1 0x1, v1 110 lda v1 111 throw 112label_2: 113} 114 115slotNum = 0x22 116.function any .#*#testThrowInTry(any a0, any a1, any a2) { 117 nop 118label_35: 119label_18: 120label_24: 121 ldai 0x2 122 sta v1 123 lda v1 124 throw 125label_19: 126end_label_19: 127label_37: 128 sta v0 129label_30: 130 tryldglobalbyname 0x0, print 131 callarg1 0x1, v0 132 tryldglobalbyname 0x3, print 133 callarg1 0x4, v1 134 tryldglobalbyname 0x6, print 135 sta v0 136 ldai 0x4 137 sta v1 138 lda v0 139 callarg1 0x7, v1 140 ldundefined 141 sta v0 142label_20: 143label_14: 144label_26: 145 ldai 0x5 146 sta v3 147 lda v3 148 throw 149label_15: 150end_label_15: 151label_38: 152 sta v2 153label_31: 154 lda v2 155 throw 156label_21: 157end_label_21: 158label_39: 159 sta v1 160label_3: 161 ldai 0x7 162 sta v2 163 ldundefined 164 eq 0x9, v0 165 jeqz label_4 166label_5: 167 tryldglobalbyname 0xa, print 168 callarg1 0xb, v3 169 mov v3, v2 170label_4: 171 ldhole 172 sta v0 173 lda v1 174 noteq 0xd, v0 175 jeqz label_6 176label_7: 177 lda v1 178 throw 179label_6: 180 ldai 0xa 181 sta v0 182 tryldglobalbyname 0xe, print 183 callarg1 0xf, v3 184 ldundefined 185 sta v1 186label_22: 187label_16: 188label_28: 189 ldai 0x8 190 sta v4 191 lda v4 192 throw 193label_17: 194end_label_17: 195label_40: 196 sta v3 197label_33: 198 tryldglobalbyname 0x11, print 199 callarg1 0x12, v3 200 tryldglobalbyname 0x14, print 201 callarg1 0x15, v4 202label_23: 203end_label_23: 204label_8: 205 ldhole 206 sta v3 207 mov v2, v3 208 jmp label_9 209label_41: 210 sta v2 211 mov v0, v4 212label_9: 213 ldai 0xb 214 sta v3 215 ldundefined 216 eq 0x17, v1 217 jeqz label_10 218label_11: 219 tryldglobalbyname 0x18, print 220 callarg1 0x19, v0 221 mov v0, v3 222label_10: 223 ldhole 224 sta v1 225 lda v2 226 noteq 0x1b, v1 227 jeqz label_12 228label_13: 229 lda v2 230 throw 231label_12: 232 tryldglobalbyname 0x1c, print 233 callarg1 0x1d, v0 234 tryldglobalbyname 0x1f, print 235 sta v0 236 ldai 0xc 237 sta v1 238 lda v0 239 callarg1 0x20, v1 240 ldundefined 241 returnundefined 242label_36: 243} 244 245.catchall label_14, end_label_15, label_38 246 247.catchall label_16, end_label_17, label_40 248 249.catchall label_18, end_label_19, label_37 250 251.catchall label_20, end_label_21, label_39 252 253.catchall label_22, end_label_23, label_41 254 255slotNum = 0x1f 256.function any .#*#testTryCatchFinally(any a0, any a1, any a2) { 257 nop 258label_35: 259 ldai 0x2 260 sta v0 261 ldai 0x3 262 sta v1 263label_18: 264label_19: 265end_label_19: 266 jmp label_1 267label_37: 268 sta v3 269label_30: 270 tryldglobalbyname 0x0, print 271 callarg1 0x1, v3 272 tryldglobalbyname 0x3, print 273 callarg1 0x4, v2 274 mov v0, v1 275label_1: 276 ldai 0x4 277 sta v1 278 tryldglobalbyname 0x6, print 279 callarg1 0x7, v0 280 ldundefined 281 sta v0 282label_20: 283label_14: 284label_15: 285end_label_15: 286 jmp label_2 287label_38: 288 sta v7 289label_31: 290 mov v2, v5 291 mov v3, v6 292 lda v7 293 throw 294label_21: 295end_label_21: 296label_2: 297 ldhole 298 sta v5 299 mov v4, v5 300 jmp label_3 301label_39: 302 sta v4 303 mov v1, v2 304 mov v0, v3 305label_3: 306 ldai 0x5 307 sta v2 308 ldundefined 309 eq 0x9, v0 310 jeqz label_4 311label_5: 312 tryldglobalbyname 0xa, print 313 callarg1 0xb, v1 314 mov v1, v2 315label_4: 316 ldhole 317 sta v0 318 lda v4 319 noteq 0xd, v0 320 jeqz label_6 321label_7: 322 lda v4 323 throw 324label_6: 325 ldai 0x7 326 sta v0 327 ldai 0x6 328 sta v2 329 tryldglobalbyname 0xe, print 330 callarg1 0xf, v1 331 ldundefined 332 sta v1 333label_22: 334label_16: 335label_17: 336end_label_17: 337 jmp label_42 338label_40: 339 sta v8 340label_33: 341 mov v3, v6 342 mov v4, v7 343 tryldglobalbyname 0x11, print 344 mov v3, v6 345 mov v4, v7 346 callarg1 0x12, v8 347 mov v3, v6 348 mov v4, v7 349 tryldglobalbyname 0x14, print 350 mov v3, v6 351 mov v4, v7 352 callarg1 0x15, v6 353label_23: 354end_label_23: 355label_43: 356 mov v1, v7 357 jmp label_8 358label_42: 359 mov v0, v2 360label_8: 361 ldhole 362 sta v2 363 mov v5, v2 364 jmp label_9 365label_41: 366 sta v5 367 mov v0, v3 368 mov v1, v4 369label_9: 370 ldai 0x8 371 sta v2 372 ldundefined 373 eq 0x17, v1 374 jeqz label_10 375label_11: 376 tryldglobalbyname 0x18, print 377 callarg1 0x19, v0 378 mov v0, v2 379label_10: 380 ldhole 381 sta v1 382 lda v5 383 noteq 0x1b, v1 384 jeqz label_12 385label_13: 386 lda v5 387 throw 388label_12: 389 tryldglobalbyname 0x1c, print 390 callarg1 0x1d, v0 391 ldundefined 392 returnundefined 393label_36: 394} 395 396.catchall label_14, end_label_15, label_38 397 398.catchall label_16, end_label_17, label_40 399 400.catchall label_18, end_label_19, label_37 401 402.catchall label_20, end_label_21, label_39 403 404.catchall label_22, end_label_23, label_41 405 406slotNum = 0x23 407.function any .#*#testTryCatchFinallyWithReturn(any a0, any a1, any a2) { 408 nop 409label_15: 410label_0: 411 ldai 0x6 412 sta v0 413 ldundefined 414 sta v1 415label_9: 416label_7: 417label_11: 418 ldai 0x3 419 sta v6 420 ldai 0x2 421 sta v7 422 mov v4, v7 423 mov v2, v7 424 tryldglobalbyname 0x0, print 425 callarg1 0x1, v7 426 mov v4, v6 427 mov v2, v6 428 lda v6 429 throw 430label_8: 431end_label_8: 432label_17: 433 sta v5 434label_13: 435 mov v2, v4 436 tryldglobalbyname 0xc, print 437 callarg1 0xd, v5 438 tryldglobalbyname 0xf, print 439 callarg1 0x10, v4 440 ldundefined 441 tryldglobalbyname 0x12, print 442 callarg1 0x13, v4 443 mov v2, v0 444 tryldglobalbyname 0x15, print 445 callarg1 0x16, v0 446 lda v0 447 return 448label_10: 449end_label_10: 450label_18: 451 sta v3 452label_2: 453 ldundefined 454 eq 0x18, v1 455 jeqz label_3 456label_4: 457 tryldglobalbyname 0x19, print 458 callarg1 0x1a, v2 459 tryldglobalbyname 0x1c, print 460 callarg1 0x1d, v0 461 lda v0 462 return 463label_3: 464 ldhole 465 sta v0 466 lda v3 467 noteq 0x1f, v0 468 jeqz label_5 469label_6: 470 lda v3 471 throw 472label_5: 473 tryldglobalbyname 0x20, print 474 sta v0 475 ldai 0x7 476 sta v1 477 lda v0 478 callarg1 0x21, v1 479 lda v1 480 return 481label_16: 482} 483 484.catchall label_7, end_label_8, label_17 485 486.catchall label_9, end_label_10, label_18 487 488slotNum = 0x1e 489.function any .func_main_0(any a0, any a1, any a2) { 490 nop 491label_22: 492label_0: 493 definefunc 0x0, .#*#testComplexThrow, 0x0 494 sta v0 495 definefunc 0x1, .#*#testSimpleThrow, 0x0 496 sta v1 497 definefunc 0x2, .#*#testThrowInTry, 0x0 498 sta v2 499 definefunc 0x3, .#*#testTryCatchFinally, 0x0 500 sta v3 501 definefunc 0x4, .#*#testTryCatchFinallyWithReturn, 0x0 502 sta v4 503 lda v3 504 callarg0 0x5 505label_5: 506label_13: 507 lda v1 508 callarg0 0x7 509label_6: 510end_label_6: 511 jmp label_7 512label_24: 513 sta v3 514label_18: 515 tryldglobalbyname 0x9, print 516 callarg1 0xa, v3 517label_7: 518label_1: 519 lda v2 520 callarg0 0xc 521label_8: 522end_label_8: 523 jmp label_9 524label_25: 525 sta v1 526label_19: 527 tryldglobalbyname 0xe, print 528 callarg1 0xf, v1 529label_9: 530label_2: 531 lda v0 532 callarg0 0x11 533label_10: 534end_label_10: 535 jmp label_11 536label_26: 537 sta v1 538label_20: 539 tryldglobalbyname 0x13, print 540 callarg1 0x14, v1 541label_11: 542label_3: 543 tryldglobalbyname 0x16, print 544 sta v1 545 lda v4 546 callarg0 0x17 547 sta v2 548 lda v1 549 callarg1 0x19, v2 550label_12: 551end_label_12: 552 jmp label_4 553label_27: 554 sta v0 555label_21: 556 tryldglobalbyname 0x1b, print 557 callarg1 0x1c, v0 558label_4: 559 ldundefined 560 returnundefined 561label_23: 562} 563 564.catchall label_5, end_label_6, label_24 565 566.catchall label_7, end_label_8, label_25 567 568.catchall label_9, end_label_10, label_26 569 570.catchall label_11, end_label_12, label_27 571 572 573