1Hi there! 2--- 3After parse: 4--- 5{ 6 "type": "Program", 7 "statements": [ 8 { 9 "type": "ClassDeclaration", 10 "definition": { 11 "id": { 12 "type": "Identifier", 13 "name": "GoodGreeter", 14 "decorators": [] 15 }, 16 "superClass": null, 17 "implements": [], 18 "body": [ 19 { 20 "type": "ClassProperty", 21 "key": { 22 "type": "Identifier", 23 "name": "name", 24 "decorators": [] 25 }, 26 "accessibility": "public", 27 "static": false, 28 "readonly": false, 29 "declare": false, 30 "optional": false, 31 "computed": false, 32 "typeAnnotation": { 33 "type": "ETSTypeReference", 34 "part": { 35 "type": "ETSTypeReferencePart", 36 "name": { 37 "type": "Identifier", 38 "name": "string", 39 "decorators": [] 40 } 41 } 42 }, 43 "definite": false, 44 "decorators": [] 45 }, 46 { 47 "type": "MethodDefinition", 48 "key": { 49 "type": "Identifier", 50 "name": "invoke", 51 "decorators": [] 52 }, 53 "kind": "method", 54 "accessibility": "public", 55 "static": true, 56 "optional": false, 57 "computed": false, 58 "value": { 59 "type": "FunctionExpression", 60 "function": { 61 "type": "ScriptFunction", 62 "id": { 63 "type": "Identifier", 64 "name": "invoke", 65 "decorators": [] 66 }, 67 "generator": false, 68 "async": false, 69 "expression": false, 70 "params": [], 71 "returnType": { 72 "type": "ETSPrimitiveType" 73 }, 74 "body": { 75 "type": "BlockStatement", 76 "statements": [ 77 { 78 "type": "ReturnStatement", 79 "argument": { 80 "type": "NumberLiteral", 81 "value": 5 82 } 83 } 84 ] 85 } 86 } 87 }, 88 "overloads": [], 89 "decorators": [] 90 }, 91 { 92 "type": "MethodDefinition", 93 "key": { 94 "type": "Identifier", 95 "name": "constructor", 96 "decorators": [] 97 }, 98 "kind": "constructor", 99 "accessibility": "public", 100 "static": false, 101 "optional": false, 102 "computed": false, 103 "value": { 104 "type": "FunctionExpression", 105 "function": { 106 "type": "ScriptFunction", 107 "id": { 108 "type": "Identifier", 109 "name": "constructor", 110 "decorators": [] 111 }, 112 "generator": false, 113 "async": false, 114 "expression": false, 115 "params": [], 116 "body": { 117 "type": "BlockStatement", 118 "statements": [ 119 { 120 "type": "ExpressionStatement", 121 "expression": { 122 "type": "AssignmentExpression", 123 "operator": "=", 124 "left": { 125 "type": "MemberExpression", 126 "object": { 127 "type": "ThisExpression" 128 }, 129 "property": { 130 "type": "Identifier", 131 "name": "name", 132 "decorators": [] 133 }, 134 "computed": false, 135 "optional": false 136 }, 137 "right": { 138 "type": "StringLiteral", 139 "value": "hello" 140 } 141 } 142 } 143 ] 144 } 145 } 146 }, 147 "overloads": [], 148 "decorators": [] 149 } 150 ] 151 } 152 }, 153 { 154 "type": "VariableDeclaration", 155 "declarations": [ 156 { 157 "type": "VariableDeclarator", 158 "id": { 159 "type": "Identifier", 160 "name": "a", 161 "decorators": [] 162 }, 163 "init": { 164 "type": "CallExpression", 165 "callee": { 166 "type": "Identifier", 167 "name": "GoodGreeter", 168 "decorators": [] 169 }, 170 "arguments": [], 171 "optional": false 172 } 173 } 174 ], 175 "kind": "let" 176 }, 177 { 178 "type": "FunctionDeclaration", 179 "function": { 180 "type": "ScriptFunction", 181 "id": { 182 "type": "Identifier", 183 "name": "main", 184 "decorators": [] 185 }, 186 "generator": false, 187 "async": false, 188 "expression": false, 189 "params": [], 190 "body": { 191 "type": "BlockStatement", 192 "statements": [ 193 { 194 "type": "VariableDeclaration", 195 "declarations": [ 196 { 197 "type": "VariableDeclarator", 198 "id": { 199 "type": "Identifier", 200 "name": "m", 201 "typeAnnotation": { 202 "type": "ETSPrimitiveType" 203 }, 204 "decorators": [] 205 }, 206 "init": { 207 "type": "NumberLiteral", 208 "value": 1 209 } 210 } 211 ], 212 "kind": "let" 213 }, 214 { 215 "type": "VariableDeclaration", 216 "declarations": [ 217 { 218 "type": "VariableDeclarator", 219 "id": { 220 "type": "Identifier", 221 "name": "n", 222 "typeAnnotation": { 223 "type": "ETSPrimitiveType" 224 }, 225 "decorators": [] 226 }, 227 "init": { 228 "type": "NumberLiteral", 229 "value": 2 230 } 231 } 232 ], 233 "kind": "let" 234 }, 235 { 236 "type": "ExpressionStatement", 237 "expression": { 238 "type": "CallExpression", 239 "callee": { 240 "type": "MemberExpression", 241 "object": { 242 "type": "Identifier", 243 "name": "console", 244 "decorators": [] 245 }, 246 "property": { 247 "type": "Identifier", 248 "name": "log", 249 "decorators": [] 250 }, 251 "computed": false, 252 "optional": false 253 }, 254 "arguments": [ 255 { 256 "type": "BinaryExpression", 257 "operator": "+", 258 "left": { 259 "type": "Identifier", 260 "name": "m", 261 "decorators": [] 262 }, 263 "right": { 264 "type": "Identifier", 265 "name": "n", 266 "decorators": [] 267 } 268 } 269 ], 270 "optional": false 271 } 272 } 273 ] 274 } 275 } 276 } 277 ] 278} 279--- 280{ 281 "type": "ClassDeclaration", 282 "definition": { 283 "id": { 284 "type": "Identifier", 285 "name": "GoodGreeter", 286 "decorators": [] 287 }, 288 "superClass": null, 289 "implements": [], 290 "body": [ 291 { 292 "type": "ClassProperty", 293 "key": { 294 "type": "Identifier", 295 "name": "name", 296 "decorators": [] 297 }, 298 "accessibility": "public", 299 "static": false, 300 "readonly": false, 301 "declare": false, 302 "optional": false, 303 "computed": false, 304 "typeAnnotation": { 305 "type": "ETSTypeReference", 306 "part": { 307 "type": "ETSTypeReferencePart", 308 "name": { 309 "type": "Identifier", 310 "name": "string", 311 "decorators": [] 312 } 313 } 314 }, 315 "definite": false, 316 "decorators": [] 317 }, 318 { 319 "type": "MethodDefinition", 320 "key": { 321 "type": "Identifier", 322 "name": "invoke", 323 "decorators": [] 324 }, 325 "kind": "method", 326 "accessibility": "public", 327 "static": true, 328 "optional": false, 329 "computed": false, 330 "value": { 331 "type": "FunctionExpression", 332 "function": { 333 "type": "ScriptFunction", 334 "id": { 335 "type": "Identifier", 336 "name": "invoke", 337 "decorators": [] 338 }, 339 "generator": false, 340 "async": false, 341 "expression": false, 342 "params": [], 343 "returnType": { 344 "type": "ETSPrimitiveType" 345 }, 346 "body": { 347 "type": "BlockStatement", 348 "statements": [ 349 { 350 "type": "ReturnStatement", 351 "argument": { 352 "type": "NumberLiteral", 353 "value": 5 354 } 355 } 356 ] 357 } 358 } 359 }, 360 "overloads": [], 361 "decorators": [] 362 }, 363 { 364 "type": "MethodDefinition", 365 "key": { 366 "type": "Identifier", 367 "name": "constructor", 368 "decorators": [] 369 }, 370 "kind": "constructor", 371 "accessibility": "public", 372 "static": false, 373 "optional": false, 374 "computed": false, 375 "value": { 376 "type": "FunctionExpression", 377 "function": { 378 "type": "ScriptFunction", 379 "id": { 380 "type": "Identifier", 381 "name": "constructor", 382 "decorators": [] 383 }, 384 "generator": false, 385 "async": false, 386 "expression": false, 387 "params": [], 388 "body": { 389 "type": "BlockStatement", 390 "statements": [ 391 { 392 "type": "ExpressionStatement", 393 "expression": { 394 "type": "AssignmentExpression", 395 "operator": "=", 396 "left": { 397 "type": "MemberExpression", 398 "object": { 399 "type": "ThisExpression" 400 }, 401 "property": { 402 "type": "Identifier", 403 "name": "name", 404 "decorators": [] 405 }, 406 "computed": false, 407 "optional": false 408 }, 409 "right": { 410 "type": "StringLiteral", 411 "value": "hello" 412 } 413 } 414 } 415 ] 416 } 417 } 418 }, 419 "overloads": [], 420 "decorators": [] 421 } 422 ] 423 } 424} 425--- 426{ 427 "id": { 428 "type": "Identifier", 429 "name": "GoodGreeter", 430 "decorators": [] 431 }, 432 "superClass": null, 433 "implements": [], 434 "body": [ 435 { 436 "type": "ClassProperty", 437 "key": { 438 "type": "Identifier", 439 "name": "name", 440 "decorators": [] 441 }, 442 "accessibility": "public", 443 "static": false, 444 "readonly": false, 445 "declare": false, 446 "optional": false, 447 "computed": false, 448 "typeAnnotation": { 449 "type": "ETSTypeReference", 450 "part": { 451 "type": "ETSTypeReferencePart", 452 "name": { 453 "type": "Identifier", 454 "name": "string", 455 "decorators": [] 456 } 457 } 458 }, 459 "definite": false, 460 "decorators": [] 461 }, 462 { 463 "type": "MethodDefinition", 464 "key": { 465 "type": "Identifier", 466 "name": "invoke", 467 "decorators": [] 468 }, 469 "kind": "method", 470 "accessibility": "public", 471 "static": true, 472 "optional": false, 473 "computed": false, 474 "value": { 475 "type": "FunctionExpression", 476 "function": { 477 "type": "ScriptFunction", 478 "id": { 479 "type": "Identifier", 480 "name": "invoke", 481 "decorators": [] 482 }, 483 "generator": false, 484 "async": false, 485 "expression": false, 486 "params": [], 487 "returnType": { 488 "type": "ETSPrimitiveType" 489 }, 490 "body": { 491 "type": "BlockStatement", 492 "statements": [ 493 { 494 "type": "ReturnStatement", 495 "argument": { 496 "type": "NumberLiteral", 497 "value": 5 498 } 499 } 500 ] 501 } 502 } 503 }, 504 "overloads": [], 505 "decorators": [] 506 }, 507 { 508 "type": "MethodDefinition", 509 "key": { 510 "type": "Identifier", 511 "name": "constructor", 512 "decorators": [] 513 }, 514 "kind": "constructor", 515 "accessibility": "public", 516 "static": false, 517 "optional": false, 518 "computed": false, 519 "value": { 520 "type": "FunctionExpression", 521 "function": { 522 "type": "ScriptFunction", 523 "id": { 524 "type": "Identifier", 525 "name": "constructor", 526 "decorators": [] 527 }, 528 "generator": false, 529 "async": false, 530 "expression": false, 531 "params": [], 532 "body": { 533 "type": "BlockStatement", 534 "statements": [ 535 { 536 "type": "ExpressionStatement", 537 "expression": { 538 "type": "AssignmentExpression", 539 "operator": "=", 540 "left": { 541 "type": "MemberExpression", 542 "object": { 543 "type": "ThisExpression" 544 }, 545 "property": { 546 "type": "Identifier", 547 "name": "name", 548 "decorators": [] 549 }, 550 "computed": false, 551 "optional": false 552 }, 553 "right": { 554 "type": "StringLiteral", 555 "value": "hello" 556 } 557 } 558 } 559 ] 560 } 561 } 562 }, 563 "overloads": [], 564 "decorators": [] 565 } 566 ] 567} 568--- 569{ 570 "type": "Identifier", 571 "name": "GoodGreeter", 572 "decorators": [] 573} 574--- 575{ 576 "type": "ClassProperty", 577 "key": { 578 "type": "Identifier", 579 "name": "name", 580 "decorators": [] 581 }, 582 "accessibility": "public", 583 "static": false, 584 "readonly": false, 585 "declare": false, 586 "optional": false, 587 "computed": false, 588 "typeAnnotation": { 589 "type": "ETSTypeReference", 590 "part": { 591 "type": "ETSTypeReferencePart", 592 "name": { 593 "type": "Identifier", 594 "name": "string", 595 "decorators": [] 596 } 597 } 598 }, 599 "definite": false, 600 "decorators": [] 601} 602--- 603{ 604 "type": "Identifier", 605 "name": "name", 606 "decorators": [] 607} 608--- 609{ 610 "type": "ETSTypeReference", 611 "part": { 612 "type": "ETSTypeReferencePart", 613 "name": { 614 "type": "Identifier", 615 "name": "string", 616 "decorators": [] 617 } 618 } 619} 620--- 621{ 622 "type": "ETSTypeReferencePart", 623 "name": { 624 "type": "Identifier", 625 "name": "string", 626 "decorators": [] 627 } 628} 629--- 630{ 631 "type": "Identifier", 632 "name": "string", 633 "decorators": [] 634} 635--- 636{ 637 "type": "MethodDefinition", 638 "key": { 639 "type": "Identifier", 640 "name": "invoke", 641 "decorators": [] 642 }, 643 "kind": "method", 644 "accessibility": "public", 645 "static": true, 646 "optional": false, 647 "computed": false, 648 "value": { 649 "type": "FunctionExpression", 650 "function": { 651 "type": "ScriptFunction", 652 "id": { 653 "type": "Identifier", 654 "name": "invoke", 655 "decorators": [] 656 }, 657 "generator": false, 658 "async": false, 659 "expression": false, 660 "params": [], 661 "returnType": { 662 "type": "ETSPrimitiveType" 663 }, 664 "body": { 665 "type": "BlockStatement", 666 "statements": [ 667 { 668 "type": "ReturnStatement", 669 "argument": { 670 "type": "NumberLiteral", 671 "value": 5 672 } 673 } 674 ] 675 } 676 } 677 }, 678 "overloads": [], 679 "decorators": [] 680} 681--- 682{ 683 "type": "Identifier", 684 "name": "invoke", 685 "decorators": [] 686} 687--- 688{ 689 "type": "FunctionExpression", 690 "function": { 691 "type": "ScriptFunction", 692 "id": { 693 "type": "Identifier", 694 "name": "invoke", 695 "decorators": [] 696 }, 697 "generator": false, 698 "async": false, 699 "expression": false, 700 "params": [], 701 "returnType": { 702 "type": "ETSPrimitiveType" 703 }, 704 "body": { 705 "type": "BlockStatement", 706 "statements": [ 707 { 708 "type": "ReturnStatement", 709 "argument": { 710 "type": "NumberLiteral", 711 "value": 5 712 } 713 } 714 ] 715 } 716 } 717} 718--- 719{ 720 "type": "ScriptFunction", 721 "id": { 722 "type": "Identifier", 723 "name": "invoke", 724 "decorators": [] 725 }, 726 "generator": false, 727 "async": false, 728 "expression": false, 729 "params": [], 730 "returnType": { 731 "type": "ETSPrimitiveType" 732 }, 733 "body": { 734 "type": "BlockStatement", 735 "statements": [ 736 { 737 "type": "ReturnStatement", 738 "argument": { 739 "type": "NumberLiteral", 740 "value": 5 741 } 742 } 743 ] 744 } 745} 746--- 747{ 748 "type": "Identifier", 749 "name": "invoke", 750 "decorators": [] 751} 752--- 753{ 754 "type": "ETSPrimitiveType" 755} 756--- 757{ 758 "type": "BlockStatement", 759 "statements": [ 760 { 761 "type": "ReturnStatement", 762 "argument": { 763 "type": "NumberLiteral", 764 "value": 5 765 } 766 } 767 ] 768} 769--- 770{ 771 "type": "ReturnStatement", 772 "argument": { 773 "type": "NumberLiteral", 774 "value": 5 775 } 776} 777--- 778{ 779 "type": "NumberLiteral", 780 "value": 5 781} 782--- 783{ 784 "type": "MethodDefinition", 785 "key": { 786 "type": "Identifier", 787 "name": "constructor", 788 "decorators": [] 789 }, 790 "kind": "constructor", 791 "accessibility": "public", 792 "static": false, 793 "optional": false, 794 "computed": false, 795 "value": { 796 "type": "FunctionExpression", 797 "function": { 798 "type": "ScriptFunction", 799 "id": { 800 "type": "Identifier", 801 "name": "constructor", 802 "decorators": [] 803 }, 804 "generator": false, 805 "async": false, 806 "expression": false, 807 "params": [], 808 "body": { 809 "type": "BlockStatement", 810 "statements": [ 811 { 812 "type": "ExpressionStatement", 813 "expression": { 814 "type": "AssignmentExpression", 815 "operator": "=", 816 "left": { 817 "type": "MemberExpression", 818 "object": { 819 "type": "ThisExpression" 820 }, 821 "property": { 822 "type": "Identifier", 823 "name": "name", 824 "decorators": [] 825 }, 826 "computed": false, 827 "optional": false 828 }, 829 "right": { 830 "type": "StringLiteral", 831 "value": "hello" 832 } 833 } 834 } 835 ] 836 } 837 } 838 }, 839 "overloads": [], 840 "decorators": [] 841} 842--- 843{ 844 "type": "Identifier", 845 "name": "constructor", 846 "decorators": [] 847} 848--- 849{ 850 "type": "FunctionExpression", 851 "function": { 852 "type": "ScriptFunction", 853 "id": { 854 "type": "Identifier", 855 "name": "constructor", 856 "decorators": [] 857 }, 858 "generator": false, 859 "async": false, 860 "expression": false, 861 "params": [], 862 "body": { 863 "type": "BlockStatement", 864 "statements": [ 865 { 866 "type": "ExpressionStatement", 867 "expression": { 868 "type": "AssignmentExpression", 869 "operator": "=", 870 "left": { 871 "type": "MemberExpression", 872 "object": { 873 "type": "ThisExpression" 874 }, 875 "property": { 876 "type": "Identifier", 877 "name": "name", 878 "decorators": [] 879 }, 880 "computed": false, 881 "optional": false 882 }, 883 "right": { 884 "type": "StringLiteral", 885 "value": "hello" 886 } 887 } 888 } 889 ] 890 } 891 } 892} 893--- 894{ 895 "type": "ScriptFunction", 896 "id": { 897 "type": "Identifier", 898 "name": "constructor", 899 "decorators": [] 900 }, 901 "generator": false, 902 "async": false, 903 "expression": false, 904 "params": [], 905 "body": { 906 "type": "BlockStatement", 907 "statements": [ 908 { 909 "type": "ExpressionStatement", 910 "expression": { 911 "type": "AssignmentExpression", 912 "operator": "=", 913 "left": { 914 "type": "MemberExpression", 915 "object": { 916 "type": "ThisExpression" 917 }, 918 "property": { 919 "type": "Identifier", 920 "name": "name", 921 "decorators": [] 922 }, 923 "computed": false, 924 "optional": false 925 }, 926 "right": { 927 "type": "StringLiteral", 928 "value": "hello" 929 } 930 } 931 } 932 ] 933 } 934} 935--- 936{ 937 "type": "Identifier", 938 "name": "constructor", 939 "decorators": [] 940} 941--- 942{ 943 "type": "BlockStatement", 944 "statements": [ 945 { 946 "type": "ExpressionStatement", 947 "expression": { 948 "type": "AssignmentExpression", 949 "operator": "=", 950 "left": { 951 "type": "MemberExpression", 952 "object": { 953 "type": "ThisExpression" 954 }, 955 "property": { 956 "type": "Identifier", 957 "name": "name", 958 "decorators": [] 959 }, 960 "computed": false, 961 "optional": false 962 }, 963 "right": { 964 "type": "StringLiteral", 965 "value": "hello" 966 } 967 } 968 } 969 ] 970} 971--- 972{ 973 "type": "ExpressionStatement", 974 "expression": { 975 "type": "AssignmentExpression", 976 "operator": "=", 977 "left": { 978 "type": "MemberExpression", 979 "object": { 980 "type": "ThisExpression" 981 }, 982 "property": { 983 "type": "Identifier", 984 "name": "name", 985 "decorators": [] 986 }, 987 "computed": false, 988 "optional": false 989 }, 990 "right": { 991 "type": "StringLiteral", 992 "value": "hello" 993 } 994 } 995} 996--- 997{ 998 "type": "AssignmentExpression", 999 "operator": "=", 1000 "left": { 1001 "type": "MemberExpression", 1002 "object": { 1003 "type": "ThisExpression" 1004 }, 1005 "property": { 1006 "type": "Identifier", 1007 "name": "name", 1008 "decorators": [] 1009 }, 1010 "computed": false, 1011 "optional": false 1012 }, 1013 "right": { 1014 "type": "StringLiteral", 1015 "value": "hello" 1016 } 1017} 1018--- 1019{ 1020 "type": "MemberExpression", 1021 "object": { 1022 "type": "ThisExpression" 1023 }, 1024 "property": { 1025 "type": "Identifier", 1026 "name": "name", 1027 "decorators": [] 1028 }, 1029 "computed": false, 1030 "optional": false 1031} 1032--- 1033{ 1034 "type": "ThisExpression" 1035} 1036--- 1037{ 1038 "type": "Identifier", 1039 "name": "name", 1040 "decorators": [] 1041} 1042--- 1043{ 1044 "type": "StringLiteral", 1045 "value": "hello" 1046} 1047--- 1048{ 1049 "type": "VariableDeclaration", 1050 "declarations": [ 1051 { 1052 "type": "VariableDeclarator", 1053 "id": { 1054 "type": "Identifier", 1055 "name": "a", 1056 "decorators": [] 1057 }, 1058 "init": { 1059 "type": "CallExpression", 1060 "callee": { 1061 "type": "Identifier", 1062 "name": "GoodGreeter", 1063 "decorators": [] 1064 }, 1065 "arguments": [], 1066 "optional": false 1067 } 1068 } 1069 ], 1070 "kind": "let" 1071} 1072--- 1073{ 1074 "type": "VariableDeclarator", 1075 "id": { 1076 "type": "Identifier", 1077 "name": "a", 1078 "decorators": [] 1079 }, 1080 "init": { 1081 "type": "CallExpression", 1082 "callee": { 1083 "type": "Identifier", 1084 "name": "GoodGreeter", 1085 "decorators": [] 1086 }, 1087 "arguments": [], 1088 "optional": false 1089 } 1090} 1091--- 1092{ 1093 "type": "Identifier", 1094 "name": "a", 1095 "decorators": [] 1096} 1097--- 1098{ 1099 "type": "CallExpression", 1100 "callee": { 1101 "type": "Identifier", 1102 "name": "GoodGreeter", 1103 "decorators": [] 1104 }, 1105 "arguments": [], 1106 "optional": false 1107} 1108--- 1109{ 1110 "type": "Identifier", 1111 "name": "GoodGreeter", 1112 "decorators": [] 1113} 1114--- 1115{ 1116 "type": "FunctionDeclaration", 1117 "function": { 1118 "type": "ScriptFunction", 1119 "id": { 1120 "type": "Identifier", 1121 "name": "main", 1122 "decorators": [] 1123 }, 1124 "generator": false, 1125 "async": false, 1126 "expression": false, 1127 "params": [], 1128 "body": { 1129 "type": "BlockStatement", 1130 "statements": [ 1131 { 1132 "type": "VariableDeclaration", 1133 "declarations": [ 1134 { 1135 "type": "VariableDeclarator", 1136 "id": { 1137 "type": "Identifier", 1138 "name": "m", 1139 "typeAnnotation": { 1140 "type": "ETSPrimitiveType" 1141 }, 1142 "decorators": [] 1143 }, 1144 "init": { 1145 "type": "NumberLiteral", 1146 "value": 1 1147 } 1148 } 1149 ], 1150 "kind": "let" 1151 }, 1152 { 1153 "type": "VariableDeclaration", 1154 "declarations": [ 1155 { 1156 "type": "VariableDeclarator", 1157 "id": { 1158 "type": "Identifier", 1159 "name": "n", 1160 "typeAnnotation": { 1161 "type": "ETSPrimitiveType" 1162 }, 1163 "decorators": [] 1164 }, 1165 "init": { 1166 "type": "NumberLiteral", 1167 "value": 2 1168 } 1169 } 1170 ], 1171 "kind": "let" 1172 }, 1173 { 1174 "type": "ExpressionStatement", 1175 "expression": { 1176 "type": "CallExpression", 1177 "callee": { 1178 "type": "MemberExpression", 1179 "object": { 1180 "type": "Identifier", 1181 "name": "console", 1182 "decorators": [] 1183 }, 1184 "property": { 1185 "type": "Identifier", 1186 "name": "log", 1187 "decorators": [] 1188 }, 1189 "computed": false, 1190 "optional": false 1191 }, 1192 "arguments": [ 1193 { 1194 "type": "BinaryExpression", 1195 "operator": "+", 1196 "left": { 1197 "type": "Identifier", 1198 "name": "m", 1199 "decorators": [] 1200 }, 1201 "right": { 1202 "type": "Identifier", 1203 "name": "n", 1204 "decorators": [] 1205 } 1206 } 1207 ], 1208 "optional": false 1209 } 1210 } 1211 ] 1212 } 1213 } 1214} 1215--- 1216{ 1217 "type": "ScriptFunction", 1218 "id": { 1219 "type": "Identifier", 1220 "name": "main", 1221 "decorators": [] 1222 }, 1223 "generator": false, 1224 "async": false, 1225 "expression": false, 1226 "params": [], 1227 "body": { 1228 "type": "BlockStatement", 1229 "statements": [ 1230 { 1231 "type": "VariableDeclaration", 1232 "declarations": [ 1233 { 1234 "type": "VariableDeclarator", 1235 "id": { 1236 "type": "Identifier", 1237 "name": "m", 1238 "typeAnnotation": { 1239 "type": "ETSPrimitiveType" 1240 }, 1241 "decorators": [] 1242 }, 1243 "init": { 1244 "type": "NumberLiteral", 1245 "value": 1 1246 } 1247 } 1248 ], 1249 "kind": "let" 1250 }, 1251 { 1252 "type": "VariableDeclaration", 1253 "declarations": [ 1254 { 1255 "type": "VariableDeclarator", 1256 "id": { 1257 "type": "Identifier", 1258 "name": "n", 1259 "typeAnnotation": { 1260 "type": "ETSPrimitiveType" 1261 }, 1262 "decorators": [] 1263 }, 1264 "init": { 1265 "type": "NumberLiteral", 1266 "value": 2 1267 } 1268 } 1269 ], 1270 "kind": "let" 1271 }, 1272 { 1273 "type": "ExpressionStatement", 1274 "expression": { 1275 "type": "CallExpression", 1276 "callee": { 1277 "type": "MemberExpression", 1278 "object": { 1279 "type": "Identifier", 1280 "name": "console", 1281 "decorators": [] 1282 }, 1283 "property": { 1284 "type": "Identifier", 1285 "name": "log", 1286 "decorators": [] 1287 }, 1288 "computed": false, 1289 "optional": false 1290 }, 1291 "arguments": [ 1292 { 1293 "type": "BinaryExpression", 1294 "operator": "+", 1295 "left": { 1296 "type": "Identifier", 1297 "name": "m", 1298 "decorators": [] 1299 }, 1300 "right": { 1301 "type": "Identifier", 1302 "name": "n", 1303 "decorators": [] 1304 } 1305 } 1306 ], 1307 "optional": false 1308 } 1309 } 1310 ] 1311 } 1312} 1313--- 1314{ 1315 "type": "Identifier", 1316 "name": "main", 1317 "decorators": [] 1318} 1319--- 1320{ 1321 "type": "BlockStatement", 1322 "statements": [ 1323 { 1324 "type": "VariableDeclaration", 1325 "declarations": [ 1326 { 1327 "type": "VariableDeclarator", 1328 "id": { 1329 "type": "Identifier", 1330 "name": "m", 1331 "typeAnnotation": { 1332 "type": "ETSPrimitiveType" 1333 }, 1334 "decorators": [] 1335 }, 1336 "init": { 1337 "type": "NumberLiteral", 1338 "value": 1 1339 } 1340 } 1341 ], 1342 "kind": "let" 1343 }, 1344 { 1345 "type": "VariableDeclaration", 1346 "declarations": [ 1347 { 1348 "type": "VariableDeclarator", 1349 "id": { 1350 "type": "Identifier", 1351 "name": "n", 1352 "typeAnnotation": { 1353 "type": "ETSPrimitiveType" 1354 }, 1355 "decorators": [] 1356 }, 1357 "init": { 1358 "type": "NumberLiteral", 1359 "value": 2 1360 } 1361 } 1362 ], 1363 "kind": "let" 1364 }, 1365 { 1366 "type": "ExpressionStatement", 1367 "expression": { 1368 "type": "CallExpression", 1369 "callee": { 1370 "type": "MemberExpression", 1371 "object": { 1372 "type": "Identifier", 1373 "name": "console", 1374 "decorators": [] 1375 }, 1376 "property": { 1377 "type": "Identifier", 1378 "name": "log", 1379 "decorators": [] 1380 }, 1381 "computed": false, 1382 "optional": false 1383 }, 1384 "arguments": [ 1385 { 1386 "type": "BinaryExpression", 1387 "operator": "+", 1388 "left": { 1389 "type": "Identifier", 1390 "name": "m", 1391 "decorators": [] 1392 }, 1393 "right": { 1394 "type": "Identifier", 1395 "name": "n", 1396 "decorators": [] 1397 } 1398 } 1399 ], 1400 "optional": false 1401 } 1402 } 1403 ] 1404} 1405--- 1406{ 1407 "type": "VariableDeclaration", 1408 "declarations": [ 1409 { 1410 "type": "VariableDeclarator", 1411 "id": { 1412 "type": "Identifier", 1413 "name": "m", 1414 "typeAnnotation": { 1415 "type": "ETSPrimitiveType" 1416 }, 1417 "decorators": [] 1418 }, 1419 "init": { 1420 "type": "NumberLiteral", 1421 "value": 1 1422 } 1423 } 1424 ], 1425 "kind": "let" 1426} 1427--- 1428{ 1429 "type": "VariableDeclarator", 1430 "id": { 1431 "type": "Identifier", 1432 "name": "m", 1433 "typeAnnotation": { 1434 "type": "ETSPrimitiveType" 1435 }, 1436 "decorators": [] 1437 }, 1438 "init": { 1439 "type": "NumberLiteral", 1440 "value": 1 1441 } 1442} 1443--- 1444{ 1445 "type": "Identifier", 1446 "name": "m", 1447 "typeAnnotation": { 1448 "type": "ETSPrimitiveType" 1449 }, 1450 "decorators": [] 1451} 1452--- 1453{ 1454 "type": "ETSPrimitiveType" 1455} 1456--- 1457{ 1458 "type": "NumberLiteral", 1459 "value": 1 1460} 1461--- 1462{ 1463 "type": "VariableDeclaration", 1464 "declarations": [ 1465 { 1466 "type": "VariableDeclarator", 1467 "id": { 1468 "type": "Identifier", 1469 "name": "n", 1470 "typeAnnotation": { 1471 "type": "ETSPrimitiveType" 1472 }, 1473 "decorators": [] 1474 }, 1475 "init": { 1476 "type": "NumberLiteral", 1477 "value": 2 1478 } 1479 } 1480 ], 1481 "kind": "let" 1482} 1483--- 1484{ 1485 "type": "VariableDeclarator", 1486 "id": { 1487 "type": "Identifier", 1488 "name": "n", 1489 "typeAnnotation": { 1490 "type": "ETSPrimitiveType" 1491 }, 1492 "decorators": [] 1493 }, 1494 "init": { 1495 "type": "NumberLiteral", 1496 "value": 2 1497 } 1498} 1499--- 1500{ 1501 "type": "Identifier", 1502 "name": "n", 1503 "typeAnnotation": { 1504 "type": "ETSPrimitiveType" 1505 }, 1506 "decorators": [] 1507} 1508--- 1509{ 1510 "type": "ETSPrimitiveType" 1511} 1512--- 1513{ 1514 "type": "NumberLiteral", 1515 "value": 2 1516} 1517--- 1518{ 1519 "type": "ExpressionStatement", 1520 "expression": { 1521 "type": "CallExpression", 1522 "callee": { 1523 "type": "MemberExpression", 1524 "object": { 1525 "type": "Identifier", 1526 "name": "console", 1527 "decorators": [] 1528 }, 1529 "property": { 1530 "type": "Identifier", 1531 "name": "log", 1532 "decorators": [] 1533 }, 1534 "computed": false, 1535 "optional": false 1536 }, 1537 "arguments": [ 1538 { 1539 "type": "BinaryExpression", 1540 "operator": "+", 1541 "left": { 1542 "type": "Identifier", 1543 "name": "m", 1544 "decorators": [] 1545 }, 1546 "right": { 1547 "type": "Identifier", 1548 "name": "n", 1549 "decorators": [] 1550 } 1551 } 1552 ], 1553 "optional": false 1554 } 1555} 1556--- 1557{ 1558 "type": "CallExpression", 1559 "callee": { 1560 "type": "MemberExpression", 1561 "object": { 1562 "type": "Identifier", 1563 "name": "console", 1564 "decorators": [] 1565 }, 1566 "property": { 1567 "type": "Identifier", 1568 "name": "log", 1569 "decorators": [] 1570 }, 1571 "computed": false, 1572 "optional": false 1573 }, 1574 "arguments": [ 1575 { 1576 "type": "BinaryExpression", 1577 "operator": "+", 1578 "left": { 1579 "type": "Identifier", 1580 "name": "m", 1581 "decorators": [] 1582 }, 1583 "right": { 1584 "type": "Identifier", 1585 "name": "n", 1586 "decorators": [] 1587 } 1588 } 1589 ], 1590 "optional": false 1591} 1592--- 1593{ 1594 "type": "MemberExpression", 1595 "object": { 1596 "type": "Identifier", 1597 "name": "console", 1598 "decorators": [] 1599 }, 1600 "property": { 1601 "type": "Identifier", 1602 "name": "log", 1603 "decorators": [] 1604 }, 1605 "computed": false, 1606 "optional": false 1607} 1608--- 1609{ 1610 "type": "Identifier", 1611 "name": "console", 1612 "decorators": [] 1613} 1614--- 1615{ 1616 "type": "Identifier", 1617 "name": "log", 1618 "decorators": [] 1619} 1620--- 1621{ 1622 "type": "BinaryExpression", 1623 "operator": "+", 1624 "left": { 1625 "type": "Identifier", 1626 "name": "m", 1627 "decorators": [] 1628 }, 1629 "right": { 1630 "type": "Identifier", 1631 "name": "n", 1632 "decorators": [] 1633 } 1634} 1635--- 1636{ 1637 "type": "Identifier", 1638 "name": "m", 1639 "decorators": [] 1640} 1641--- 1642{ 1643 "type": "Identifier", 1644 "name": "n", 1645 "decorators": [] 1646} 1647--- 1648After check: 1649--- 1650After lowerings: 1651--- 1652