1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "VariableDeclaration", 6 "declarations": [ 7 { 8 "type": "VariableDeclarator", 9 "id": { 10 "type": "Identifier", 11 "name": "f1", 12 "decorators": [], 13 "loc": { 14 "start": { 15 "line": 17, 16 "column": 5, 17 "program": "test-function-decl.js" 18 }, 19 "end": { 20 "line": 17, 21 "column": 7, 22 "program": "test-function-decl.js" 23 } 24 } 25 }, 26 "init": { 27 "type": "FunctionExpression", 28 "function": { 29 "type": "ScriptFunction", 30 "id": null, 31 "generator": false, 32 "async": false, 33 "expression": false, 34 "params": [], 35 "body": { 36 "type": "BlockStatement", 37 "statements": [ 38 { 39 "type": "ExpressionStatement", 40 "expression": { 41 "type": "StringLiteral", 42 "value": "asd", 43 "loc": { 44 "start": { 45 "line": 17, 46 "column": 23, 47 "program": "test-function-decl.js" 48 }, 49 "end": { 50 "line": 17, 51 "column": 28, 52 "program": "test-function-decl.js" 53 } 54 } 55 }, 56 "loc": { 57 "start": { 58 "line": 17, 59 "column": 23, 60 "program": "test-function-decl.js" 61 }, 62 "end": { 63 "line": 17, 64 "column": 28, 65 "program": "test-function-decl.js" 66 } 67 } 68 } 69 ], 70 "loc": { 71 "start": { 72 "line": 17, 73 "column": 21, 74 "program": "test-function-decl.js" 75 }, 76 "end": { 77 "line": 17, 78 "column": 30, 79 "program": "test-function-decl.js" 80 } 81 } 82 }, 83 "loc": { 84 "start": { 85 "line": 17, 86 "column": 10, 87 "program": "test-function-decl.js" 88 }, 89 "end": { 90 "line": 17, 91 "column": 30, 92 "program": "test-function-decl.js" 93 } 94 } 95 }, 96 "loc": { 97 "start": { 98 "line": 17, 99 "column": 10, 100 "program": "test-function-decl.js" 101 }, 102 "end": { 103 "line": 17, 104 "column": 30, 105 "program": "test-function-decl.js" 106 } 107 } 108 }, 109 "loc": { 110 "start": { 111 "line": 17, 112 "column": 5, 113 "program": "test-function-decl.js" 114 }, 115 "end": { 116 "line": 17, 117 "column": 30, 118 "program": "test-function-decl.js" 119 } 120 } 121 }, 122 { 123 "type": "VariableDeclarator", 124 "id": { 125 "type": "Identifier", 126 "name": "f10", 127 "decorators": [], 128 "loc": { 129 "start": { 130 "line": 17, 131 "column": 32, 132 "program": "test-function-decl.js" 133 }, 134 "end": { 135 "line": 17, 136 "column": 35, 137 "program": "test-function-decl.js" 138 } 139 } 140 }, 141 "init": null, 142 "loc": { 143 "start": { 144 "line": 17, 145 "column": 32, 146 "program": "test-function-decl.js" 147 }, 148 "end": { 149 "line": 17, 150 "column": 35, 151 "program": "test-function-decl.js" 152 } 153 } 154 } 155 ], 156 "kind": "var", 157 "loc": { 158 "start": { 159 "line": 17, 160 "column": 1, 161 "program": "test-function-decl.js" 162 }, 163 "end": { 164 "line": 18, 165 "column": 2, 166 "program": "test-function-decl.js" 167 } 168 } 169 }, 170 { 171 "type": "ExpressionStatement", 172 "expression": { 173 "type": "AssignmentExpression", 174 "operator": "=", 175 "left": { 176 "type": "Identifier", 177 "name": "f2", 178 "decorators": [], 179 "loc": { 180 "start": { 181 "line": 19, 182 "column": 1, 183 "program": "test-function-decl.js" 184 }, 185 "end": { 186 "line": 19, 187 "column": 3, 188 "program": "test-function-decl.js" 189 } 190 } 191 }, 192 "right": { 193 "type": "FunctionExpression", 194 "function": { 195 "type": "ScriptFunction", 196 "id": null, 197 "generator": false, 198 "async": false, 199 "expression": false, 200 "params": [], 201 "body": { 202 "type": "BlockStatement", 203 "statements": [ 204 { 205 "type": "ReturnStatement", 206 "argument": { 207 "type": "NumberLiteral", 208 "value": 123, 209 "loc": { 210 "start": { 211 "line": 20, 212 "column": 10, 213 "program": "test-function-decl.js" 214 }, 215 "end": { 216 "line": 20, 217 "column": 13, 218 "program": "test-function-decl.js" 219 } 220 } 221 }, 222 "loc": { 223 "start": { 224 "line": 20, 225 "column": 3, 226 "program": "test-function-decl.js" 227 }, 228 "end": { 229 "line": 20, 230 "column": 13, 231 "program": "test-function-decl.js" 232 } 233 } 234 } 235 ], 236 "loc": { 237 "start": { 238 "line": 19, 239 "column": 17, 240 "program": "test-function-decl.js" 241 }, 242 "end": { 243 "line": 20, 244 "column": 15, 245 "program": "test-function-decl.js" 246 } 247 } 248 }, 249 "loc": { 250 "start": { 251 "line": 19, 252 "column": 6, 253 "program": "test-function-decl.js" 254 }, 255 "end": { 256 "line": 20, 257 "column": 15, 258 "program": "test-function-decl.js" 259 } 260 } 261 }, 262 "loc": { 263 "start": { 264 "line": 19, 265 "column": 6, 266 "program": "test-function-decl.js" 267 }, 268 "end": { 269 "line": 20, 270 "column": 15, 271 "program": "test-function-decl.js" 272 } 273 } 274 }, 275 "loc": { 276 "start": { 277 "line": 19, 278 "column": 1, 279 "program": "test-function-decl.js" 280 }, 281 "end": { 282 "line": 20, 283 "column": 15, 284 "program": "test-function-decl.js" 285 } 286 } 287 }, 288 "loc": { 289 "start": { 290 "line": 19, 291 "column": 1, 292 "program": "test-function-decl.js" 293 }, 294 "end": { 295 "line": 20, 296 "column": 15, 297 "program": "test-function-decl.js" 298 } 299 } 300 }, 301 { 302 "type": "ExpressionStatement", 303 "expression": { 304 "type": "AssignmentExpression", 305 "operator": "=", 306 "left": { 307 "type": "Identifier", 308 "name": "f3", 309 "decorators": [], 310 "loc": { 311 "start": { 312 "line": 22, 313 "column": 1, 314 "program": "test-function-decl.js" 315 }, 316 "end": { 317 "line": 22, 318 "column": 3, 319 "program": "test-function-decl.js" 320 } 321 } 322 }, 323 "right": { 324 "type": "FunctionExpression", 325 "function": { 326 "type": "ScriptFunction", 327 "id": null, 328 "generator": false, 329 "async": false, 330 "expression": false, 331 "params": [], 332 "body": { 333 "type": "BlockStatement", 334 "statements": [ 335 { 336 "type": "ReturnStatement", 337 "argument": { 338 "type": "NumberLiteral", 339 "value": 123, 340 "loc": { 341 "start": { 342 "line": 24, 343 "column": 10, 344 "program": "test-function-decl.js" 345 }, 346 "end": { 347 "line": 24, 348 "column": 13, 349 "program": "test-function-decl.js" 350 } 351 } 352 }, 353 "loc": { 354 "start": { 355 "line": 24, 356 "column": 3, 357 "program": "test-function-decl.js" 358 }, 359 "end": { 360 "line": 24, 361 "column": 14, 362 "program": "test-function-decl.js" 363 } 364 } 365 } 366 ], 367 "loc": { 368 "start": { 369 "line": 23, 370 "column": 1, 371 "program": "test-function-decl.js" 372 }, 373 "end": { 374 "line": 25, 375 "column": 2, 376 "program": "test-function-decl.js" 377 } 378 } 379 }, 380 "loc": { 381 "start": { 382 "line": 22, 383 "column": 6, 384 "program": "test-function-decl.js" 385 }, 386 "end": { 387 "line": 25, 388 "column": 2, 389 "program": "test-function-decl.js" 390 } 391 } 392 }, 393 "loc": { 394 "start": { 395 "line": 22, 396 "column": 6, 397 "program": "test-function-decl.js" 398 }, 399 "end": { 400 "line": 25, 401 "column": 2, 402 "program": "test-function-decl.js" 403 } 404 } 405 }, 406 "loc": { 407 "start": { 408 "line": 22, 409 "column": 1, 410 "program": "test-function-decl.js" 411 }, 412 "end": { 413 "line": 25, 414 "column": 2, 415 "program": "test-function-decl.js" 416 } 417 } 418 }, 419 "loc": { 420 "start": { 421 "line": 22, 422 "column": 1, 423 "program": "test-function-decl.js" 424 }, 425 "end": { 426 "line": 25, 427 "column": 2, 428 "program": "test-function-decl.js" 429 } 430 } 431 }, 432 { 433 "type": "VariableDeclaration", 434 "declarations": [ 435 { 436 "type": "VariableDeclarator", 437 "id": { 438 "type": "Identifier", 439 "name": "d", 440 "decorators": [], 441 "loc": { 442 "start": { 443 "line": 27, 444 "column": 5, 445 "program": "test-function-decl.js" 446 }, 447 "end": { 448 "line": 27, 449 "column": 6, 450 "program": "test-function-decl.js" 451 } 452 } 453 }, 454 "init": null, 455 "loc": { 456 "start": { 457 "line": 27, 458 "column": 5, 459 "program": "test-function-decl.js" 460 }, 461 "end": { 462 "line": 27, 463 "column": 6, 464 "program": "test-function-decl.js" 465 } 466 } 467 } 468 ], 469 "kind": "let", 470 "loc": { 471 "start": { 472 "line": 27, 473 "column": 1, 474 "program": "test-function-decl.js" 475 }, 476 "end": { 477 "line": 27, 478 "column": 7, 479 "program": "test-function-decl.js" 480 } 481 } 482 }, 483 { 484 "type": "FunctionDeclaration", 485 "function": { 486 "type": "ScriptFunction", 487 "id": { 488 "type": "Identifier", 489 "name": "f4", 490 "decorators": [], 491 "loc": { 492 "start": { 493 "line": 29, 494 "column": 10, 495 "program": "test-function-decl.js" 496 }, 497 "end": { 498 "line": 29, 499 "column": 12, 500 "program": "test-function-decl.js" 501 } 502 } 503 }, 504 "generator": false, 505 "async": false, 506 "expression": false, 507 "params": [ 508 { 509 "type": "Identifier", 510 "name": "a", 511 "decorators": [], 512 "loc": { 513 "start": { 514 "line": 29, 515 "column": 13, 516 "program": "test-function-decl.js" 517 }, 518 "end": { 519 "line": 29, 520 "column": 14, 521 "program": "test-function-decl.js" 522 } 523 } 524 }, 525 { 526 "type": "Identifier", 527 "name": "b", 528 "decorators": [], 529 "loc": { 530 "start": { 531 "line": 29, 532 "column": 16, 533 "program": "test-function-decl.js" 534 }, 535 "end": { 536 "line": 29, 537 "column": 17, 538 "program": "test-function-decl.js" 539 } 540 } 541 }, 542 { 543 "type": "Identifier", 544 "name": "c", 545 "decorators": [], 546 "loc": { 547 "start": { 548 "line": 29, 549 "column": 19, 550 "program": "test-function-decl.js" 551 }, 552 "end": { 553 "line": 29, 554 "column": 20, 555 "program": "test-function-decl.js" 556 } 557 } 558 } 559 ], 560 "body": { 561 "type": "BlockStatement", 562 "statements": [ 563 { 564 "type": "VariableDeclaration", 565 "declarations": [ 566 { 567 "type": "VariableDeclarator", 568 "id": { 569 "type": "Identifier", 570 "name": "d", 571 "decorators": [], 572 "loc": { 573 "start": { 574 "line": 30, 575 "column": 7, 576 "program": "test-function-decl.js" 577 }, 578 "end": { 579 "line": 30, 580 "column": 8, 581 "program": "test-function-decl.js" 582 } 583 } 584 }, 585 "init": null, 586 "loc": { 587 "start": { 588 "line": 30, 589 "column": 7, 590 "program": "test-function-decl.js" 591 }, 592 "end": { 593 "line": 30, 594 "column": 8, 595 "program": "test-function-decl.js" 596 } 597 } 598 } 599 ], 600 "kind": "let", 601 "loc": { 602 "start": { 603 "line": 30, 604 "column": 3, 605 "program": "test-function-decl.js" 606 }, 607 "end": { 608 "line": 30, 609 "column": 9, 610 "program": "test-function-decl.js" 611 } 612 } 613 } 614 ], 615 "loc": { 616 "start": { 617 "line": 29, 618 "column": 22, 619 "program": "test-function-decl.js" 620 }, 621 "end": { 622 "line": 31, 623 "column": 2, 624 "program": "test-function-decl.js" 625 } 626 } 627 }, 628 "loc": { 629 "start": { 630 "line": 29, 631 "column": 1, 632 "program": "test-function-decl.js" 633 }, 634 "end": { 635 "line": 31, 636 "column": 2, 637 "program": "test-function-decl.js" 638 } 639 } 640 }, 641 "loc": { 642 "start": { 643 "line": 29, 644 "column": 1, 645 "program": "test-function-decl.js" 646 }, 647 "end": { 648 "line": 31, 649 "column": 2, 650 "program": "test-function-decl.js" 651 } 652 } 653 }, 654 { 655 "type": "FunctionDeclaration", 656 "function": { 657 "type": "ScriptFunction", 658 "id": { 659 "type": "Identifier", 660 "name": "await", 661 "decorators": [], 662 "loc": { 663 "start": { 664 "line": 33, 665 "column": 16, 666 "program": "test-function-decl.js" 667 }, 668 "end": { 669 "line": 33, 670 "column": 21, 671 "program": "test-function-decl.js" 672 } 673 } 674 }, 675 "generator": false, 676 "async": true, 677 "expression": false, 678 "params": [], 679 "body": { 680 "type": "BlockStatement", 681 "statements": [], 682 "loc": { 683 "start": { 684 "line": 33, 685 "column": 24, 686 "program": "test-function-decl.js" 687 }, 688 "end": { 689 "line": 33, 690 "column": 27, 691 "program": "test-function-decl.js" 692 } 693 } 694 }, 695 "loc": { 696 "start": { 697 "line": 33, 698 "column": 7, 699 "program": "test-function-decl.js" 700 }, 701 "end": { 702 "line": 33, 703 "column": 27, 704 "program": "test-function-decl.js" 705 } 706 } 707 }, 708 "loc": { 709 "start": { 710 "line": 33, 711 "column": 1, 712 "program": "test-function-decl.js" 713 }, 714 "end": { 715 "line": 33, 716 "column": 27, 717 "program": "test-function-decl.js" 718 } 719 } 720 }, 721 { 722 "type": "EmptyStatement", 723 "loc": { 724 "start": { 725 "line": 33, 726 "column": 27, 727 "program": "test-function-decl.js" 728 }, 729 "end": { 730 "line": 33, 731 "column": 28, 732 "program": "test-function-decl.js" 733 } 734 } 735 } 736 ], 737 "loc": { 738 "start": { 739 "line": 1, 740 "column": 1, 741 "program": "test-function-decl.js" 742 }, 743 "end": { 744 "line": 33, 745 "column": 28, 746 "program": "test-function-decl.js" 747 } 748 } 749} 750