1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "TSTypeAliasDeclaration", 6 "id": { 7 "type": "Identifier", 8 "name": "Alias", 9 "decorators": [], 10 "loc": { 11 "start": { 12 "line": 32, 13 "column": 6, 14 "program": "await_complex_promise.ets" 15 }, 16 "end": { 17 "line": 32, 18 "column": 11, 19 "program": "await_complex_promise.ets" 20 } 21 } 22 }, 23 "typeAnnotation": { 24 "type": "ETSUnionType", 25 "types": [ 26 { 27 "type": "ETSTypeReference", 28 "part": { 29 "type": "ETSTypeReferencePart", 30 "name": { 31 "type": "Identifier", 32 "name": "Promise", 33 "decorators": [], 34 "loc": { 35 "start": { 36 "line": 32, 37 "column": 14, 38 "program": "await_complex_promise.ets" 39 }, 40 "end": { 41 "line": 32, 42 "column": 21, 43 "program": "await_complex_promise.ets" 44 } 45 } 46 }, 47 "typeParams": { 48 "type": "TSTypeParameterInstantiation", 49 "params": [ 50 { 51 "type": "ETSTypeReference", 52 "part": { 53 "type": "ETSTypeReferencePart", 54 "name": { 55 "type": "Identifier", 56 "name": "string", 57 "decorators": [], 58 "loc": { 59 "start": { 60 "line": 32, 61 "column": 22, 62 "program": "await_complex_promise.ets" 63 }, 64 "end": { 65 "line": 32, 66 "column": 28, 67 "program": "await_complex_promise.ets" 68 } 69 } 70 }, 71 "loc": { 72 "start": { 73 "line": 32, 74 "column": 22, 75 "program": "await_complex_promise.ets" 76 }, 77 "end": { 78 "line": 32, 79 "column": 29, 80 "program": "await_complex_promise.ets" 81 } 82 } 83 }, 84 "loc": { 85 "start": { 86 "line": 32, 87 "column": 22, 88 "program": "await_complex_promise.ets" 89 }, 90 "end": { 91 "line": 32, 92 "column": 29, 93 "program": "await_complex_promise.ets" 94 } 95 } 96 } 97 ], 98 "loc": { 99 "start": { 100 "line": 32, 101 "column": 21, 102 "program": "await_complex_promise.ets" 103 }, 104 "end": { 105 "line": 32, 106 "column": 29, 107 "program": "await_complex_promise.ets" 108 } 109 } 110 }, 111 "loc": { 112 "start": { 113 "line": 32, 114 "column": 14, 115 "program": "await_complex_promise.ets" 116 }, 117 "end": { 118 "line": 32, 119 "column": 30, 120 "program": "await_complex_promise.ets" 121 } 122 } 123 }, 124 "loc": { 125 "start": { 126 "line": 32, 127 "column": 14, 128 "program": "await_complex_promise.ets" 129 }, 130 "end": { 131 "line": 32, 132 "column": 30, 133 "program": "await_complex_promise.ets" 134 } 135 } 136 }, 137 { 138 "type": "ETSTypeReference", 139 "part": { 140 "type": "ETSTypeReferencePart", 141 "name": { 142 "type": "Identifier", 143 "name": "number", 144 "decorators": [], 145 "loc": { 146 "start": { 147 "line": 32, 148 "column": 30, 149 "program": "await_complex_promise.ets" 150 }, 151 "end": { 152 "line": 32, 153 "column": 36, 154 "program": "await_complex_promise.ets" 155 } 156 } 157 }, 158 "loc": { 159 "start": { 160 "line": 32, 161 "column": 30, 162 "program": "await_complex_promise.ets" 163 }, 164 "end": { 165 "line": 32, 166 "column": 37, 167 "program": "await_complex_promise.ets" 168 } 169 } 170 }, 171 "loc": { 172 "start": { 173 "line": 32, 174 "column": 30, 175 "program": "await_complex_promise.ets" 176 }, 177 "end": { 178 "line": 32, 179 "column": 37, 180 "program": "await_complex_promise.ets" 181 } 182 } 183 } 184 ], 185 "loc": { 186 "start": { 187 "line": 32, 188 "column": 14, 189 "program": "await_complex_promise.ets" 190 }, 191 "end": { 192 "line": 32, 193 "column": 37, 194 "program": "await_complex_promise.ets" 195 } 196 } 197 }, 198 "loc": { 199 "start": { 200 "line": 32, 201 "column": 1, 202 "program": "await_complex_promise.ets" 203 }, 204 "end": { 205 "line": 32, 206 "column": 37, 207 "program": "await_complex_promise.ets" 208 } 209 } 210 }, 211 { 212 "type": "ClassDeclaration", 213 "definition": { 214 "id": { 215 "type": "Identifier", 216 "name": "ETSGLOBAL", 217 "decorators": [], 218 "loc": { 219 "start": { 220 "line": 1, 221 "column": 1, 222 "program": "await_complex_promise.ets" 223 }, 224 "end": { 225 "line": 1, 226 "column": 1, 227 "program": "await_complex_promise.ets" 228 } 229 } 230 }, 231 "superClass": null, 232 "implements": [], 233 "body": [ 234 { 235 "type": "MethodDefinition", 236 "key": { 237 "type": "Identifier", 238 "name": "main", 239 "decorators": [], 240 "loc": { 241 "start": { 242 "line": 1, 243 "column": 1, 244 "program": null 245 }, 246 "end": { 247 "line": 1, 248 "column": 1, 249 "program": null 250 } 251 } 252 }, 253 "kind": "method", 254 "accessibility": "public", 255 "static": true, 256 "optional": false, 257 "computed": false, 258 "value": { 259 "type": "FunctionExpression", 260 "function": { 261 "type": "ScriptFunction", 262 "id": { 263 "type": "Identifier", 264 "name": "main", 265 "decorators": [], 266 "loc": { 267 "start": { 268 "line": 1, 269 "column": 1, 270 "program": null 271 }, 272 "end": { 273 "line": 1, 274 "column": 1, 275 "program": null 276 } 277 } 278 }, 279 "generator": false, 280 "async": false, 281 "expression": false, 282 "params": [], 283 "body": { 284 "type": "BlockStatement", 285 "statements": [], 286 "loc": { 287 "start": { 288 "line": 1, 289 "column": 1, 290 "program": null 291 }, 292 "end": { 293 "line": 1, 294 "column": 1, 295 "program": null 296 } 297 } 298 }, 299 "loc": { 300 "start": { 301 "line": 1, 302 "column": 1, 303 "program": null 304 }, 305 "end": { 306 "line": 1, 307 "column": 1, 308 "program": null 309 } 310 } 311 }, 312 "loc": { 313 "start": { 314 "line": 1, 315 "column": 1, 316 "program": null 317 }, 318 "end": { 319 "line": 1, 320 "column": 1, 321 "program": null 322 } 323 } 324 }, 325 "overloads": [], 326 "decorators": [], 327 "loc": { 328 "start": { 329 "line": 1, 330 "column": 1, 331 "program": "await_complex_promise.ets" 332 }, 333 "end": { 334 "line": 1, 335 "column": 1, 336 "program": "await_complex_promise.ets" 337 } 338 } 339 }, 340 { 341 "type": "MethodDefinition", 342 "key": { 343 "type": "Identifier", 344 "name": "_$init$_", 345 "decorators": [], 346 "loc": { 347 "start": { 348 "line": 1, 349 "column": 1, 350 "program": null 351 }, 352 "end": { 353 "line": 1, 354 "column": 1, 355 "program": null 356 } 357 } 358 }, 359 "kind": "method", 360 "accessibility": "public", 361 "static": true, 362 "optional": false, 363 "computed": false, 364 "value": { 365 "type": "FunctionExpression", 366 "function": { 367 "type": "ScriptFunction", 368 "id": { 369 "type": "Identifier", 370 "name": "_$init$_", 371 "decorators": [], 372 "loc": { 373 "start": { 374 "line": 1, 375 "column": 1, 376 "program": null 377 }, 378 "end": { 379 "line": 1, 380 "column": 1, 381 "program": null 382 } 383 } 384 }, 385 "generator": false, 386 "async": false, 387 "expression": false, 388 "params": [], 389 "body": { 390 "type": "BlockStatement", 391 "statements": [], 392 "loc": { 393 "start": { 394 "line": 1, 395 "column": 1, 396 "program": null 397 }, 398 "end": { 399 "line": 1, 400 "column": 1, 401 "program": null 402 } 403 } 404 }, 405 "loc": { 406 "start": { 407 "line": 1, 408 "column": 1, 409 "program": null 410 }, 411 "end": { 412 "line": 1, 413 "column": 1, 414 "program": null 415 } 416 } 417 }, 418 "loc": { 419 "start": { 420 "line": 1, 421 "column": 1, 422 "program": null 423 }, 424 "end": { 425 "line": 1, 426 "column": 1, 427 "program": null 428 } 429 } 430 }, 431 "overloads": [], 432 "decorators": [], 433 "loc": { 434 "start": { 435 "line": 1, 436 "column": 1, 437 "program": "await_complex_promise.ets" 438 }, 439 "end": { 440 "line": 1, 441 "column": 1, 442 "program": "await_complex_promise.ets" 443 } 444 } 445 }, 446 { 447 "type": "MethodDefinition", 448 "key": { 449 "type": "Identifier", 450 "name": "foo1", 451 "decorators": [], 452 "loc": { 453 "start": { 454 "line": 16, 455 "column": 10, 456 "program": "await_complex_promise.ets" 457 }, 458 "end": { 459 "line": 16, 460 "column": 14, 461 "program": "await_complex_promise.ets" 462 } 463 } 464 }, 465 "kind": "method", 466 "accessibility": "public", 467 "static": true, 468 "optional": false, 469 "computed": false, 470 "value": { 471 "type": "FunctionExpression", 472 "function": { 473 "type": "ScriptFunction", 474 "id": { 475 "type": "Identifier", 476 "name": "foo1", 477 "decorators": [], 478 "loc": { 479 "start": { 480 "line": 16, 481 "column": 10, 482 "program": "await_complex_promise.ets" 483 }, 484 "end": { 485 "line": 16, 486 "column": 14, 487 "program": "await_complex_promise.ets" 488 } 489 } 490 }, 491 "generator": false, 492 "async": false, 493 "expression": false, 494 "params": [ 495 { 496 "type": "ETSParameterExpression", 497 "name": { 498 "type": "Identifier", 499 "name": "p", 500 "typeAnnotation": { 501 "type": "ETSTypeReference", 502 "part": { 503 "type": "ETSTypeReferencePart", 504 "name": { 505 "type": "Identifier", 506 "name": "Promise", 507 "decorators": [], 508 "loc": { 509 "start": { 510 "line": 16, 511 "column": 18, 512 "program": "await_complex_promise.ets" 513 }, 514 "end": { 515 "line": 16, 516 "column": 25, 517 "program": "await_complex_promise.ets" 518 } 519 } 520 }, 521 "typeParams": { 522 "type": "TSTypeParameterInstantiation", 523 "params": [ 524 { 525 "type": "ETSTypeReference", 526 "part": { 527 "type": "ETSTypeReferencePart", 528 "name": { 529 "type": "Identifier", 530 "name": "Promise", 531 "decorators": [], 532 "loc": { 533 "start": { 534 "line": 16, 535 "column": 26, 536 "program": "await_complex_promise.ets" 537 }, 538 "end": { 539 "line": 16, 540 "column": 33, 541 "program": "await_complex_promise.ets" 542 } 543 } 544 }, 545 "typeParams": { 546 "type": "TSTypeParameterInstantiation", 547 "params": [ 548 { 549 "type": "ETSTypeReference", 550 "part": { 551 "type": "ETSTypeReferencePart", 552 "name": { 553 "type": "Identifier", 554 "name": "string", 555 "decorators": [], 556 "loc": { 557 "start": { 558 "line": 16, 559 "column": 34, 560 "program": "await_complex_promise.ets" 561 }, 562 "end": { 563 "line": 16, 564 "column": 40, 565 "program": "await_complex_promise.ets" 566 } 567 } 568 }, 569 "loc": { 570 "start": { 571 "line": 16, 572 "column": 34, 573 "program": "await_complex_promise.ets" 574 }, 575 "end": { 576 "line": 16, 577 "column": 42, 578 "program": "await_complex_promise.ets" 579 } 580 } 581 }, 582 "loc": { 583 "start": { 584 "line": 16, 585 "column": 34, 586 "program": "await_complex_promise.ets" 587 }, 588 "end": { 589 "line": 16, 590 "column": 42, 591 "program": "await_complex_promise.ets" 592 } 593 } 594 } 595 ], 596 "loc": { 597 "start": { 598 "line": 16, 599 "column": 33, 600 "program": "await_complex_promise.ets" 601 }, 602 "end": { 603 "line": 16, 604 "column": 42, 605 "program": "await_complex_promise.ets" 606 } 607 } 608 }, 609 "loc": { 610 "start": { 611 "line": 16, 612 "column": 26, 613 "program": "await_complex_promise.ets" 614 }, 615 "end": { 616 "line": 16, 617 "column": 42, 618 "program": "await_complex_promise.ets" 619 } 620 } 621 }, 622 "loc": { 623 "start": { 624 "line": 16, 625 "column": 26, 626 "program": "await_complex_promise.ets" 627 }, 628 "end": { 629 "line": 16, 630 "column": 42, 631 "program": "await_complex_promise.ets" 632 } 633 } 634 } 635 ], 636 "loc": { 637 "start": { 638 "line": 16, 639 "column": 25, 640 "program": "await_complex_promise.ets" 641 }, 642 "end": { 643 "line": 16, 644 "column": 42, 645 "program": "await_complex_promise.ets" 646 } 647 } 648 }, 649 "loc": { 650 "start": { 651 "line": 16, 652 "column": 18, 653 "program": "await_complex_promise.ets" 654 }, 655 "end": { 656 "line": 16, 657 "column": 43, 658 "program": "await_complex_promise.ets" 659 } 660 } 661 }, 662 "loc": { 663 "start": { 664 "line": 16, 665 "column": 18, 666 "program": "await_complex_promise.ets" 667 }, 668 "end": { 669 "line": 16, 670 "column": 43, 671 "program": "await_complex_promise.ets" 672 } 673 } 674 }, 675 "decorators": [], 676 "loc": { 677 "start": { 678 "line": 16, 679 "column": 15, 680 "program": "await_complex_promise.ets" 681 }, 682 "end": { 683 "line": 16, 684 "column": 43, 685 "program": "await_complex_promise.ets" 686 } 687 } 688 }, 689 "loc": { 690 "start": { 691 "line": 16, 692 "column": 15, 693 "program": "await_complex_promise.ets" 694 }, 695 "end": { 696 "line": 16, 697 "column": 43, 698 "program": "await_complex_promise.ets" 699 } 700 } 701 } 702 ], 703 "returnType": { 704 "type": "ETSPrimitiveType", 705 "loc": { 706 "start": { 707 "line": 16, 708 "column": 45, 709 "program": "await_complex_promise.ets" 710 }, 711 "end": { 712 "line": 16, 713 "column": 49, 714 "program": "await_complex_promise.ets" 715 } 716 } 717 }, 718 "body": { 719 "type": "BlockStatement", 720 "statements": [ 721 { 722 "type": "VariableDeclaration", 723 "declarations": [ 724 { 725 "type": "VariableDeclarator", 726 "id": { 727 "type": "Identifier", 728 "name": "result", 729 "typeAnnotation": { 730 "type": "ETSTypeReference", 731 "part": { 732 "type": "ETSTypeReferencePart", 733 "name": { 734 "type": "Identifier", 735 "name": "string", 736 "decorators": [], 737 "loc": { 738 "start": { 739 "line": 17, 740 "column": 17, 741 "program": "await_complex_promise.ets" 742 }, 743 "end": { 744 "line": 17, 745 "column": 23, 746 "program": "await_complex_promise.ets" 747 } 748 } 749 }, 750 "loc": { 751 "start": { 752 "line": 17, 753 "column": 17, 754 "program": "await_complex_promise.ets" 755 }, 756 "end": { 757 "line": 17, 758 "column": 25, 759 "program": "await_complex_promise.ets" 760 } 761 } 762 }, 763 "loc": { 764 "start": { 765 "line": 17, 766 "column": 17, 767 "program": "await_complex_promise.ets" 768 }, 769 "end": { 770 "line": 17, 771 "column": 25, 772 "program": "await_complex_promise.ets" 773 } 774 } 775 }, 776 "decorators": [], 777 "loc": { 778 "start": { 779 "line": 17, 780 "column": 9, 781 "program": "await_complex_promise.ets" 782 }, 783 "end": { 784 "line": 17, 785 "column": 15, 786 "program": "await_complex_promise.ets" 787 } 788 } 789 }, 790 "init": { 791 "type": "AwaitExpression", 792 "argument": { 793 "type": "Identifier", 794 "name": "p", 795 "decorators": [], 796 "loc": { 797 "start": { 798 "line": 17, 799 "column": 32, 800 "program": "await_complex_promise.ets" 801 }, 802 "end": { 803 "line": 17, 804 "column": 33, 805 "program": "await_complex_promise.ets" 806 } 807 } 808 }, 809 "loc": { 810 "start": { 811 "line": 17, 812 "column": 26, 813 "program": "await_complex_promise.ets" 814 }, 815 "end": { 816 "line": 17, 817 "column": 33, 818 "program": "await_complex_promise.ets" 819 } 820 } 821 }, 822 "loc": { 823 "start": { 824 "line": 17, 825 "column": 9, 826 "program": "await_complex_promise.ets" 827 }, 828 "end": { 829 "line": 17, 830 "column": 33, 831 "program": "await_complex_promise.ets" 832 } 833 } 834 } 835 ], 836 "kind": "let", 837 "loc": { 838 "start": { 839 "line": 17, 840 "column": 5, 841 "program": "await_complex_promise.ets" 842 }, 843 "end": { 844 "line": 17, 845 "column": 34, 846 "program": "await_complex_promise.ets" 847 } 848 } 849 } 850 ], 851 "loc": { 852 "start": { 853 "line": 16, 854 "column": 50, 855 "program": "await_complex_promise.ets" 856 }, 857 "end": { 858 "line": 18, 859 "column": 2, 860 "program": "await_complex_promise.ets" 861 } 862 } 863 }, 864 "loc": { 865 "start": { 866 "line": 16, 867 "column": 10, 868 "program": "await_complex_promise.ets" 869 }, 870 "end": { 871 "line": 18, 872 "column": 2, 873 "program": "await_complex_promise.ets" 874 } 875 } 876 }, 877 "loc": { 878 "start": { 879 "line": 16, 880 "column": 10, 881 "program": "await_complex_promise.ets" 882 }, 883 "end": { 884 "line": 18, 885 "column": 2, 886 "program": "await_complex_promise.ets" 887 } 888 } 889 }, 890 "overloads": [], 891 "decorators": [], 892 "loc": { 893 "start": { 894 "line": 16, 895 "column": 1, 896 "program": "await_complex_promise.ets" 897 }, 898 "end": { 899 "line": 18, 900 "column": 2, 901 "program": "await_complex_promise.ets" 902 } 903 } 904 }, 905 { 906 "type": "MethodDefinition", 907 "key": { 908 "type": "Identifier", 909 "name": "foo2", 910 "decorators": [], 911 "loc": { 912 "start": { 913 "line": 20, 914 "column": 10, 915 "program": "await_complex_promise.ets" 916 }, 917 "end": { 918 "line": 20, 919 "column": 14, 920 "program": "await_complex_promise.ets" 921 } 922 } 923 }, 924 "kind": "method", 925 "accessibility": "public", 926 "static": true, 927 "optional": false, 928 "computed": false, 929 "value": { 930 "type": "FunctionExpression", 931 "function": { 932 "type": "ScriptFunction", 933 "id": { 934 "type": "Identifier", 935 "name": "foo2", 936 "decorators": [], 937 "loc": { 938 "start": { 939 "line": 20, 940 "column": 10, 941 "program": "await_complex_promise.ets" 942 }, 943 "end": { 944 "line": 20, 945 "column": 14, 946 "program": "await_complex_promise.ets" 947 } 948 } 949 }, 950 "generator": false, 951 "async": false, 952 "expression": false, 953 "params": [ 954 { 955 "type": "ETSParameterExpression", 956 "name": { 957 "type": "Identifier", 958 "name": "p", 959 "typeAnnotation": { 960 "type": "ETSTypeReference", 961 "part": { 962 "type": "ETSTypeReferencePart", 963 "name": { 964 "type": "Identifier", 965 "name": "Promise", 966 "decorators": [], 967 "loc": { 968 "start": { 969 "line": 20, 970 "column": 18, 971 "program": "await_complex_promise.ets" 972 }, 973 "end": { 974 "line": 20, 975 "column": 25, 976 "program": "await_complex_promise.ets" 977 } 978 } 979 }, 980 "typeParams": { 981 "type": "TSTypeParameterInstantiation", 982 "params": [ 983 { 984 "type": "ETSUnionType", 985 "types": [ 986 { 987 "type": "ETSTypeReference", 988 "part": { 989 "type": "ETSTypeReferencePart", 990 "name": { 991 "type": "Identifier", 992 "name": "Promise", 993 "decorators": [], 994 "loc": { 995 "start": { 996 "line": 20, 997 "column": 26, 998 "program": "await_complex_promise.ets" 999 }, 1000 "end": { 1001 "line": 20, 1002 "column": 33, 1003 "program": "await_complex_promise.ets" 1004 } 1005 } 1006 }, 1007 "typeParams": { 1008 "type": "TSTypeParameterInstantiation", 1009 "params": [ 1010 { 1011 "type": "ETSTypeReference", 1012 "part": { 1013 "type": "ETSTypeReferencePart", 1014 "name": { 1015 "type": "Identifier", 1016 "name": "string", 1017 "decorators": [], 1018 "loc": { 1019 "start": { 1020 "line": 20, 1021 "column": 34, 1022 "program": "await_complex_promise.ets" 1023 }, 1024 "end": { 1025 "line": 20, 1026 "column": 40, 1027 "program": "await_complex_promise.ets" 1028 } 1029 } 1030 }, 1031 "loc": { 1032 "start": { 1033 "line": 20, 1034 "column": 34, 1035 "program": "await_complex_promise.ets" 1036 }, 1037 "end": { 1038 "line": 20, 1039 "column": 41, 1040 "program": "await_complex_promise.ets" 1041 } 1042 } 1043 }, 1044 "loc": { 1045 "start": { 1046 "line": 20, 1047 "column": 34, 1048 "program": "await_complex_promise.ets" 1049 }, 1050 "end": { 1051 "line": 20, 1052 "column": 41, 1053 "program": "await_complex_promise.ets" 1054 } 1055 } 1056 } 1057 ], 1058 "loc": { 1059 "start": { 1060 "line": 20, 1061 "column": 33, 1062 "program": "await_complex_promise.ets" 1063 }, 1064 "end": { 1065 "line": 20, 1066 "column": 41, 1067 "program": "await_complex_promise.ets" 1068 } 1069 } 1070 }, 1071 "loc": { 1072 "start": { 1073 "line": 20, 1074 "column": 26, 1075 "program": "await_complex_promise.ets" 1076 }, 1077 "end": { 1078 "line": 20, 1079 "column": 42, 1080 "program": "await_complex_promise.ets" 1081 } 1082 } 1083 }, 1084 "loc": { 1085 "start": { 1086 "line": 20, 1087 "column": 26, 1088 "program": "await_complex_promise.ets" 1089 }, 1090 "end": { 1091 "line": 20, 1092 "column": 42, 1093 "program": "await_complex_promise.ets" 1094 } 1095 } 1096 }, 1097 { 1098 "type": "ETSTypeReference", 1099 "part": { 1100 "type": "ETSTypeReferencePart", 1101 "name": { 1102 "type": "Identifier", 1103 "name": "number", 1104 "decorators": [], 1105 "loc": { 1106 "start": { 1107 "line": 20, 1108 "column": 42, 1109 "program": "await_complex_promise.ets" 1110 }, 1111 "end": { 1112 "line": 20, 1113 "column": 48, 1114 "program": "await_complex_promise.ets" 1115 } 1116 } 1117 }, 1118 "loc": { 1119 "start": { 1120 "line": 20, 1121 "column": 42, 1122 "program": "await_complex_promise.ets" 1123 }, 1124 "end": { 1125 "line": 20, 1126 "column": 49, 1127 "program": "await_complex_promise.ets" 1128 } 1129 } 1130 }, 1131 "loc": { 1132 "start": { 1133 "line": 20, 1134 "column": 42, 1135 "program": "await_complex_promise.ets" 1136 }, 1137 "end": { 1138 "line": 20, 1139 "column": 49, 1140 "program": "await_complex_promise.ets" 1141 } 1142 } 1143 } 1144 ], 1145 "loc": { 1146 "start": { 1147 "line": 20, 1148 "column": 26, 1149 "program": "await_complex_promise.ets" 1150 }, 1151 "end": { 1152 "line": 20, 1153 "column": 49, 1154 "program": "await_complex_promise.ets" 1155 } 1156 } 1157 } 1158 ], 1159 "loc": { 1160 "start": { 1161 "line": 20, 1162 "column": 25, 1163 "program": "await_complex_promise.ets" 1164 }, 1165 "end": { 1166 "line": 20, 1167 "column": 49, 1168 "program": "await_complex_promise.ets" 1169 } 1170 } 1171 }, 1172 "loc": { 1173 "start": { 1174 "line": 20, 1175 "column": 18, 1176 "program": "await_complex_promise.ets" 1177 }, 1178 "end": { 1179 "line": 20, 1180 "column": 50, 1181 "program": "await_complex_promise.ets" 1182 } 1183 } 1184 }, 1185 "loc": { 1186 "start": { 1187 "line": 20, 1188 "column": 18, 1189 "program": "await_complex_promise.ets" 1190 }, 1191 "end": { 1192 "line": 20, 1193 "column": 50, 1194 "program": "await_complex_promise.ets" 1195 } 1196 } 1197 }, 1198 "decorators": [], 1199 "loc": { 1200 "start": { 1201 "line": 20, 1202 "column": 15, 1203 "program": "await_complex_promise.ets" 1204 }, 1205 "end": { 1206 "line": 20, 1207 "column": 50, 1208 "program": "await_complex_promise.ets" 1209 } 1210 } 1211 }, 1212 "loc": { 1213 "start": { 1214 "line": 20, 1215 "column": 15, 1216 "program": "await_complex_promise.ets" 1217 }, 1218 "end": { 1219 "line": 20, 1220 "column": 50, 1221 "program": "await_complex_promise.ets" 1222 } 1223 } 1224 } 1225 ], 1226 "returnType": { 1227 "type": "ETSPrimitiveType", 1228 "loc": { 1229 "start": { 1230 "line": 20, 1231 "column": 52, 1232 "program": "await_complex_promise.ets" 1233 }, 1234 "end": { 1235 "line": 20, 1236 "column": 56, 1237 "program": "await_complex_promise.ets" 1238 } 1239 } 1240 }, 1241 "body": { 1242 "type": "BlockStatement", 1243 "statements": [ 1244 { 1245 "type": "VariableDeclaration", 1246 "declarations": [ 1247 { 1248 "type": "VariableDeclarator", 1249 "id": { 1250 "type": "Identifier", 1251 "name": "result", 1252 "typeAnnotation": { 1253 "type": "ETSUnionType", 1254 "types": [ 1255 { 1256 "type": "ETSTypeReference", 1257 "part": { 1258 "type": "ETSTypeReferencePart", 1259 "name": { 1260 "type": "Identifier", 1261 "name": "string", 1262 "decorators": [], 1263 "loc": { 1264 "start": { 1265 "line": 21, 1266 "column": 17, 1267 "program": "await_complex_promise.ets" 1268 }, 1269 "end": { 1270 "line": 21, 1271 "column": 23, 1272 "program": "await_complex_promise.ets" 1273 } 1274 } 1275 }, 1276 "loc": { 1277 "start": { 1278 "line": 21, 1279 "column": 17, 1280 "program": "await_complex_promise.ets" 1281 }, 1282 "end": { 1283 "line": 21, 1284 "column": 24, 1285 "program": "await_complex_promise.ets" 1286 } 1287 } 1288 }, 1289 "loc": { 1290 "start": { 1291 "line": 21, 1292 "column": 17, 1293 "program": "await_complex_promise.ets" 1294 }, 1295 "end": { 1296 "line": 21, 1297 "column": 24, 1298 "program": "await_complex_promise.ets" 1299 } 1300 } 1301 }, 1302 { 1303 "type": "ETSTypeReference", 1304 "part": { 1305 "type": "ETSTypeReferencePart", 1306 "name": { 1307 "type": "Identifier", 1308 "name": "number", 1309 "decorators": [], 1310 "loc": { 1311 "start": { 1312 "line": 21, 1313 "column": 24, 1314 "program": "await_complex_promise.ets" 1315 }, 1316 "end": { 1317 "line": 21, 1318 "column": 30, 1319 "program": "await_complex_promise.ets" 1320 } 1321 } 1322 }, 1323 "loc": { 1324 "start": { 1325 "line": 21, 1326 "column": 24, 1327 "program": "await_complex_promise.ets" 1328 }, 1329 "end": { 1330 "line": 21, 1331 "column": 32, 1332 "program": "await_complex_promise.ets" 1333 } 1334 } 1335 }, 1336 "loc": { 1337 "start": { 1338 "line": 21, 1339 "column": 24, 1340 "program": "await_complex_promise.ets" 1341 }, 1342 "end": { 1343 "line": 21, 1344 "column": 32, 1345 "program": "await_complex_promise.ets" 1346 } 1347 } 1348 } 1349 ], 1350 "loc": { 1351 "start": { 1352 "line": 21, 1353 "column": 17, 1354 "program": "await_complex_promise.ets" 1355 }, 1356 "end": { 1357 "line": 21, 1358 "column": 32, 1359 "program": "await_complex_promise.ets" 1360 } 1361 } 1362 }, 1363 "decorators": [], 1364 "loc": { 1365 "start": { 1366 "line": 21, 1367 "column": 9, 1368 "program": "await_complex_promise.ets" 1369 }, 1370 "end": { 1371 "line": 21, 1372 "column": 15, 1373 "program": "await_complex_promise.ets" 1374 } 1375 } 1376 }, 1377 "init": { 1378 "type": "AwaitExpression", 1379 "argument": { 1380 "type": "Identifier", 1381 "name": "p", 1382 "decorators": [], 1383 "loc": { 1384 "start": { 1385 "line": 21, 1386 "column": 39, 1387 "program": "await_complex_promise.ets" 1388 }, 1389 "end": { 1390 "line": 21, 1391 "column": 40, 1392 "program": "await_complex_promise.ets" 1393 } 1394 } 1395 }, 1396 "loc": { 1397 "start": { 1398 "line": 21, 1399 "column": 33, 1400 "program": "await_complex_promise.ets" 1401 }, 1402 "end": { 1403 "line": 21, 1404 "column": 40, 1405 "program": "await_complex_promise.ets" 1406 } 1407 } 1408 }, 1409 "loc": { 1410 "start": { 1411 "line": 21, 1412 "column": 9, 1413 "program": "await_complex_promise.ets" 1414 }, 1415 "end": { 1416 "line": 21, 1417 "column": 40, 1418 "program": "await_complex_promise.ets" 1419 } 1420 } 1421 } 1422 ], 1423 "kind": "let", 1424 "loc": { 1425 "start": { 1426 "line": 21, 1427 "column": 5, 1428 "program": "await_complex_promise.ets" 1429 }, 1430 "end": { 1431 "line": 21, 1432 "column": 41, 1433 "program": "await_complex_promise.ets" 1434 } 1435 } 1436 } 1437 ], 1438 "loc": { 1439 "start": { 1440 "line": 20, 1441 "column": 57, 1442 "program": "await_complex_promise.ets" 1443 }, 1444 "end": { 1445 "line": 22, 1446 "column": 2, 1447 "program": "await_complex_promise.ets" 1448 } 1449 } 1450 }, 1451 "loc": { 1452 "start": { 1453 "line": 20, 1454 "column": 10, 1455 "program": "await_complex_promise.ets" 1456 }, 1457 "end": { 1458 "line": 22, 1459 "column": 2, 1460 "program": "await_complex_promise.ets" 1461 } 1462 } 1463 }, 1464 "loc": { 1465 "start": { 1466 "line": 20, 1467 "column": 10, 1468 "program": "await_complex_promise.ets" 1469 }, 1470 "end": { 1471 "line": 22, 1472 "column": 2, 1473 "program": "await_complex_promise.ets" 1474 } 1475 } 1476 }, 1477 "overloads": [], 1478 "decorators": [], 1479 "loc": { 1480 "start": { 1481 "line": 20, 1482 "column": 1, 1483 "program": "await_complex_promise.ets" 1484 }, 1485 "end": { 1486 "line": 22, 1487 "column": 2, 1488 "program": "await_complex_promise.ets" 1489 } 1490 } 1491 }, 1492 { 1493 "type": "MethodDefinition", 1494 "key": { 1495 "type": "Identifier", 1496 "name": "foo3", 1497 "decorators": [], 1498 "loc": { 1499 "start": { 1500 "line": 24, 1501 "column": 10, 1502 "program": "await_complex_promise.ets" 1503 }, 1504 "end": { 1505 "line": 24, 1506 "column": 14, 1507 "program": "await_complex_promise.ets" 1508 } 1509 } 1510 }, 1511 "kind": "method", 1512 "accessibility": "public", 1513 "static": true, 1514 "optional": false, 1515 "computed": false, 1516 "value": { 1517 "type": "FunctionExpression", 1518 "function": { 1519 "type": "ScriptFunction", 1520 "id": { 1521 "type": "Identifier", 1522 "name": "foo3", 1523 "decorators": [], 1524 "loc": { 1525 "start": { 1526 "line": 24, 1527 "column": 10, 1528 "program": "await_complex_promise.ets" 1529 }, 1530 "end": { 1531 "line": 24, 1532 "column": 14, 1533 "program": "await_complex_promise.ets" 1534 } 1535 } 1536 }, 1537 "generator": false, 1538 "async": false, 1539 "expression": false, 1540 "params": [ 1541 { 1542 "type": "ETSParameterExpression", 1543 "name": { 1544 "type": "Identifier", 1545 "name": "p", 1546 "typeAnnotation": { 1547 "type": "ETSTypeReference", 1548 "part": { 1549 "type": "ETSTypeReferencePart", 1550 "name": { 1551 "type": "Identifier", 1552 "name": "Promise", 1553 "decorators": [], 1554 "loc": { 1555 "start": { 1556 "line": 24, 1557 "column": 18, 1558 "program": "await_complex_promise.ets" 1559 }, 1560 "end": { 1561 "line": 24, 1562 "column": 25, 1563 "program": "await_complex_promise.ets" 1564 } 1565 } 1566 }, 1567 "typeParams": { 1568 "type": "TSTypeParameterInstantiation", 1569 "params": [ 1570 { 1571 "type": "ETSUnionType", 1572 "types": [ 1573 { 1574 "type": "ETSTypeReference", 1575 "part": { 1576 "type": "ETSTypeReferencePart", 1577 "name": { 1578 "type": "Identifier", 1579 "name": "Promise", 1580 "decorators": [], 1581 "loc": { 1582 "start": { 1583 "line": 24, 1584 "column": 26, 1585 "program": "await_complex_promise.ets" 1586 }, 1587 "end": { 1588 "line": 24, 1589 "column": 33, 1590 "program": "await_complex_promise.ets" 1591 } 1592 } 1593 }, 1594 "typeParams": { 1595 "type": "TSTypeParameterInstantiation", 1596 "params": [ 1597 { 1598 "type": "ETSTypeReference", 1599 "part": { 1600 "type": "ETSTypeReferencePart", 1601 "name": { 1602 "type": "Identifier", 1603 "name": "string", 1604 "decorators": [], 1605 "loc": { 1606 "start": { 1607 "line": 24, 1608 "column": 34, 1609 "program": "await_complex_promise.ets" 1610 }, 1611 "end": { 1612 "line": 24, 1613 "column": 40, 1614 "program": "await_complex_promise.ets" 1615 } 1616 } 1617 }, 1618 "loc": { 1619 "start": { 1620 "line": 24, 1621 "column": 34, 1622 "program": "await_complex_promise.ets" 1623 }, 1624 "end": { 1625 "line": 24, 1626 "column": 41, 1627 "program": "await_complex_promise.ets" 1628 } 1629 } 1630 }, 1631 "loc": { 1632 "start": { 1633 "line": 24, 1634 "column": 34, 1635 "program": "await_complex_promise.ets" 1636 }, 1637 "end": { 1638 "line": 24, 1639 "column": 41, 1640 "program": "await_complex_promise.ets" 1641 } 1642 } 1643 } 1644 ], 1645 "loc": { 1646 "start": { 1647 "line": 24, 1648 "column": 33, 1649 "program": "await_complex_promise.ets" 1650 }, 1651 "end": { 1652 "line": 24, 1653 "column": 41, 1654 "program": "await_complex_promise.ets" 1655 } 1656 } 1657 }, 1658 "loc": { 1659 "start": { 1660 "line": 24, 1661 "column": 26, 1662 "program": "await_complex_promise.ets" 1663 }, 1664 "end": { 1665 "line": 24, 1666 "column": 42, 1667 "program": "await_complex_promise.ets" 1668 } 1669 } 1670 }, 1671 "loc": { 1672 "start": { 1673 "line": 24, 1674 "column": 26, 1675 "program": "await_complex_promise.ets" 1676 }, 1677 "end": { 1678 "line": 24, 1679 "column": 42, 1680 "program": "await_complex_promise.ets" 1681 } 1682 } 1683 }, 1684 { 1685 "type": "ETSTypeReference", 1686 "part": { 1687 "type": "ETSTypeReferencePart", 1688 "name": { 1689 "type": "Identifier", 1690 "name": "Promise", 1691 "decorators": [], 1692 "loc": { 1693 "start": { 1694 "line": 24, 1695 "column": 42, 1696 "program": "await_complex_promise.ets" 1697 }, 1698 "end": { 1699 "line": 24, 1700 "column": 49, 1701 "program": "await_complex_promise.ets" 1702 } 1703 } 1704 }, 1705 "typeParams": { 1706 "type": "TSTypeParameterInstantiation", 1707 "params": [ 1708 { 1709 "type": "ETSTypeReference", 1710 "part": { 1711 "type": "ETSTypeReferencePart", 1712 "name": { 1713 "type": "Identifier", 1714 "name": "number", 1715 "decorators": [], 1716 "loc": { 1717 "start": { 1718 "line": 24, 1719 "column": 50, 1720 "program": "await_complex_promise.ets" 1721 }, 1722 "end": { 1723 "line": 24, 1724 "column": 56, 1725 "program": "await_complex_promise.ets" 1726 } 1727 } 1728 }, 1729 "loc": { 1730 "start": { 1731 "line": 24, 1732 "column": 50, 1733 "program": "await_complex_promise.ets" 1734 }, 1735 "end": { 1736 "line": 24, 1737 "column": 58, 1738 "program": "await_complex_promise.ets" 1739 } 1740 } 1741 }, 1742 "loc": { 1743 "start": { 1744 "line": 24, 1745 "column": 50, 1746 "program": "await_complex_promise.ets" 1747 }, 1748 "end": { 1749 "line": 24, 1750 "column": 58, 1751 "program": "await_complex_promise.ets" 1752 } 1753 } 1754 } 1755 ], 1756 "loc": { 1757 "start": { 1758 "line": 24, 1759 "column": 49, 1760 "program": "await_complex_promise.ets" 1761 }, 1762 "end": { 1763 "line": 24, 1764 "column": 58, 1765 "program": "await_complex_promise.ets" 1766 } 1767 } 1768 }, 1769 "loc": { 1770 "start": { 1771 "line": 24, 1772 "column": 42, 1773 "program": "await_complex_promise.ets" 1774 }, 1775 "end": { 1776 "line": 24, 1777 "column": 58, 1778 "program": "await_complex_promise.ets" 1779 } 1780 } 1781 }, 1782 "loc": { 1783 "start": { 1784 "line": 24, 1785 "column": 42, 1786 "program": "await_complex_promise.ets" 1787 }, 1788 "end": { 1789 "line": 24, 1790 "column": 58, 1791 "program": "await_complex_promise.ets" 1792 } 1793 } 1794 } 1795 ], 1796 "loc": { 1797 "start": { 1798 "line": 24, 1799 "column": 26, 1800 "program": "await_complex_promise.ets" 1801 }, 1802 "end": { 1803 "line": 24, 1804 "column": 58, 1805 "program": "await_complex_promise.ets" 1806 } 1807 } 1808 } 1809 ], 1810 "loc": { 1811 "start": { 1812 "line": 24, 1813 "column": 25, 1814 "program": "await_complex_promise.ets" 1815 }, 1816 "end": { 1817 "line": 24, 1818 "column": 58, 1819 "program": "await_complex_promise.ets" 1820 } 1821 } 1822 }, 1823 "loc": { 1824 "start": { 1825 "line": 24, 1826 "column": 18, 1827 "program": "await_complex_promise.ets" 1828 }, 1829 "end": { 1830 "line": 24, 1831 "column": 59, 1832 "program": "await_complex_promise.ets" 1833 } 1834 } 1835 }, 1836 "loc": { 1837 "start": { 1838 "line": 24, 1839 "column": 18, 1840 "program": "await_complex_promise.ets" 1841 }, 1842 "end": { 1843 "line": 24, 1844 "column": 59, 1845 "program": "await_complex_promise.ets" 1846 } 1847 } 1848 }, 1849 "decorators": [], 1850 "loc": { 1851 "start": { 1852 "line": 24, 1853 "column": 15, 1854 "program": "await_complex_promise.ets" 1855 }, 1856 "end": { 1857 "line": 24, 1858 "column": 59, 1859 "program": "await_complex_promise.ets" 1860 } 1861 } 1862 }, 1863 "loc": { 1864 "start": { 1865 "line": 24, 1866 "column": 15, 1867 "program": "await_complex_promise.ets" 1868 }, 1869 "end": { 1870 "line": 24, 1871 "column": 59, 1872 "program": "await_complex_promise.ets" 1873 } 1874 } 1875 } 1876 ], 1877 "returnType": { 1878 "type": "ETSPrimitiveType", 1879 "loc": { 1880 "start": { 1881 "line": 24, 1882 "column": 61, 1883 "program": "await_complex_promise.ets" 1884 }, 1885 "end": { 1886 "line": 24, 1887 "column": 65, 1888 "program": "await_complex_promise.ets" 1889 } 1890 } 1891 }, 1892 "body": { 1893 "type": "BlockStatement", 1894 "statements": [ 1895 { 1896 "type": "VariableDeclaration", 1897 "declarations": [ 1898 { 1899 "type": "VariableDeclarator", 1900 "id": { 1901 "type": "Identifier", 1902 "name": "result", 1903 "typeAnnotation": { 1904 "type": "ETSUnionType", 1905 "types": [ 1906 { 1907 "type": "ETSTypeReference", 1908 "part": { 1909 "type": "ETSTypeReferencePart", 1910 "name": { 1911 "type": "Identifier", 1912 "name": "string", 1913 "decorators": [], 1914 "loc": { 1915 "start": { 1916 "line": 25, 1917 "column": 17, 1918 "program": "await_complex_promise.ets" 1919 }, 1920 "end": { 1921 "line": 25, 1922 "column": 23, 1923 "program": "await_complex_promise.ets" 1924 } 1925 } 1926 }, 1927 "loc": { 1928 "start": { 1929 "line": 25, 1930 "column": 17, 1931 "program": "await_complex_promise.ets" 1932 }, 1933 "end": { 1934 "line": 25, 1935 "column": 24, 1936 "program": "await_complex_promise.ets" 1937 } 1938 } 1939 }, 1940 "loc": { 1941 "start": { 1942 "line": 25, 1943 "column": 17, 1944 "program": "await_complex_promise.ets" 1945 }, 1946 "end": { 1947 "line": 25, 1948 "column": 24, 1949 "program": "await_complex_promise.ets" 1950 } 1951 } 1952 }, 1953 { 1954 "type": "ETSTypeReference", 1955 "part": { 1956 "type": "ETSTypeReferencePart", 1957 "name": { 1958 "type": "Identifier", 1959 "name": "number", 1960 "decorators": [], 1961 "loc": { 1962 "start": { 1963 "line": 25, 1964 "column": 24, 1965 "program": "await_complex_promise.ets" 1966 }, 1967 "end": { 1968 "line": 25, 1969 "column": 30, 1970 "program": "await_complex_promise.ets" 1971 } 1972 } 1973 }, 1974 "loc": { 1975 "start": { 1976 "line": 25, 1977 "column": 24, 1978 "program": "await_complex_promise.ets" 1979 }, 1980 "end": { 1981 "line": 25, 1982 "column": 32, 1983 "program": "await_complex_promise.ets" 1984 } 1985 } 1986 }, 1987 "loc": { 1988 "start": { 1989 "line": 25, 1990 "column": 24, 1991 "program": "await_complex_promise.ets" 1992 }, 1993 "end": { 1994 "line": 25, 1995 "column": 32, 1996 "program": "await_complex_promise.ets" 1997 } 1998 } 1999 } 2000 ], 2001 "loc": { 2002 "start": { 2003 "line": 25, 2004 "column": 17, 2005 "program": "await_complex_promise.ets" 2006 }, 2007 "end": { 2008 "line": 25, 2009 "column": 32, 2010 "program": "await_complex_promise.ets" 2011 } 2012 } 2013 }, 2014 "decorators": [], 2015 "loc": { 2016 "start": { 2017 "line": 25, 2018 "column": 9, 2019 "program": "await_complex_promise.ets" 2020 }, 2021 "end": { 2022 "line": 25, 2023 "column": 15, 2024 "program": "await_complex_promise.ets" 2025 } 2026 } 2027 }, 2028 "init": { 2029 "type": "AwaitExpression", 2030 "argument": { 2031 "type": "Identifier", 2032 "name": "p", 2033 "decorators": [], 2034 "loc": { 2035 "start": { 2036 "line": 25, 2037 "column": 39, 2038 "program": "await_complex_promise.ets" 2039 }, 2040 "end": { 2041 "line": 25, 2042 "column": 40, 2043 "program": "await_complex_promise.ets" 2044 } 2045 } 2046 }, 2047 "loc": { 2048 "start": { 2049 "line": 25, 2050 "column": 33, 2051 "program": "await_complex_promise.ets" 2052 }, 2053 "end": { 2054 "line": 25, 2055 "column": 40, 2056 "program": "await_complex_promise.ets" 2057 } 2058 } 2059 }, 2060 "loc": { 2061 "start": { 2062 "line": 25, 2063 "column": 9, 2064 "program": "await_complex_promise.ets" 2065 }, 2066 "end": { 2067 "line": 25, 2068 "column": 40, 2069 "program": "await_complex_promise.ets" 2070 } 2071 } 2072 } 2073 ], 2074 "kind": "let", 2075 "loc": { 2076 "start": { 2077 "line": 25, 2078 "column": 5, 2079 "program": "await_complex_promise.ets" 2080 }, 2081 "end": { 2082 "line": 25, 2083 "column": 41, 2084 "program": "await_complex_promise.ets" 2085 } 2086 } 2087 } 2088 ], 2089 "loc": { 2090 "start": { 2091 "line": 24, 2092 "column": 66, 2093 "program": "await_complex_promise.ets" 2094 }, 2095 "end": { 2096 "line": 26, 2097 "column": 2, 2098 "program": "await_complex_promise.ets" 2099 } 2100 } 2101 }, 2102 "loc": { 2103 "start": { 2104 "line": 24, 2105 "column": 10, 2106 "program": "await_complex_promise.ets" 2107 }, 2108 "end": { 2109 "line": 26, 2110 "column": 2, 2111 "program": "await_complex_promise.ets" 2112 } 2113 } 2114 }, 2115 "loc": { 2116 "start": { 2117 "line": 24, 2118 "column": 10, 2119 "program": "await_complex_promise.ets" 2120 }, 2121 "end": { 2122 "line": 26, 2123 "column": 2, 2124 "program": "await_complex_promise.ets" 2125 } 2126 } 2127 }, 2128 "overloads": [], 2129 "decorators": [], 2130 "loc": { 2131 "start": { 2132 "line": 24, 2133 "column": 1, 2134 "program": "await_complex_promise.ets" 2135 }, 2136 "end": { 2137 "line": 26, 2138 "column": 2, 2139 "program": "await_complex_promise.ets" 2140 } 2141 } 2142 }, 2143 { 2144 "type": "MethodDefinition", 2145 "key": { 2146 "type": "Identifier", 2147 "name": "foo4", 2148 "decorators": [], 2149 "loc": { 2150 "start": { 2151 "line": 28, 2152 "column": 10, 2153 "program": "await_complex_promise.ets" 2154 }, 2155 "end": { 2156 "line": 28, 2157 "column": 14, 2158 "program": "await_complex_promise.ets" 2159 } 2160 } 2161 }, 2162 "kind": "method", 2163 "accessibility": "public", 2164 "static": true, 2165 "optional": false, 2166 "computed": false, 2167 "value": { 2168 "type": "FunctionExpression", 2169 "function": { 2170 "type": "ScriptFunction", 2171 "id": { 2172 "type": "Identifier", 2173 "name": "foo4", 2174 "decorators": [], 2175 "loc": { 2176 "start": { 2177 "line": 28, 2178 "column": 10, 2179 "program": "await_complex_promise.ets" 2180 }, 2181 "end": { 2182 "line": 28, 2183 "column": 14, 2184 "program": "await_complex_promise.ets" 2185 } 2186 } 2187 }, 2188 "generator": false, 2189 "async": false, 2190 "expression": false, 2191 "params": [ 2192 { 2193 "type": "ETSParameterExpression", 2194 "name": { 2195 "type": "Identifier", 2196 "name": "p", 2197 "typeAnnotation": { 2198 "type": "ETSTypeReference", 2199 "part": { 2200 "type": "ETSTypeReferencePart", 2201 "name": { 2202 "type": "Identifier", 2203 "name": "Promise", 2204 "decorators": [], 2205 "loc": { 2206 "start": { 2207 "line": 28, 2208 "column": 18, 2209 "program": "await_complex_promise.ets" 2210 }, 2211 "end": { 2212 "line": 28, 2213 "column": 25, 2214 "program": "await_complex_promise.ets" 2215 } 2216 } 2217 }, 2218 "typeParams": { 2219 "type": "TSTypeParameterInstantiation", 2220 "params": [ 2221 { 2222 "type": "ETSUnionType", 2223 "types": [ 2224 { 2225 "type": "ETSNullType", 2226 "loc": { 2227 "start": { 2228 "line": 28, 2229 "column": 26, 2230 "program": "await_complex_promise.ets" 2231 }, 2232 "end": { 2233 "line": 28, 2234 "column": 30, 2235 "program": "await_complex_promise.ets" 2236 } 2237 } 2238 }, 2239 { 2240 "type": "ETSTypeReference", 2241 "part": { 2242 "type": "ETSTypeReferencePart", 2243 "name": { 2244 "type": "Identifier", 2245 "name": "Promise", 2246 "decorators": [], 2247 "loc": { 2248 "start": { 2249 "line": 28, 2250 "column": 31, 2251 "program": "await_complex_promise.ets" 2252 }, 2253 "end": { 2254 "line": 28, 2255 "column": 38, 2256 "program": "await_complex_promise.ets" 2257 } 2258 } 2259 }, 2260 "typeParams": { 2261 "type": "TSTypeParameterInstantiation", 2262 "params": [ 2263 { 2264 "type": "ETSTypeReference", 2265 "part": { 2266 "type": "ETSTypeReferencePart", 2267 "name": { 2268 "type": "Identifier", 2269 "name": "string", 2270 "decorators": [], 2271 "loc": { 2272 "start": { 2273 "line": 28, 2274 "column": 39, 2275 "program": "await_complex_promise.ets" 2276 }, 2277 "end": { 2278 "line": 28, 2279 "column": 45, 2280 "program": "await_complex_promise.ets" 2281 } 2282 } 2283 }, 2284 "loc": { 2285 "start": { 2286 "line": 28, 2287 "column": 39, 2288 "program": "await_complex_promise.ets" 2289 }, 2290 "end": { 2291 "line": 28, 2292 "column": 47, 2293 "program": "await_complex_promise.ets" 2294 } 2295 } 2296 }, 2297 "loc": { 2298 "start": { 2299 "line": 28, 2300 "column": 39, 2301 "program": "await_complex_promise.ets" 2302 }, 2303 "end": { 2304 "line": 28, 2305 "column": 47, 2306 "program": "await_complex_promise.ets" 2307 } 2308 } 2309 } 2310 ], 2311 "loc": { 2312 "start": { 2313 "line": 28, 2314 "column": 38, 2315 "program": "await_complex_promise.ets" 2316 }, 2317 "end": { 2318 "line": 28, 2319 "column": 47, 2320 "program": "await_complex_promise.ets" 2321 } 2322 } 2323 }, 2324 "loc": { 2325 "start": { 2326 "line": 28, 2327 "column": 31, 2328 "program": "await_complex_promise.ets" 2329 }, 2330 "end": { 2331 "line": 28, 2332 "column": 47, 2333 "program": "await_complex_promise.ets" 2334 } 2335 } 2336 }, 2337 "loc": { 2338 "start": { 2339 "line": 28, 2340 "column": 31, 2341 "program": "await_complex_promise.ets" 2342 }, 2343 "end": { 2344 "line": 28, 2345 "column": 47, 2346 "program": "await_complex_promise.ets" 2347 } 2348 } 2349 } 2350 ], 2351 "loc": { 2352 "start": { 2353 "line": 28, 2354 "column": 26, 2355 "program": "await_complex_promise.ets" 2356 }, 2357 "end": { 2358 "line": 28, 2359 "column": 47, 2360 "program": "await_complex_promise.ets" 2361 } 2362 } 2363 } 2364 ], 2365 "loc": { 2366 "start": { 2367 "line": 28, 2368 "column": 25, 2369 "program": "await_complex_promise.ets" 2370 }, 2371 "end": { 2372 "line": 28, 2373 "column": 47, 2374 "program": "await_complex_promise.ets" 2375 } 2376 } 2377 }, 2378 "loc": { 2379 "start": { 2380 "line": 28, 2381 "column": 18, 2382 "program": "await_complex_promise.ets" 2383 }, 2384 "end": { 2385 "line": 28, 2386 "column": 48, 2387 "program": "await_complex_promise.ets" 2388 } 2389 } 2390 }, 2391 "loc": { 2392 "start": { 2393 "line": 28, 2394 "column": 18, 2395 "program": "await_complex_promise.ets" 2396 }, 2397 "end": { 2398 "line": 28, 2399 "column": 48, 2400 "program": "await_complex_promise.ets" 2401 } 2402 } 2403 }, 2404 "decorators": [], 2405 "loc": { 2406 "start": { 2407 "line": 28, 2408 "column": 15, 2409 "program": "await_complex_promise.ets" 2410 }, 2411 "end": { 2412 "line": 28, 2413 "column": 48, 2414 "program": "await_complex_promise.ets" 2415 } 2416 } 2417 }, 2418 "loc": { 2419 "start": { 2420 "line": 28, 2421 "column": 15, 2422 "program": "await_complex_promise.ets" 2423 }, 2424 "end": { 2425 "line": 28, 2426 "column": 48, 2427 "program": "await_complex_promise.ets" 2428 } 2429 } 2430 } 2431 ], 2432 "returnType": { 2433 "type": "ETSPrimitiveType", 2434 "loc": { 2435 "start": { 2436 "line": 28, 2437 "column": 50, 2438 "program": "await_complex_promise.ets" 2439 }, 2440 "end": { 2441 "line": 28, 2442 "column": 54, 2443 "program": "await_complex_promise.ets" 2444 } 2445 } 2446 }, 2447 "body": { 2448 "type": "BlockStatement", 2449 "statements": [ 2450 { 2451 "type": "VariableDeclaration", 2452 "declarations": [ 2453 { 2454 "type": "VariableDeclarator", 2455 "id": { 2456 "type": "Identifier", 2457 "name": "result", 2458 "typeAnnotation": { 2459 "type": "ETSUnionType", 2460 "types": [ 2461 { 2462 "type": "ETSNullType", 2463 "loc": { 2464 "start": { 2465 "line": 29, 2466 "column": 17, 2467 "program": "await_complex_promise.ets" 2468 }, 2469 "end": { 2470 "line": 29, 2471 "column": 21, 2472 "program": "await_complex_promise.ets" 2473 } 2474 } 2475 }, 2476 { 2477 "type": "ETSTypeReference", 2478 "part": { 2479 "type": "ETSTypeReferencePart", 2480 "name": { 2481 "type": "Identifier", 2482 "name": "string", 2483 "decorators": [], 2484 "loc": { 2485 "start": { 2486 "line": 29, 2487 "column": 22, 2488 "program": "await_complex_promise.ets" 2489 }, 2490 "end": { 2491 "line": 29, 2492 "column": 28, 2493 "program": "await_complex_promise.ets" 2494 } 2495 } 2496 }, 2497 "loc": { 2498 "start": { 2499 "line": 29, 2500 "column": 22, 2501 "program": "await_complex_promise.ets" 2502 }, 2503 "end": { 2504 "line": 29, 2505 "column": 30, 2506 "program": "await_complex_promise.ets" 2507 } 2508 } 2509 }, 2510 "loc": { 2511 "start": { 2512 "line": 29, 2513 "column": 22, 2514 "program": "await_complex_promise.ets" 2515 }, 2516 "end": { 2517 "line": 29, 2518 "column": 30, 2519 "program": "await_complex_promise.ets" 2520 } 2521 } 2522 } 2523 ], 2524 "loc": { 2525 "start": { 2526 "line": 29, 2527 "column": 17, 2528 "program": "await_complex_promise.ets" 2529 }, 2530 "end": { 2531 "line": 29, 2532 "column": 30, 2533 "program": "await_complex_promise.ets" 2534 } 2535 } 2536 }, 2537 "decorators": [], 2538 "loc": { 2539 "start": { 2540 "line": 29, 2541 "column": 9, 2542 "program": "await_complex_promise.ets" 2543 }, 2544 "end": { 2545 "line": 29, 2546 "column": 15, 2547 "program": "await_complex_promise.ets" 2548 } 2549 } 2550 }, 2551 "init": { 2552 "type": "AwaitExpression", 2553 "argument": { 2554 "type": "Identifier", 2555 "name": "p", 2556 "decorators": [], 2557 "loc": { 2558 "start": { 2559 "line": 29, 2560 "column": 37, 2561 "program": "await_complex_promise.ets" 2562 }, 2563 "end": { 2564 "line": 29, 2565 "column": 38, 2566 "program": "await_complex_promise.ets" 2567 } 2568 } 2569 }, 2570 "loc": { 2571 "start": { 2572 "line": 29, 2573 "column": 31, 2574 "program": "await_complex_promise.ets" 2575 }, 2576 "end": { 2577 "line": 29, 2578 "column": 38, 2579 "program": "await_complex_promise.ets" 2580 } 2581 } 2582 }, 2583 "loc": { 2584 "start": { 2585 "line": 29, 2586 "column": 9, 2587 "program": "await_complex_promise.ets" 2588 }, 2589 "end": { 2590 "line": 29, 2591 "column": 38, 2592 "program": "await_complex_promise.ets" 2593 } 2594 } 2595 } 2596 ], 2597 "kind": "let", 2598 "loc": { 2599 "start": { 2600 "line": 29, 2601 "column": 5, 2602 "program": "await_complex_promise.ets" 2603 }, 2604 "end": { 2605 "line": 29, 2606 "column": 39, 2607 "program": "await_complex_promise.ets" 2608 } 2609 } 2610 } 2611 ], 2612 "loc": { 2613 "start": { 2614 "line": 28, 2615 "column": 55, 2616 "program": "await_complex_promise.ets" 2617 }, 2618 "end": { 2619 "line": 30, 2620 "column": 2, 2621 "program": "await_complex_promise.ets" 2622 } 2623 } 2624 }, 2625 "loc": { 2626 "start": { 2627 "line": 28, 2628 "column": 10, 2629 "program": "await_complex_promise.ets" 2630 }, 2631 "end": { 2632 "line": 30, 2633 "column": 2, 2634 "program": "await_complex_promise.ets" 2635 } 2636 } 2637 }, 2638 "loc": { 2639 "start": { 2640 "line": 28, 2641 "column": 10, 2642 "program": "await_complex_promise.ets" 2643 }, 2644 "end": { 2645 "line": 30, 2646 "column": 2, 2647 "program": "await_complex_promise.ets" 2648 } 2649 } 2650 }, 2651 "overloads": [], 2652 "decorators": [], 2653 "loc": { 2654 "start": { 2655 "line": 28, 2656 "column": 1, 2657 "program": "await_complex_promise.ets" 2658 }, 2659 "end": { 2660 "line": 30, 2661 "column": 2, 2662 "program": "await_complex_promise.ets" 2663 } 2664 } 2665 }, 2666 { 2667 "type": "MethodDefinition", 2668 "key": { 2669 "type": "Identifier", 2670 "name": "foo5", 2671 "decorators": [], 2672 "loc": { 2673 "start": { 2674 "line": 33, 2675 "column": 10, 2676 "program": "await_complex_promise.ets" 2677 }, 2678 "end": { 2679 "line": 33, 2680 "column": 14, 2681 "program": "await_complex_promise.ets" 2682 } 2683 } 2684 }, 2685 "kind": "method", 2686 "accessibility": "public", 2687 "static": true, 2688 "optional": false, 2689 "computed": false, 2690 "value": { 2691 "type": "FunctionExpression", 2692 "function": { 2693 "type": "ScriptFunction", 2694 "id": { 2695 "type": "Identifier", 2696 "name": "foo5", 2697 "decorators": [], 2698 "loc": { 2699 "start": { 2700 "line": 33, 2701 "column": 10, 2702 "program": "await_complex_promise.ets" 2703 }, 2704 "end": { 2705 "line": 33, 2706 "column": 14, 2707 "program": "await_complex_promise.ets" 2708 } 2709 } 2710 }, 2711 "generator": false, 2712 "async": false, 2713 "expression": false, 2714 "params": [ 2715 { 2716 "type": "ETSParameterExpression", 2717 "name": { 2718 "type": "Identifier", 2719 "name": "p", 2720 "typeAnnotation": { 2721 "type": "ETSTypeReference", 2722 "part": { 2723 "type": "ETSTypeReferencePart", 2724 "name": { 2725 "type": "Identifier", 2726 "name": "Promise", 2727 "decorators": [], 2728 "loc": { 2729 "start": { 2730 "line": 33, 2731 "column": 18, 2732 "program": "await_complex_promise.ets" 2733 }, 2734 "end": { 2735 "line": 33, 2736 "column": 25, 2737 "program": "await_complex_promise.ets" 2738 } 2739 } 2740 }, 2741 "typeParams": { 2742 "type": "TSTypeParameterInstantiation", 2743 "params": [ 2744 { 2745 "type": "ETSTypeReference", 2746 "part": { 2747 "type": "ETSTypeReferencePart", 2748 "name": { 2749 "type": "Identifier", 2750 "name": "Alias", 2751 "decorators": [], 2752 "loc": { 2753 "start": { 2754 "line": 33, 2755 "column": 26, 2756 "program": "await_complex_promise.ets" 2757 }, 2758 "end": { 2759 "line": 33, 2760 "column": 31, 2761 "program": "await_complex_promise.ets" 2762 } 2763 } 2764 }, 2765 "loc": { 2766 "start": { 2767 "line": 33, 2768 "column": 26, 2769 "program": "await_complex_promise.ets" 2770 }, 2771 "end": { 2772 "line": 33, 2773 "column": 32, 2774 "program": "await_complex_promise.ets" 2775 } 2776 } 2777 }, 2778 "loc": { 2779 "start": { 2780 "line": 33, 2781 "column": 26, 2782 "program": "await_complex_promise.ets" 2783 }, 2784 "end": { 2785 "line": 33, 2786 "column": 32, 2787 "program": "await_complex_promise.ets" 2788 } 2789 } 2790 } 2791 ], 2792 "loc": { 2793 "start": { 2794 "line": 33, 2795 "column": 25, 2796 "program": "await_complex_promise.ets" 2797 }, 2798 "end": { 2799 "line": 33, 2800 "column": 32, 2801 "program": "await_complex_promise.ets" 2802 } 2803 } 2804 }, 2805 "loc": { 2806 "start": { 2807 "line": 33, 2808 "column": 18, 2809 "program": "await_complex_promise.ets" 2810 }, 2811 "end": { 2812 "line": 33, 2813 "column": 33, 2814 "program": "await_complex_promise.ets" 2815 } 2816 } 2817 }, 2818 "loc": { 2819 "start": { 2820 "line": 33, 2821 "column": 18, 2822 "program": "await_complex_promise.ets" 2823 }, 2824 "end": { 2825 "line": 33, 2826 "column": 33, 2827 "program": "await_complex_promise.ets" 2828 } 2829 } 2830 }, 2831 "decorators": [], 2832 "loc": { 2833 "start": { 2834 "line": 33, 2835 "column": 15, 2836 "program": "await_complex_promise.ets" 2837 }, 2838 "end": { 2839 "line": 33, 2840 "column": 33, 2841 "program": "await_complex_promise.ets" 2842 } 2843 } 2844 }, 2845 "loc": { 2846 "start": { 2847 "line": 33, 2848 "column": 15, 2849 "program": "await_complex_promise.ets" 2850 }, 2851 "end": { 2852 "line": 33, 2853 "column": 33, 2854 "program": "await_complex_promise.ets" 2855 } 2856 } 2857 } 2858 ], 2859 "returnType": { 2860 "type": "ETSPrimitiveType", 2861 "loc": { 2862 "start": { 2863 "line": 33, 2864 "column": 35, 2865 "program": "await_complex_promise.ets" 2866 }, 2867 "end": { 2868 "line": 33, 2869 "column": 39, 2870 "program": "await_complex_promise.ets" 2871 } 2872 } 2873 }, 2874 "body": { 2875 "type": "BlockStatement", 2876 "statements": [ 2877 { 2878 "type": "VariableDeclaration", 2879 "declarations": [ 2880 { 2881 "type": "VariableDeclarator", 2882 "id": { 2883 "type": "Identifier", 2884 "name": "result", 2885 "typeAnnotation": { 2886 "type": "ETSUnionType", 2887 "types": [ 2888 { 2889 "type": "ETSTypeReference", 2890 "part": { 2891 "type": "ETSTypeReferencePart", 2892 "name": { 2893 "type": "Identifier", 2894 "name": "string", 2895 "decorators": [], 2896 "loc": { 2897 "start": { 2898 "line": 34, 2899 "column": 17, 2900 "program": "await_complex_promise.ets" 2901 }, 2902 "end": { 2903 "line": 34, 2904 "column": 23, 2905 "program": "await_complex_promise.ets" 2906 } 2907 } 2908 }, 2909 "loc": { 2910 "start": { 2911 "line": 34, 2912 "column": 17, 2913 "program": "await_complex_promise.ets" 2914 }, 2915 "end": { 2916 "line": 34, 2917 "column": 24, 2918 "program": "await_complex_promise.ets" 2919 } 2920 } 2921 }, 2922 "loc": { 2923 "start": { 2924 "line": 34, 2925 "column": 17, 2926 "program": "await_complex_promise.ets" 2927 }, 2928 "end": { 2929 "line": 34, 2930 "column": 24, 2931 "program": "await_complex_promise.ets" 2932 } 2933 } 2934 }, 2935 { 2936 "type": "ETSTypeReference", 2937 "part": { 2938 "type": "ETSTypeReferencePart", 2939 "name": { 2940 "type": "Identifier", 2941 "name": "number", 2942 "decorators": [], 2943 "loc": { 2944 "start": { 2945 "line": 34, 2946 "column": 24, 2947 "program": "await_complex_promise.ets" 2948 }, 2949 "end": { 2950 "line": 34, 2951 "column": 30, 2952 "program": "await_complex_promise.ets" 2953 } 2954 } 2955 }, 2956 "loc": { 2957 "start": { 2958 "line": 34, 2959 "column": 24, 2960 "program": "await_complex_promise.ets" 2961 }, 2962 "end": { 2963 "line": 34, 2964 "column": 32, 2965 "program": "await_complex_promise.ets" 2966 } 2967 } 2968 }, 2969 "loc": { 2970 "start": { 2971 "line": 34, 2972 "column": 24, 2973 "program": "await_complex_promise.ets" 2974 }, 2975 "end": { 2976 "line": 34, 2977 "column": 32, 2978 "program": "await_complex_promise.ets" 2979 } 2980 } 2981 } 2982 ], 2983 "loc": { 2984 "start": { 2985 "line": 34, 2986 "column": 17, 2987 "program": "await_complex_promise.ets" 2988 }, 2989 "end": { 2990 "line": 34, 2991 "column": 32, 2992 "program": "await_complex_promise.ets" 2993 } 2994 } 2995 }, 2996 "decorators": [], 2997 "loc": { 2998 "start": { 2999 "line": 34, 3000 "column": 9, 3001 "program": "await_complex_promise.ets" 3002 }, 3003 "end": { 3004 "line": 34, 3005 "column": 15, 3006 "program": "await_complex_promise.ets" 3007 } 3008 } 3009 }, 3010 "init": { 3011 "type": "AwaitExpression", 3012 "argument": { 3013 "type": "Identifier", 3014 "name": "p", 3015 "decorators": [], 3016 "loc": { 3017 "start": { 3018 "line": 34, 3019 "column": 39, 3020 "program": "await_complex_promise.ets" 3021 }, 3022 "end": { 3023 "line": 34, 3024 "column": 40, 3025 "program": "await_complex_promise.ets" 3026 } 3027 } 3028 }, 3029 "loc": { 3030 "start": { 3031 "line": 34, 3032 "column": 33, 3033 "program": "await_complex_promise.ets" 3034 }, 3035 "end": { 3036 "line": 34, 3037 "column": 40, 3038 "program": "await_complex_promise.ets" 3039 } 3040 } 3041 }, 3042 "loc": { 3043 "start": { 3044 "line": 34, 3045 "column": 9, 3046 "program": "await_complex_promise.ets" 3047 }, 3048 "end": { 3049 "line": 34, 3050 "column": 40, 3051 "program": "await_complex_promise.ets" 3052 } 3053 } 3054 } 3055 ], 3056 "kind": "let", 3057 "loc": { 3058 "start": { 3059 "line": 34, 3060 "column": 5, 3061 "program": "await_complex_promise.ets" 3062 }, 3063 "end": { 3064 "line": 34, 3065 "column": 41, 3066 "program": "await_complex_promise.ets" 3067 } 3068 } 3069 } 3070 ], 3071 "loc": { 3072 "start": { 3073 "line": 33, 3074 "column": 40, 3075 "program": "await_complex_promise.ets" 3076 }, 3077 "end": { 3078 "line": 35, 3079 "column": 2, 3080 "program": "await_complex_promise.ets" 3081 } 3082 } 3083 }, 3084 "loc": { 3085 "start": { 3086 "line": 33, 3087 "column": 10, 3088 "program": "await_complex_promise.ets" 3089 }, 3090 "end": { 3091 "line": 35, 3092 "column": 2, 3093 "program": "await_complex_promise.ets" 3094 } 3095 } 3096 }, 3097 "loc": { 3098 "start": { 3099 "line": 33, 3100 "column": 10, 3101 "program": "await_complex_promise.ets" 3102 }, 3103 "end": { 3104 "line": 35, 3105 "column": 2, 3106 "program": "await_complex_promise.ets" 3107 } 3108 } 3109 }, 3110 "overloads": [], 3111 "decorators": [], 3112 "loc": { 3113 "start": { 3114 "line": 33, 3115 "column": 1, 3116 "program": "await_complex_promise.ets" 3117 }, 3118 "end": { 3119 "line": 35, 3120 "column": 2, 3121 "program": "await_complex_promise.ets" 3122 } 3123 } 3124 } 3125 ], 3126 "loc": { 3127 "start": { 3128 "line": 1, 3129 "column": 1, 3130 "program": "await_complex_promise.ets" 3131 }, 3132 "end": { 3133 "line": 1, 3134 "column": 1, 3135 "program": "await_complex_promise.ets" 3136 } 3137 } 3138 }, 3139 "loc": { 3140 "start": { 3141 "line": 1, 3142 "column": 1, 3143 "program": "await_complex_promise.ets" 3144 }, 3145 "end": { 3146 "line": 1, 3147 "column": 1, 3148 "program": "await_complex_promise.ets" 3149 } 3150 } 3151 } 3152 ], 3153 "loc": { 3154 "start": { 3155 "line": 1, 3156 "column": 1, 3157 "program": "await_complex_promise.ets" 3158 }, 3159 "end": { 3160 "line": 36, 3161 "column": 1, 3162 "program": "await_complex_promise.ets" 3163 } 3164 } 3165} 3166