1 package minify 2 3 import ( 4 "reflect" 5 "strings" 6 "testing" 7 8 "vimagination.zapto.org/javascript" 9 "vimagination.zapto.org/parser" 10 ) 11 12 func makeToken(typ parser.TokenType, data string) *javascript.Token { 13 return &javascript.Token{ 14 Token: parser.Token{ 15 Type: typ, 16 Data: data, 17 }, 18 } 19 } 20 21 func TestTransforms(t *testing.T) { 22 for n, test := range [...]struct { 23 Options []Option 24 Input, Output javascript.Type 25 }{ 26 { // 1 27 []Option{Literals}, 28 &javascript.PrimaryExpression{ 29 Literal: makeToken(javascript.TokenBooleanLiteral, "false"), 30 }, 31 &javascript.PrimaryExpression{ 32 Literal: makeToken(javascript.TokenBooleanLiteral, "!1"), 33 }, 34 }, 35 { // 2 36 []Option{Literals}, 37 &javascript.PrimaryExpression{ 38 Literal: makeToken(javascript.TokenBooleanLiteral, "true"), 39 }, 40 &javascript.PrimaryExpression{ 41 Literal: makeToken(javascript.TokenBooleanLiteral, "!0"), 42 }, 43 }, 44 { // 3 45 []Option{Literals}, 46 &javascript.PrimaryExpression{ 47 IdentifierReference: makeToken(javascript.TokenIdentifier, "undefined"), 48 }, 49 &javascript.PrimaryExpression{ 50 IdentifierReference: makeToken(javascript.TokenIdentifier, "void 0"), 51 }, 52 }, 53 { // 4 54 []Option{Literals}, 55 &javascript.PrimaryExpression{ 56 Literal: makeToken(javascript.TokenNumericLiteral, "100"), 57 }, 58 &javascript.PrimaryExpression{ 59 Literal: makeToken(javascript.TokenNumericLiteral, "100"), 60 }, 61 }, 62 { // 5 63 []Option{Literals}, 64 &javascript.PrimaryExpression{ 65 Literal: makeToken(javascript.TokenNumericLiteral, "1000"), 66 }, 67 &javascript.PrimaryExpression{ 68 Literal: makeToken(javascript.TokenNumericLiteral, "1e3"), 69 }, 70 }, 71 { // 6 72 []Option{Literals}, 73 &javascript.PrimaryExpression{ 74 Literal: makeToken(javascript.TokenNumericLiteral, "123450000"), 75 }, 76 &javascript.PrimaryExpression{ 77 Literal: makeToken(javascript.TokenNumericLiteral, "12345e4"), 78 }, 79 }, 80 { // 7 81 []Option{Literals}, 82 &javascript.PrimaryExpression{ 83 Literal: makeToken(javascript.TokenNumericLiteral, "0.01"), 84 }, 85 &javascript.PrimaryExpression{ 86 Literal: makeToken(javascript.TokenNumericLiteral, "0.01"), 87 }, 88 }, 89 { // 8 90 []Option{Literals}, 91 &javascript.PrimaryExpression{ 92 Literal: makeToken(javascript.TokenNumericLiteral, "0.001"), 93 }, 94 &javascript.PrimaryExpression{ 95 Literal: makeToken(javascript.TokenNumericLiteral, "1e-3"), 96 }, 97 }, 98 { // 9 99 []Option{Literals}, 100 &javascript.PrimaryExpression{ 101 Literal: makeToken(javascript.TokenNumericLiteral, "0.00123400"), 102 }, 103 &javascript.PrimaryExpression{ 104 Literal: makeToken(javascript.TokenNumericLiteral, "1234e-6"), 105 }, 106 }, 107 { // 10 108 []Option{Literals}, 109 &javascript.PrimaryExpression{ 110 Literal: makeToken(javascript.TokenNumericLiteral, "0xff"), 111 }, 112 &javascript.PrimaryExpression{ 113 Literal: makeToken(javascript.TokenNumericLiteral, "255"), 114 }, 115 }, 116 { // 11 117 []Option{Literals}, 118 &javascript.PrimaryExpression{ 119 Literal: makeToken(javascript.TokenNumericLiteral, "999999999999"), 120 }, 121 &javascript.PrimaryExpression{ 122 Literal: makeToken(javascript.TokenNumericLiteral, "999999999999"), 123 }, 124 }, 125 { // 12 126 []Option{Literals}, 127 &javascript.PrimaryExpression{ 128 Literal: makeToken(javascript.TokenNumericLiteral, "1000000000000"), 129 }, 130 &javascript.PrimaryExpression{ 131 Literal: makeToken(javascript.TokenNumericLiteral, "1e12"), 132 }, 133 }, 134 { // 13 135 []Option{Literals}, 136 &javascript.PrimaryExpression{ 137 Literal: makeToken(javascript.TokenNumericLiteral, "1000000000001"), 138 }, 139 &javascript.PrimaryExpression{ 140 Literal: makeToken(javascript.TokenNumericLiteral, "0xe8d4a51001"), 141 }, 142 }, 143 { // 14 144 []Option{Literals}, 145 &javascript.PrimaryExpression{ 146 Literal: makeToken(javascript.TokenNumericLiteral, "0o7"), 147 }, 148 &javascript.PrimaryExpression{ 149 Literal: makeToken(javascript.TokenNumericLiteral, "7"), 150 }, 151 }, 152 { // 15 153 []Option{Literals}, 154 &javascript.PrimaryExpression{ 155 Literal: makeToken(javascript.TokenNumericLiteral, "0b10"), 156 }, 157 &javascript.PrimaryExpression{ 158 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 159 }, 160 }, 161 { // 16 162 []Option{Literals}, 163 &javascript.PrimaryExpression{ 164 Literal: makeToken(javascript.TokenNumericLiteral, "123_456"), 165 }, 166 &javascript.PrimaryExpression{ 167 Literal: makeToken(javascript.TokenNumericLiteral, "123456"), 168 }, 169 }, 170 { // 17 171 []Option{ArrowFn}, 172 &javascript.AssignmentExpression{ 173 ArrowFunction: &javascript.ArrowFunction{ 174 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 175 FunctionBody: &javascript.Block{ 176 StatementList: []javascript.StatementListItem{ 177 { 178 Statement: &javascript.Statement{ 179 Type: javascript.StatementReturn, 180 ExpressionStatement: &javascript.Expression{ 181 Expressions: []javascript.AssignmentExpression{ 182 { 183 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 184 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 185 }), 186 }, 187 }, 188 }, 189 }, 190 }, 191 }, 192 }, 193 }, 194 }, 195 &javascript.AssignmentExpression{ 196 ArrowFunction: &javascript.ArrowFunction{ 197 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 198 AssignmentExpression: &javascript.AssignmentExpression{ 199 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 200 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 201 }), 202 }, 203 }, 204 }, 205 }, 206 { // 18 207 []Option{ArrowFn}, 208 &javascript.AssignmentExpression{ 209 ArrowFunction: &javascript.ArrowFunction{ 210 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 211 FunctionBody: &javascript.Block{ 212 StatementList: []javascript.StatementListItem{ 213 { 214 Statement: &javascript.Statement{ 215 ExpressionStatement: &javascript.Expression{ 216 Expressions: []javascript.AssignmentExpression{ 217 { 218 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 219 MemberExpression: &javascript.MemberExpression{ 220 PrimaryExpression: &javascript.PrimaryExpression{ 221 IdentifierReference: makeToken(javascript.TokenIdentifier, "m"), 222 }, 223 }, 224 Arguments: &javascript.Arguments{}, 225 }), 226 }, 227 }, 228 }, 229 }, 230 }, 231 { 232 Statement: &javascript.Statement{}, 233 }, 234 { 235 Statement: &javascript.Statement{ 236 Type: javascript.StatementReturn, 237 ExpressionStatement: &javascript.Expression{ 238 Expressions: []javascript.AssignmentExpression{ 239 { 240 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 241 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 242 }), 243 }, 244 }, 245 }, 246 }, 247 }, 248 }, 249 }, 250 }, 251 }, 252 &javascript.AssignmentExpression{ 253 ArrowFunction: &javascript.ArrowFunction{ 254 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 255 AssignmentExpression: &javascript.AssignmentExpression{ 256 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 257 Expressions: []javascript.AssignmentExpression{ 258 { 259 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 260 MemberExpression: &javascript.MemberExpression{ 261 PrimaryExpression: &javascript.PrimaryExpression{ 262 IdentifierReference: makeToken(javascript.TokenIdentifier, "m"), 263 }, 264 }, 265 Arguments: &javascript.Arguments{}, 266 }), 267 }, 268 { 269 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 270 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 271 }), 272 }, 273 }, 274 }), 275 }, 276 }, 277 }, 278 }, 279 { // 19 280 []Option{ArrowFn}, 281 &javascript.AssignmentExpression{ 282 ArrowFunction: &javascript.ArrowFunction{ 283 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 284 FunctionBody: &javascript.Block{ 285 StatementList: []javascript.StatementListItem{ 286 { 287 Statement: &javascript.Statement{ 288 ExpressionStatement: &javascript.Expression{ 289 Expressions: []javascript.AssignmentExpression{ 290 { 291 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 292 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 293 }), 294 }, 295 }, 296 }, 297 }, 298 }, 299 }, 300 }, 301 }, 302 }, 303 &javascript.AssignmentExpression{ 304 ArrowFunction: &javascript.ArrowFunction{ 305 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 306 FunctionBody: &javascript.Block{ 307 StatementList: []javascript.StatementListItem{ 308 { 309 Statement: &javascript.Statement{ 310 ExpressionStatement: &javascript.Expression{ 311 Expressions: []javascript.AssignmentExpression{ 312 { 313 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 314 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 315 }), 316 }, 317 }, 318 }, 319 }, 320 }, 321 }, 322 }, 323 }, 324 }, 325 }, 326 { // 20 327 []Option{ArrowFn}, 328 &javascript.AssignmentExpression{ 329 ArrowFunction: &javascript.ArrowFunction{ 330 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 331 FunctionBody: &javascript.Block{ 332 StatementList: []javascript.StatementListItem{ 333 { 334 Statement: &javascript.Statement{ 335 IterationStatementWhile: &javascript.IterationStatementWhile{ 336 Expression: javascript.Expression{ 337 Expressions: []javascript.AssignmentExpression{ 338 { 339 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 340 MemberExpression: &javascript.MemberExpression{ 341 PrimaryExpression: &javascript.PrimaryExpression{ 342 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 343 }, 344 }, 345 Arguments: &javascript.Arguments{}, 346 }), 347 }, 348 }, 349 }, 350 Statement: javascript.Statement{ 351 BlockStatement: &javascript.Block{}, 352 }, 353 }, 354 }, 355 }, 356 { 357 Statement: &javascript.Statement{ 358 ExpressionStatement: &javascript.Expression{ 359 Expressions: []javascript.AssignmentExpression{ 360 { 361 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 362 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 363 }), 364 }, 365 }, 366 }, 367 }, 368 }, 369 }, 370 }, 371 }, 372 }, 373 &javascript.AssignmentExpression{ 374 ArrowFunction: &javascript.ArrowFunction{ 375 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 376 FunctionBody: &javascript.Block{ 377 StatementList: []javascript.StatementListItem{ 378 { 379 Statement: &javascript.Statement{ 380 IterationStatementWhile: &javascript.IterationStatementWhile{ 381 Expression: javascript.Expression{ 382 Expressions: []javascript.AssignmentExpression{ 383 { 384 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 385 MemberExpression: &javascript.MemberExpression{ 386 PrimaryExpression: &javascript.PrimaryExpression{ 387 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 388 }, 389 }, 390 Arguments: &javascript.Arguments{}, 391 }), 392 }, 393 }, 394 }, 395 Statement: javascript.Statement{ 396 BlockStatement: &javascript.Block{}, 397 }, 398 }, 399 }, 400 }, 401 { 402 Statement: &javascript.Statement{ 403 ExpressionStatement: &javascript.Expression{ 404 Expressions: []javascript.AssignmentExpression{ 405 { 406 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 407 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 408 }), 409 }, 410 }, 411 }, 412 }, 413 }, 414 }, 415 }, 416 }, 417 }, 418 }, 419 { // 21 420 []Option{ArrowFn}, 421 &javascript.AssignmentExpression{ 422 ArrowFunction: &javascript.ArrowFunction{ 423 FormalParameters: &javascript.FormalParameters{ 424 FormalParameterList: []javascript.BindingElement{ 425 { 426 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 427 }, 428 }, 429 }, 430 FunctionBody: &javascript.Block{}, 431 }, 432 }, 433 &javascript.AssignmentExpression{ 434 ArrowFunction: &javascript.ArrowFunction{ 435 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 436 FunctionBody: &javascript.Block{}, 437 }, 438 }, 439 }, 440 { // 22 441 []Option{ArrowFn}, 442 &javascript.AssignmentExpression{ 443 ArrowFunction: &javascript.ArrowFunction{ 444 FormalParameters: &javascript.FormalParameters{ 445 FormalParameterList: []javascript.BindingElement{ 446 { 447 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 448 }, 449 { 450 SingleNameBinding: makeToken(javascript.TokenIdentifier, "b"), 451 }, 452 }, 453 }, 454 FunctionBody: &javascript.Block{}, 455 }, 456 }, 457 &javascript.AssignmentExpression{ 458 ArrowFunction: &javascript.ArrowFunction{ 459 FormalParameters: &javascript.FormalParameters{ 460 FormalParameterList: []javascript.BindingElement{ 461 { 462 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 463 }, 464 { 465 SingleNameBinding: makeToken(javascript.TokenIdentifier, "b"), 466 }, 467 }, 468 }, 469 FunctionBody: &javascript.Block{}, 470 }, 471 }, 472 }, 473 { // 23 474 []Option{ArrowFn}, 475 &javascript.AssignmentExpression{ 476 ArrowFunction: &javascript.ArrowFunction{ 477 FormalParameters: &javascript.FormalParameters{ 478 FormalParameterList: []javascript.BindingElement{ 479 { 480 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 481 Initializer: &javascript.AssignmentExpression{ 482 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 483 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 484 }), 485 }, 486 }, 487 }, 488 }, 489 FunctionBody: &javascript.Block{}, 490 }, 491 }, 492 &javascript.AssignmentExpression{ 493 ArrowFunction: &javascript.ArrowFunction{ 494 FormalParameters: &javascript.FormalParameters{ 495 FormalParameterList: []javascript.BindingElement{ 496 { 497 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 498 Initializer: &javascript.AssignmentExpression{ 499 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 500 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 501 }), 502 }, 503 }, 504 }, 505 }, 506 FunctionBody: &javascript.Block{}, 507 }, 508 }, 509 }, 510 { // 24 511 []Option{ArrowFn}, 512 &javascript.AssignmentExpression{ 513 ArrowFunction: &javascript.ArrowFunction{ 514 FormalParameters: &javascript.FormalParameters{ 515 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 516 }, 517 FunctionBody: &javascript.Block{}, 518 }, 519 }, 520 &javascript.AssignmentExpression{ 521 ArrowFunction: &javascript.ArrowFunction{ 522 FormalParameters: &javascript.FormalParameters{ 523 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 524 }, 525 FunctionBody: &javascript.Block{}, 526 }, 527 }, 528 }, 529 { // 25 530 []Option{IfToConditional}, 531 &javascript.Statement{ 532 IfStatement: &javascript.IfStatement{ 533 Expression: javascript.Expression{ 534 Expressions: []javascript.AssignmentExpression{ 535 { 536 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 537 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 538 }), 539 }, 540 }, 541 }, 542 Statement: javascript.Statement{ 543 ExpressionStatement: &javascript.Expression{ 544 Expressions: []javascript.AssignmentExpression{ 545 { 546 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 547 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 548 }), 549 }, 550 }, 551 }, 552 }, 553 ElseStatement: &javascript.Statement{ 554 ExpressionStatement: &javascript.Expression{ 555 Expressions: []javascript.AssignmentExpression{ 556 { 557 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 558 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 559 }), 560 }, 561 }, 562 }, 563 }, 564 }, 565 }, 566 &javascript.Statement{ 567 ExpressionStatement: &javascript.Expression{ 568 Expressions: []javascript.AssignmentExpression{ 569 { 570 ConditionalExpression: &javascript.ConditionalExpression{ 571 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 572 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 573 }).LogicalORExpression, 574 True: &javascript.AssignmentExpression{ 575 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 576 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 577 }), 578 }, 579 False: &javascript.AssignmentExpression{ 580 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 581 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 582 }), 583 }, 584 }, 585 }, 586 }, 587 }, 588 }, 589 }, 590 { // 26 591 []Option{IfToConditional}, 592 &javascript.Statement{ 593 IfStatement: &javascript.IfStatement{ 594 Expression: javascript.Expression{ 595 Expressions: []javascript.AssignmentExpression{ 596 { 597 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 598 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 599 }), 600 }, 601 }, 602 }, 603 Statement: javascript.Statement{ 604 ExpressionStatement: &javascript.Expression{ 605 Expressions: []javascript.AssignmentExpression{ 606 { 607 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 608 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 609 }), 610 }, 611 }, 612 }, 613 }, 614 }, 615 }, 616 &javascript.Statement{ 617 IfStatement: &javascript.IfStatement{ 618 Expression: javascript.Expression{ 619 Expressions: []javascript.AssignmentExpression{ 620 { 621 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 622 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 623 }), 624 }, 625 }, 626 }, 627 Statement: javascript.Statement{ 628 ExpressionStatement: &javascript.Expression{ 629 Expressions: []javascript.AssignmentExpression{ 630 { 631 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 632 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 633 }), 634 }, 635 }, 636 }, 637 }, 638 }, 639 }, 640 }, 641 { // 27 642 []Option{IfToConditional}, 643 &javascript.Statement{ 644 IfStatement: &javascript.IfStatement{ 645 Expression: javascript.Expression{ 646 Expressions: []javascript.AssignmentExpression{ 647 { 648 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 649 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 650 }), 651 }, 652 { 653 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 654 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 655 }), 656 }, 657 { 658 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 659 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 660 }), 661 }, 662 { 663 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 664 IdentifierReference: makeToken(javascript.TokenIdentifier, "d"), 665 }), 666 }, 667 }, 668 }, 669 Statement: javascript.Statement{ 670 ExpressionStatement: &javascript.Expression{ 671 Expressions: []javascript.AssignmentExpression{ 672 { 673 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 674 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 675 }), 676 }, 677 }, 678 }, 679 }, 680 ElseStatement: &javascript.Statement{ 681 ExpressionStatement: &javascript.Expression{ 682 Expressions: []javascript.AssignmentExpression{ 683 { 684 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 685 IdentifierReference: makeToken(javascript.TokenIdentifier, "f"), 686 }), 687 }, 688 }, 689 }, 690 }, 691 }, 692 }, 693 &javascript.Statement{ 694 ExpressionStatement: &javascript.Expression{ 695 Expressions: []javascript.AssignmentExpression{ 696 { 697 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 698 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 699 }), 700 }, 701 { 702 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 703 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 704 }), 705 }, 706 { 707 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 708 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 709 }), 710 }, 711 { 712 ConditionalExpression: &javascript.ConditionalExpression{ 713 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 714 IdentifierReference: makeToken(javascript.TokenIdentifier, "d"), 715 }).LogicalORExpression, 716 True: &javascript.AssignmentExpression{ 717 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 718 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 719 }), 720 }, 721 False: &javascript.AssignmentExpression{ 722 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 723 IdentifierReference: makeToken(javascript.TokenIdentifier, "f"), 724 }), 725 }, 726 }, 727 }, 728 }, 729 }, 730 }, 731 }, 732 { // 28 733 []Option{IfToConditional}, 734 &javascript.Statement{ 735 IfStatement: &javascript.IfStatement{ 736 Expression: javascript.Expression{ 737 Expressions: []javascript.AssignmentExpression{ 738 { 739 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 740 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 741 }), 742 }, 743 }, 744 }, 745 Statement: javascript.Statement{ 746 ExpressionStatement: &javascript.Expression{ 747 Expressions: []javascript.AssignmentExpression{ 748 { 749 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 750 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 751 }), 752 }, 753 { 754 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 755 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 756 }), 757 }, 758 }, 759 }, 760 }, 761 ElseStatement: &javascript.Statement{ 762 ExpressionStatement: &javascript.Expression{ 763 Expressions: []javascript.AssignmentExpression{ 764 { 765 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 766 IdentifierReference: makeToken(javascript.TokenIdentifier, "d"), 767 }), 768 }, 769 { 770 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 771 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 772 }), 773 }, 774 }, 775 }, 776 }, 777 }, 778 }, 779 &javascript.Statement{ 780 ExpressionStatement: &javascript.Expression{ 781 Expressions: []javascript.AssignmentExpression{ 782 { 783 ConditionalExpression: &javascript.ConditionalExpression{ 784 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 785 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 786 }).LogicalORExpression, 787 True: &javascript.AssignmentExpression{ 788 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 789 Expressions: []javascript.AssignmentExpression{ 790 { 791 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 792 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 793 }), 794 }, 795 { 796 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 797 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 798 }), 799 }, 800 }, 801 }), 802 }, 803 False: &javascript.AssignmentExpression{ 804 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 805 Expressions: []javascript.AssignmentExpression{ 806 { 807 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 808 IdentifierReference: makeToken(javascript.TokenIdentifier, "d"), 809 }), 810 }, 811 { 812 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 813 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 814 }), 815 }, 816 }, 817 }), 818 }, 819 }, 820 }, 821 }, 822 }, 823 }, 824 }, 825 { // 29 826 []Option{IfToConditional}, 827 &javascript.Statement{ 828 IfStatement: &javascript.IfStatement{ 829 Expression: javascript.Expression{ 830 Expressions: []javascript.AssignmentExpression{ 831 { 832 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 833 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 834 }), 835 }, 836 }, 837 }, 838 Statement: javascript.Statement{ 839 Type: javascript.StatementReturn, 840 ExpressionStatement: &javascript.Expression{ 841 Expressions: []javascript.AssignmentExpression{ 842 { 843 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 844 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 845 }), 846 }, 847 }, 848 }, 849 }, 850 ElseStatement: &javascript.Statement{ 851 Type: javascript.StatementReturn, 852 ExpressionStatement: &javascript.Expression{ 853 Expressions: []javascript.AssignmentExpression{ 854 { 855 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 856 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 857 }), 858 }, 859 }, 860 }, 861 }, 862 }, 863 }, 864 &javascript.Statement{ 865 Type: javascript.StatementReturn, 866 ExpressionStatement: &javascript.Expression{ 867 Expressions: []javascript.AssignmentExpression{ 868 { 869 ConditionalExpression: &javascript.ConditionalExpression{ 870 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 871 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 872 }).LogicalORExpression, 873 True: &javascript.AssignmentExpression{ 874 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 875 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 876 }), 877 }, 878 False: &javascript.AssignmentExpression{ 879 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 880 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 881 }), 882 }, 883 }, 884 }, 885 }, 886 }, 887 }, 888 }, 889 { // 30 890 []Option{ArrowFn, IfToConditional}, 891 &javascript.Statement{ 892 ExpressionStatement: &javascript.Expression{ 893 Expressions: []javascript.AssignmentExpression{ 894 { 895 ArrowFunction: &javascript.ArrowFunction{ 896 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 897 FunctionBody: &javascript.Block{ 898 StatementList: []javascript.StatementListItem{ 899 { 900 Statement: &javascript.Statement{ 901 IfStatement: &javascript.IfStatement{ 902 Expression: javascript.Expression{ 903 Expressions: []javascript.AssignmentExpression{ 904 { 905 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 906 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 907 }), 908 }, 909 }, 910 }, 911 Statement: javascript.Statement{ 912 Type: javascript.StatementReturn, 913 ExpressionStatement: &javascript.Expression{ 914 Expressions: []javascript.AssignmentExpression{ 915 { 916 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 917 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 918 }), 919 }, 920 }, 921 }, 922 }, 923 ElseStatement: &javascript.Statement{ 924 Type: javascript.StatementReturn, 925 ExpressionStatement: &javascript.Expression{ 926 Expressions: []javascript.AssignmentExpression{ 927 { 928 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 929 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 930 }), 931 }, 932 }, 933 }, 934 }, 935 }, 936 }, 937 }, 938 }, 939 }, 940 }, 941 }, 942 }, 943 }, 944 }, 945 &javascript.Statement{ 946 ExpressionStatement: &javascript.Expression{ 947 Expressions: []javascript.AssignmentExpression{ 948 { 949 ArrowFunction: &javascript.ArrowFunction{ 950 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 951 AssignmentExpression: &javascript.AssignmentExpression{ 952 ConditionalExpression: &javascript.ConditionalExpression{ 953 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 954 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 955 }).LogicalORExpression, 956 True: &javascript.AssignmentExpression{ 957 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 958 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 959 }), 960 }, 961 False: &javascript.AssignmentExpression{ 962 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 963 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 964 }), 965 }, 966 }, 967 }, 968 }, 969 }, 970 }, 971 }, 972 }, 973 }, 974 { // 31 975 []Option{ArrowFn}, 976 &javascript.AssignmentExpression{ 977 ArrowFunction: &javascript.ArrowFunction{ 978 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 979 FunctionBody: &javascript.Block{ 980 StatementList: []javascript.StatementListItem{ 981 { 982 Statement: &javascript.Statement{ 983 ExpressionStatement: &javascript.Expression{ 984 Expressions: []javascript.AssignmentExpression{ 985 { 986 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 987 MemberExpression: &javascript.MemberExpression{ 988 PrimaryExpression: &javascript.PrimaryExpression{ 989 IdentifierReference: makeToken(javascript.TokenIdentifier, "m"), 990 }, 991 }, 992 Arguments: &javascript.Arguments{}, 993 }), 994 }, 995 }, 996 }, 997 }, 998 }, 999 { 1000 Statement: &javascript.Statement{ 1001 Type: javascript.StatementReturn, 1002 ExpressionStatement: &javascript.Expression{ 1003 Expressions: []javascript.AssignmentExpression{ 1004 { 1005 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1006 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1007 }), 1008 }, 1009 }, 1010 }, 1011 }, 1012 }, 1013 { 1014 Statement: &javascript.Statement{ 1015 VariableStatement: &javascript.VariableStatement{ 1016 VariableDeclarationList: []javascript.VariableDeclaration{ 1017 { 1018 BindingIdentifier: makeToken(javascript.TokenIdentifier, "m"), 1019 }, 1020 }, 1021 }, 1022 }, 1023 }, 1024 }, 1025 }, 1026 }, 1027 }, 1028 &javascript.AssignmentExpression{ 1029 ArrowFunction: &javascript.ArrowFunction{ 1030 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 1031 FunctionBody: &javascript.Block{ 1032 StatementList: []javascript.StatementListItem{ 1033 { 1034 Statement: &javascript.Statement{ 1035 ExpressionStatement: &javascript.Expression{ 1036 Expressions: []javascript.AssignmentExpression{ 1037 { 1038 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 1039 MemberExpression: &javascript.MemberExpression{ 1040 PrimaryExpression: &javascript.PrimaryExpression{ 1041 IdentifierReference: makeToken(javascript.TokenIdentifier, "m"), 1042 }, 1043 }, 1044 Arguments: &javascript.Arguments{}, 1045 }), 1046 }, 1047 }, 1048 }, 1049 }, 1050 }, 1051 { 1052 Statement: &javascript.Statement{ 1053 Type: javascript.StatementReturn, 1054 ExpressionStatement: &javascript.Expression{ 1055 Expressions: []javascript.AssignmentExpression{ 1056 { 1057 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1058 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1059 }), 1060 }, 1061 }, 1062 }, 1063 }, 1064 }, 1065 { 1066 Statement: &javascript.Statement{ 1067 VariableStatement: &javascript.VariableStatement{ 1068 VariableDeclarationList: []javascript.VariableDeclaration{ 1069 { 1070 BindingIdentifier: makeToken(javascript.TokenIdentifier, "m"), 1071 }, 1072 }, 1073 }, 1074 }, 1075 }, 1076 }, 1077 }, 1078 }, 1079 }, 1080 }, 1081 { // 32 1082 []Option{RemoveDebugger}, 1083 &javascript.Statement{ 1084 Type: javascript.StatementDebugger, 1085 }, 1086 &javascript.Statement{}, 1087 }, 1088 { // 33 1089 []Option{BlocksToStatement}, 1090 &javascript.Statement{ 1091 BlockStatement: &javascript.Block{}, 1092 }, 1093 &javascript.Statement{ 1094 BlockStatement: &javascript.Block{}, 1095 }, 1096 }, 1097 { // 34 1098 []Option{BlocksToStatement}, 1099 &javascript.Statement{ 1100 BlockStatement: &javascript.Block{ 1101 StatementList: []javascript.StatementListItem{ 1102 { 1103 Statement: &javascript.Statement{ 1104 Type: javascript.StatementContinue, 1105 }, 1106 }, 1107 }, 1108 }, 1109 }, 1110 &javascript.Statement{ 1111 Type: javascript.StatementContinue, 1112 }, 1113 }, 1114 { // 35 1115 []Option{BlocksToStatement}, 1116 &javascript.Statement{ 1117 BlockStatement: &javascript.Block{ 1118 StatementList: []javascript.StatementListItem{ 1119 { 1120 Statement: &javascript.Statement{ 1121 BlockStatement: &javascript.Block{ 1122 StatementList: []javascript.StatementListItem{ 1123 { 1124 Statement: &javascript.Statement{ 1125 Type: javascript.StatementContinue, 1126 }, 1127 }, 1128 }, 1129 }, 1130 }, 1131 }, 1132 }, 1133 }, 1134 }, 1135 &javascript.Statement{ 1136 Type: javascript.StatementContinue, 1137 }, 1138 }, 1139 { // 36 1140 []Option{BlocksToStatement}, 1141 &javascript.Statement{ 1142 BlockStatement: &javascript.Block{ 1143 StatementList: []javascript.StatementListItem{ 1144 { 1145 Statement: &javascript.Statement{ 1146 BlockStatement: &javascript.Block{ 1147 StatementList: []javascript.StatementListItem{ 1148 { 1149 Statement: &javascript.Statement{ 1150 Type: javascript.StatementContinue, 1151 }, 1152 }, 1153 }, 1154 }, 1155 }, 1156 }, 1157 }, 1158 }, 1159 }, 1160 &javascript.Statement{ 1161 Type: javascript.StatementContinue, 1162 }, 1163 }, 1164 { // 37 1165 []Option{BlocksToStatement}, 1166 &javascript.Statement{ 1167 BlockStatement: &javascript.Block{ 1168 StatementList: []javascript.StatementListItem{ 1169 { 1170 Statement: &javascript.Statement{ 1171 ExpressionStatement: &javascript.Expression{ 1172 Expressions: []javascript.AssignmentExpression{ 1173 { 1174 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1175 IdentifierReference: makeToken(javascript.TokenIdentifier, "hello"), 1176 }), 1177 }, 1178 }, 1179 }, 1180 }, 1181 }, 1182 { 1183 Statement: &javascript.Statement{ 1184 ExpressionStatement: &javascript.Expression{ 1185 Expressions: []javascript.AssignmentExpression{ 1186 { 1187 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1188 IdentifierReference: makeToken(javascript.TokenIdentifier, "world"), 1189 }), 1190 }, 1191 }, 1192 }, 1193 }, 1194 }, 1195 }, 1196 }, 1197 }, 1198 &javascript.Statement{ 1199 ExpressionStatement: &javascript.Expression{ 1200 Expressions: []javascript.AssignmentExpression{ 1201 { 1202 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1203 IdentifierReference: makeToken(javascript.TokenIdentifier, "hello"), 1204 }), 1205 }, 1206 { 1207 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1208 IdentifierReference: makeToken(javascript.TokenIdentifier, "world"), 1209 }), 1210 }, 1211 }, 1212 }, 1213 }, 1214 }, 1215 { // 38 1216 []Option{Keys}, 1217 &javascript.PropertyName{ 1218 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"a\""), 1219 }, 1220 &javascript.PropertyName{ 1221 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "a"), 1222 }, 1223 }, 1224 { // 39 1225 []Option{Keys}, 1226 &javascript.PropertyName{ 1227 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"ab\""), 1228 }, 1229 &javascript.PropertyName{ 1230 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "ab"), 1231 }, 1232 }, 1233 { // 40 1234 []Option{Keys}, 1235 &javascript.PropertyName{ 1236 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"&\""), 1237 }, 1238 &javascript.PropertyName{ 1239 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"&\""), 1240 }, 1241 }, 1242 { // 41 1243 []Option{Keys}, 1244 &javascript.PropertyName{ 1245 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"Infinity\""), 1246 }, 1247 &javascript.PropertyName{ 1248 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "Infinity"), 1249 }, 1250 }, 1251 { // 42 1252 []Option{Keys}, 1253 &javascript.PropertyName{ 1254 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"123\""), 1255 }, 1256 &javascript.PropertyName{ 1257 LiteralPropertyName: makeToken(javascript.TokenNumericLiteral, "123"), 1258 }, 1259 }, 1260 { // 43 1261 []Option{Keys}, 1262 &javascript.PropertyName{ 1263 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"true\""), 1264 }, 1265 &javascript.PropertyName{ 1266 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "true"), 1267 }, 1268 }, 1269 { // 44 1270 []Option{Keys}, 1271 &javascript.PropertyName{ 1272 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"false\""), 1273 }, 1274 &javascript.PropertyName{ 1275 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "false"), 1276 }, 1277 }, 1278 { // 45 1279 []Option{Keys}, 1280 &javascript.PropertyName{ 1281 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"null\""), 1282 }, 1283 &javascript.PropertyName{ 1284 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "null"), 1285 }, 1286 }, 1287 { // 46 1288 []Option{Keys}, 1289 &javascript.PropertyName{ 1290 ComputedPropertyName: &javascript.AssignmentExpression{ 1291 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1292 Literal: makeToken(javascript.TokenStringLiteral, "\"a\""), 1293 }), 1294 }, 1295 }, 1296 &javascript.PropertyName{ 1297 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "a"), 1298 }, 1299 }, 1300 { // 47 1301 []Option{Keys}, 1302 &javascript.PropertyName{ 1303 ComputedPropertyName: &javascript.AssignmentExpression{ 1304 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1305 Literal: makeToken(javascript.TokenStringLiteral, "\"ab\""), 1306 }), 1307 }, 1308 }, 1309 &javascript.PropertyName{ 1310 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "ab"), 1311 }, 1312 }, 1313 { // 48 1314 []Option{Keys}, 1315 &javascript.PropertyName{ 1316 ComputedPropertyName: &javascript.AssignmentExpression{ 1317 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1318 Literal: makeToken(javascript.TokenStringLiteral, "\"&\""), 1319 }), 1320 }, 1321 }, 1322 &javascript.PropertyName{ 1323 LiteralPropertyName: makeToken(javascript.TokenStringLiteral, "\"&\""), 1324 }, 1325 }, 1326 { // 49 1327 []Option{Keys}, 1328 &javascript.PropertyName{ 1329 ComputedPropertyName: &javascript.AssignmentExpression{ 1330 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1331 Literal: makeToken(javascript.TokenStringLiteral, "\"Infinity\""), 1332 }), 1333 }, 1334 }, 1335 &javascript.PropertyName{ 1336 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "Infinity"), 1337 }, 1338 }, 1339 { // 50 1340 []Option{Keys}, 1341 &javascript.PropertyName{ 1342 ComputedPropertyName: &javascript.AssignmentExpression{ 1343 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1344 Literal: makeToken(javascript.TokenStringLiteral, "\"123\""), 1345 }), 1346 }, 1347 }, 1348 &javascript.PropertyName{ 1349 LiteralPropertyName: makeToken(javascript.TokenNumericLiteral, "123"), 1350 }, 1351 }, 1352 { // 51 1353 []Option{Keys}, 1354 &javascript.PropertyName{ 1355 ComputedPropertyName: &javascript.AssignmentExpression{ 1356 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1357 Literal: makeToken(javascript.TokenStringLiteral, "\"true\""), 1358 }), 1359 }, 1360 }, 1361 &javascript.PropertyName{ 1362 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "true"), 1363 }, 1364 }, 1365 { // 52 1366 []Option{Keys}, 1367 &javascript.PropertyName{ 1368 ComputedPropertyName: &javascript.AssignmentExpression{ 1369 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1370 Literal: makeToken(javascript.TokenStringLiteral, "\"false\""), 1371 }), 1372 }, 1373 }, 1374 &javascript.PropertyName{ 1375 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "false"), 1376 }, 1377 }, 1378 { // 53 1379 []Option{Keys}, 1380 &javascript.PropertyName{ 1381 ComputedPropertyName: &javascript.AssignmentExpression{ 1382 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1383 Literal: makeToken(javascript.TokenStringLiteral, "\"null\""), 1384 }), 1385 }, 1386 }, 1387 &javascript.PropertyName{ 1388 LiteralPropertyName: makeToken(javascript.TokenIdentifier, "null"), 1389 }, 1390 }, 1391 { // 54 1392 []Option{RemoveExpressionNames}, 1393 &javascript.PrimaryExpression{ 1394 FunctionExpression: &javascript.FunctionDeclaration{ 1395 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 1396 }, 1397 }, 1398 &javascript.PrimaryExpression{ 1399 FunctionExpression: &javascript.FunctionDeclaration{}, 1400 }, 1401 }, 1402 { // 55 1403 []Option{RemoveExpressionNames}, 1404 &javascript.PrimaryExpression{ 1405 ClassExpression: &javascript.ClassDeclaration{ 1406 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 1407 }, 1408 }, 1409 &javascript.PrimaryExpression{ 1410 ClassExpression: &javascript.ClassDeclaration{}, 1411 }, 1412 }, 1413 { // 56 1414 []Option{FunctionExpressionToArrowFunc}, 1415 &javascript.AssignmentExpression{ 1416 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{}), 1417 }, 1418 &javascript.AssignmentExpression{ 1419 ArrowFunction: &javascript.ArrowFunction{ 1420 FormalParameters: &javascript.FormalParameters{}, 1421 FunctionBody: &javascript.Block{}, 1422 }, 1423 }, 1424 }, 1425 { // 57 1426 []Option{FunctionExpressionToArrowFunc}, 1427 &javascript.AssignmentExpression{ 1428 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{ 1429 FunctionBody: javascript.Block{ 1430 StatementList: []javascript.StatementListItem{ 1431 { 1432 Statement: &javascript.Statement{ 1433 ExpressionStatement: &javascript.Expression{ 1434 Expressions: []javascript.AssignmentExpression{ 1435 { 1436 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1437 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 1438 }), 1439 }, 1440 }, 1441 }, 1442 }, 1443 }, 1444 }, 1445 }, 1446 }), 1447 }, 1448 &javascript.AssignmentExpression{ 1449 ArrowFunction: &javascript.ArrowFunction{ 1450 FormalParameters: &javascript.FormalParameters{}, 1451 FunctionBody: &javascript.Block{ 1452 StatementList: []javascript.StatementListItem{ 1453 { 1454 Statement: &javascript.Statement{ 1455 ExpressionStatement: &javascript.Expression{ 1456 Expressions: []javascript.AssignmentExpression{ 1457 { 1458 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1459 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 1460 }), 1461 }, 1462 }, 1463 }, 1464 }, 1465 }, 1466 }, 1467 }, 1468 }, 1469 }, 1470 }, 1471 { // 58 1472 []Option{FunctionExpressionToArrowFunc}, 1473 &javascript.AssignmentExpression{ 1474 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{ 1475 FunctionBody: javascript.Block{ 1476 StatementList: []javascript.StatementListItem{ 1477 { 1478 Statement: &javascript.Statement{ 1479 ExpressionStatement: &javascript.Expression{ 1480 Expressions: []javascript.AssignmentExpression{ 1481 { 1482 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1483 IdentifierReference: makeToken(javascript.TokenKeyword, "this"), 1484 }), 1485 }, 1486 }, 1487 }, 1488 }, 1489 }, 1490 }, 1491 }, 1492 }), 1493 }, 1494 &javascript.AssignmentExpression{ 1495 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{ 1496 FunctionBody: javascript.Block{ 1497 StatementList: []javascript.StatementListItem{ 1498 { 1499 Statement: &javascript.Statement{ 1500 ExpressionStatement: &javascript.Expression{ 1501 Expressions: []javascript.AssignmentExpression{ 1502 { 1503 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1504 IdentifierReference: makeToken(javascript.TokenKeyword, "this"), 1505 }), 1506 }, 1507 }, 1508 }, 1509 }, 1510 }, 1511 }, 1512 }, 1513 }), 1514 }, 1515 }, 1516 { // 59 1517 []Option{FunctionExpressionToArrowFunc}, 1518 &javascript.AssignmentExpression{ 1519 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{ 1520 FunctionBody: javascript.Block{ 1521 StatementList: []javascript.StatementListItem{ 1522 { 1523 Statement: &javascript.Statement{ 1524 ExpressionStatement: &javascript.Expression{ 1525 Expressions: []javascript.AssignmentExpression{ 1526 { 1527 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1528 IdentifierReference: makeToken(javascript.TokenIdentifier, "arguments"), 1529 }), 1530 }, 1531 }, 1532 }, 1533 }, 1534 }, 1535 }, 1536 }, 1537 }), 1538 }, 1539 &javascript.AssignmentExpression{ 1540 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{ 1541 FunctionBody: javascript.Block{ 1542 StatementList: []javascript.StatementListItem{ 1543 { 1544 Statement: &javascript.Statement{ 1545 ExpressionStatement: &javascript.Expression{ 1546 Expressions: []javascript.AssignmentExpression{ 1547 { 1548 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1549 IdentifierReference: makeToken(javascript.TokenIdentifier, "arguments"), 1550 }), 1551 }, 1552 }, 1553 }, 1554 }, 1555 }, 1556 }, 1557 }, 1558 }), 1559 }, 1560 }, 1561 { // 60 1562 []Option{FunctionExpressionToArrowFunc}, 1563 &javascript.AssignmentExpression{ 1564 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{ 1565 FormalParameters: javascript.FormalParameters{ 1566 FormalParameterList: []javascript.BindingElement{ 1567 { 1568 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1569 }, 1570 }, 1571 }, 1572 }), 1573 }, 1574 &javascript.AssignmentExpression{ 1575 ArrowFunction: &javascript.ArrowFunction{ 1576 FormalParameters: &javascript.FormalParameters{ 1577 FormalParameterList: []javascript.BindingElement{ 1578 { 1579 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1580 }, 1581 }, 1582 }, 1583 FunctionBody: &javascript.Block{}, 1584 }, 1585 }, 1586 }, 1587 { // 61 1588 []Option{ArrowFn}, 1589 &javascript.ArrowFunction{ 1590 FormalParameters: &javascript.FormalParameters{ 1591 FormalParameterList: []javascript.BindingElement{ 1592 { 1593 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1594 }, 1595 }, 1596 }, 1597 FunctionBody: &javascript.Block{}, 1598 }, 1599 &javascript.ArrowFunction{ 1600 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 1601 FunctionBody: &javascript.Block{}, 1602 }, 1603 }, 1604 { // 62 1605 []Option{ArrowFn}, 1606 &javascript.ArrowFunction{ 1607 FormalParameters: &javascript.FormalParameters{ 1608 FormalParameterList: []javascript.BindingElement{ 1609 { 1610 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1611 }, 1612 { 1613 SingleNameBinding: makeToken(javascript.TokenIdentifier, "b"), 1614 }, 1615 }, 1616 }, 1617 FunctionBody: &javascript.Block{}, 1618 }, 1619 &javascript.ArrowFunction{ 1620 FormalParameters: &javascript.FormalParameters{ 1621 FormalParameterList: []javascript.BindingElement{ 1622 { 1623 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1624 }, 1625 { 1626 SingleNameBinding: makeToken(javascript.TokenIdentifier, "b"), 1627 }, 1628 }, 1629 }, 1630 FunctionBody: &javascript.Block{}, 1631 }, 1632 }, 1633 { // 63 1634 []Option{ArrowFn}, 1635 &javascript.ArrowFunction{ 1636 FormalParameters: &javascript.FormalParameters{ 1637 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 1638 }, 1639 FunctionBody: &javascript.Block{}, 1640 }, 1641 &javascript.ArrowFunction{ 1642 FormalParameters: &javascript.FormalParameters{ 1643 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 1644 }, 1645 FunctionBody: &javascript.Block{}, 1646 }, 1647 }, 1648 { // 64 1649 []Option{ArrowFn}, 1650 &javascript.ArrowFunction{ 1651 FormalParameters: &javascript.FormalParameters{ 1652 FormalParameterList: []javascript.BindingElement{ 1653 { 1654 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1655 Initializer: &javascript.AssignmentExpression{ 1656 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1657 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1658 }), 1659 }, 1660 }, 1661 }, 1662 }, 1663 FunctionBody: &javascript.Block{}, 1664 }, 1665 &javascript.ArrowFunction{ 1666 FormalParameters: &javascript.FormalParameters{ 1667 FormalParameterList: []javascript.BindingElement{ 1668 { 1669 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1670 Initializer: &javascript.AssignmentExpression{ 1671 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1672 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1673 }), 1674 }, 1675 }, 1676 }, 1677 }, 1678 FunctionBody: &javascript.Block{}, 1679 }, 1680 }, 1681 { // 65 1682 []Option{ArrowFn}, 1683 &javascript.ArrowFunction{ 1684 FormalParameters: &javascript.FormalParameters{ 1685 FormalParameterList: []javascript.BindingElement{ 1686 { 1687 ArrayBindingPattern: &javascript.ArrayBindingPattern{ 1688 BindingElementList: []javascript.BindingElement{ 1689 { 1690 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1691 }, 1692 }, 1693 }, 1694 }, 1695 }, 1696 }, 1697 FunctionBody: &javascript.Block{}, 1698 }, 1699 &javascript.ArrowFunction{ 1700 FormalParameters: &javascript.FormalParameters{ 1701 FormalParameterList: []javascript.BindingElement{ 1702 { 1703 ArrayBindingPattern: &javascript.ArrayBindingPattern{ 1704 BindingElementList: []javascript.BindingElement{ 1705 { 1706 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1707 }, 1708 }, 1709 }, 1710 }, 1711 }, 1712 }, 1713 FunctionBody: &javascript.Block{}, 1714 }, 1715 }, 1716 { // 66 1717 []Option{ArrowFn, FunctionExpressionToArrowFunc}, 1718 &javascript.AssignmentExpression{ 1719 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{ 1720 FormalParameters: javascript.FormalParameters{ 1721 FormalParameterList: []javascript.BindingElement{ 1722 { 1723 SingleNameBinding: makeToken(javascript.TokenIdentifier, "a"), 1724 }, 1725 }, 1726 }, 1727 }), 1728 }, 1729 &javascript.AssignmentExpression{ 1730 ArrowFunction: &javascript.ArrowFunction{ 1731 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 1732 FunctionBody: &javascript.Block{}, 1733 }, 1734 }, 1735 }, 1736 { // 67 1737 []Option{UnwrapParens}, 1738 &javascript.Expression{}, 1739 &javascript.Expression{}, 1740 }, 1741 { // 68 1742 []Option{UnwrapParens}, 1743 &javascript.Expression{ 1744 Expressions: []javascript.AssignmentExpression{ 1745 { 1746 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 1747 Expressions: []javascript.AssignmentExpression{ 1748 { 1749 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1750 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1751 }), 1752 }, 1753 }, 1754 }), 1755 }, 1756 }, 1757 }, 1758 &javascript.Expression{ 1759 Expressions: []javascript.AssignmentExpression{ 1760 { 1761 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1762 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1763 }), 1764 }, 1765 }, 1766 }, 1767 }, 1768 { // 69 1769 []Option{UnwrapParens}, 1770 &javascript.Expression{ 1771 Expressions: []javascript.AssignmentExpression{ 1772 { 1773 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 1774 Expressions: []javascript.AssignmentExpression{ 1775 { 1776 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1777 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1778 }), 1779 }, 1780 { 1781 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1782 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1783 }), 1784 }, 1785 }, 1786 }), 1787 }, 1788 }, 1789 }, 1790 &javascript.Expression{ 1791 Expressions: []javascript.AssignmentExpression{ 1792 { 1793 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1794 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1795 }), 1796 }, 1797 { 1798 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1799 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1800 }), 1801 }, 1802 }, 1803 }, 1804 }, 1805 { // 70 1806 []Option{UnwrapParens}, 1807 &javascript.Expression{ 1808 Expressions: []javascript.AssignmentExpression{ 1809 { 1810 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 1811 Expressions: []javascript.AssignmentExpression{ 1812 { 1813 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1814 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1815 }), 1816 }, 1817 { 1818 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1819 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1820 }), 1821 }, 1822 }, 1823 }), 1824 }, 1825 { 1826 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 1827 Expressions: []javascript.AssignmentExpression{ 1828 { 1829 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1830 Literal: makeToken(javascript.TokenNumericLiteral, "3"), 1831 }), 1832 }, 1833 { 1834 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1835 Literal: makeToken(javascript.TokenNumericLiteral, "4"), 1836 }), 1837 }, 1838 }, 1839 }), 1840 }, 1841 }, 1842 }, 1843 &javascript.Expression{ 1844 Expressions: []javascript.AssignmentExpression{ 1845 { 1846 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1847 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1848 }), 1849 }, 1850 { 1851 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1852 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1853 }), 1854 }, 1855 { 1856 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1857 Literal: makeToken(javascript.TokenNumericLiteral, "3"), 1858 }), 1859 }, 1860 { 1861 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1862 Literal: makeToken(javascript.TokenNumericLiteral, "4"), 1863 }), 1864 }, 1865 }, 1866 }, 1867 }, 1868 { // 71 1869 []Option{UnwrapParens}, 1870 &javascript.Expression{ 1871 Expressions: []javascript.AssignmentExpression{ 1872 { 1873 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 1874 Expressions: []javascript.AssignmentExpression{ 1875 { 1876 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1877 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1878 }), 1879 }, 1880 { 1881 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 1882 Expressions: []javascript.AssignmentExpression{ 1883 { 1884 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1885 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1886 }), 1887 }, 1888 }, 1889 }), 1890 }, 1891 }, 1892 }), 1893 }, 1894 { 1895 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 1896 Expressions: []javascript.AssignmentExpression{ 1897 { 1898 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 1899 Expressions: []javascript.AssignmentExpression{ 1900 { 1901 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1902 Literal: makeToken(javascript.TokenNumericLiteral, "3"), 1903 }), 1904 }, 1905 }, 1906 }), 1907 }, 1908 { 1909 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1910 Literal: makeToken(javascript.TokenNumericLiteral, "4"), 1911 }), 1912 }, 1913 }, 1914 }), 1915 }, 1916 }, 1917 }, 1918 &javascript.Expression{ 1919 Expressions: []javascript.AssignmentExpression{ 1920 { 1921 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1922 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1923 }), 1924 }, 1925 { 1926 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1927 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1928 }), 1929 }, 1930 { 1931 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1932 Literal: makeToken(javascript.TokenNumericLiteral, "3"), 1933 }), 1934 }, 1935 { 1936 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1937 Literal: makeToken(javascript.TokenNumericLiteral, "4"), 1938 }), 1939 }, 1940 }, 1941 }, 1942 }, 1943 { // 72 1944 []Option{UnwrapParens}, 1945 &javascript.Expression{ 1946 Expressions: []javascript.AssignmentExpression{ 1947 { 1948 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1949 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1950 }), 1951 }, 1952 { 1953 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 1954 Expressions: []javascript.AssignmentExpression{ 1955 { 1956 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1957 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1958 }), 1959 }, 1960 }, 1961 }), 1962 }, 1963 { 1964 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1965 Literal: makeToken(javascript.TokenNumericLiteral, "3"), 1966 }), 1967 }, 1968 }, 1969 }, 1970 &javascript.Expression{ 1971 Expressions: []javascript.AssignmentExpression{ 1972 { 1973 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1974 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 1975 }), 1976 }, 1977 { 1978 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1979 Literal: makeToken(javascript.TokenNumericLiteral, "2"), 1980 }), 1981 }, 1982 { 1983 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 1984 Literal: makeToken(javascript.TokenNumericLiteral, "3"), 1985 }), 1986 }, 1987 }, 1988 }, 1989 }, 1990 { // 73 1991 []Option{UnwrapParens}, 1992 &javascript.Argument{}, 1993 &javascript.Argument{}, 1994 }, 1995 { // 74 1996 []Option{UnwrapParens}, 1997 &javascript.Argument{ 1998 AssignmentExpression: javascript.AssignmentExpression{ 1999 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2000 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 2001 }), 2002 }, 2003 }, 2004 &javascript.Argument{ 2005 AssignmentExpression: javascript.AssignmentExpression{ 2006 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2007 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 2008 }), 2009 }, 2010 }, 2011 }, 2012 { // 75 2013 []Option{UnwrapParens}, 2014 &javascript.Argument{ 2015 AssignmentExpression: javascript.AssignmentExpression{ 2016 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 2017 Expressions: []javascript.AssignmentExpression{ 2018 { 2019 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2020 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 2021 }), 2022 }, 2023 }, 2024 }), 2025 }, 2026 }, 2027 &javascript.Argument{ 2028 AssignmentExpression: javascript.AssignmentExpression{ 2029 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2030 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 2031 }), 2032 }, 2033 }, 2034 }, 2035 { // 76 2036 []Option{UnwrapParens}, 2037 &javascript.Argument{ 2038 AssignmentExpression: javascript.AssignmentExpression{ 2039 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 2040 Expressions: []javascript.AssignmentExpression{ 2041 { 2042 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 2043 Expressions: []javascript.AssignmentExpression{ 2044 { 2045 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2046 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 2047 }), 2048 }, 2049 }, 2050 }), 2051 }, 2052 }, 2053 }), 2054 }, 2055 }, 2056 &javascript.Argument{ 2057 AssignmentExpression: javascript.AssignmentExpression{ 2058 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2059 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 2060 }), 2061 }, 2062 }, 2063 }, 2064 { // 77 2065 []Option{UnwrapParens}, 2066 &javascript.AssignmentExpression{ 2067 Yield: true, 2068 AssignmentExpression: &javascript.AssignmentExpression{ 2069 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 2070 Expressions: []javascript.AssignmentExpression{ 2071 { 2072 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2073 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 2074 }), 2075 }, 2076 }, 2077 }), 2078 }, 2079 }, 2080 &javascript.AssignmentExpression{ 2081 Yield: true, 2082 AssignmentExpression: &javascript.AssignmentExpression{ 2083 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2084 Literal: makeToken(javascript.TokenNumericLiteral, "1"), 2085 }), 2086 }, 2087 }, 2088 }, 2089 { // 78 2090 []Option{UnwrapParens}, 2091 &javascript.MemberExpression{}, 2092 &javascript.MemberExpression{}, 2093 }, 2094 { // 79 2095 []Option{UnwrapParens}, 2096 &javascript.MemberExpression{ 2097 MemberExpression: &javascript.MemberExpression{ 2098 PrimaryExpression: &javascript.PrimaryExpression{ 2099 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2100 Expressions: []javascript.AssignmentExpression{ 2101 { 2102 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2103 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2104 }), 2105 }, 2106 }, 2107 }, 2108 }, 2109 }, 2110 IdentifierName: makeToken(javascript.TokenIdentifier, "b"), 2111 }, 2112 &javascript.MemberExpression{ 2113 MemberExpression: &javascript.MemberExpression{ 2114 PrimaryExpression: &javascript.PrimaryExpression{ 2115 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2116 }, 2117 }, 2118 IdentifierName: makeToken(javascript.TokenIdentifier, "b"), 2119 }, 2120 }, 2121 { // 80 2122 []Option{UnwrapParens}, 2123 &javascript.MemberExpression{ 2124 MemberExpression: &javascript.MemberExpression{ 2125 PrimaryExpression: &javascript.PrimaryExpression{ 2126 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2127 Expressions: []javascript.AssignmentExpression{ 2128 { 2129 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2130 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2131 }), 2132 }, 2133 { 2134 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2135 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 2136 }), 2137 }, 2138 }, 2139 }, 2140 }, 2141 }, 2142 IdentifierName: makeToken(javascript.TokenIdentifier, "c"), 2143 }, 2144 &javascript.MemberExpression{ 2145 MemberExpression: &javascript.MemberExpression{ 2146 PrimaryExpression: &javascript.PrimaryExpression{ 2147 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2148 Expressions: []javascript.AssignmentExpression{ 2149 { 2150 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2151 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2152 }), 2153 }, 2154 { 2155 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2156 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 2157 }), 2158 }, 2159 }, 2160 }, 2161 }, 2162 }, 2163 IdentifierName: makeToken(javascript.TokenIdentifier, "c"), 2164 }, 2165 }, 2166 { // 81 2167 []Option{UnwrapParens}, 2168 &javascript.MemberExpression{ 2169 MemberExpression: &javascript.MemberExpression{ 2170 PrimaryExpression: &javascript.PrimaryExpression{ 2171 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2172 Expressions: []javascript.AssignmentExpression{ 2173 { 2174 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2175 ArrayLiteral: &javascript.ArrayLiteral{}, 2176 }), 2177 }, 2178 }, 2179 }, 2180 }, 2181 }, 2182 IdentifierName: makeToken(javascript.TokenIdentifier, "length"), 2183 }, 2184 &javascript.MemberExpression{ 2185 MemberExpression: &javascript.MemberExpression{ 2186 PrimaryExpression: &javascript.PrimaryExpression{ 2187 ArrayLiteral: &javascript.ArrayLiteral{}, 2188 }, 2189 }, 2190 IdentifierName: makeToken(javascript.TokenIdentifier, "length"), 2191 }, 2192 }, 2193 { // 82 2194 []Option{UnwrapParens}, 2195 &javascript.MemberExpression{ 2196 MemberExpression: &javascript.MemberExpression{ 2197 PrimaryExpression: &javascript.PrimaryExpression{ 2198 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2199 Expressions: []javascript.AssignmentExpression{ 2200 { 2201 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2202 TemplateLiteral: &javascript.TemplateLiteral{}, 2203 }), 2204 }, 2205 }, 2206 }, 2207 }, 2208 }, 2209 IdentifierName: makeToken(javascript.TokenIdentifier, "length"), 2210 }, 2211 &javascript.MemberExpression{ 2212 MemberExpression: &javascript.MemberExpression{ 2213 PrimaryExpression: &javascript.PrimaryExpression{ 2214 TemplateLiteral: &javascript.TemplateLiteral{}, 2215 }, 2216 }, 2217 IdentifierName: makeToken(javascript.TokenIdentifier, "length"), 2218 }, 2219 }, 2220 { // 83 2221 []Option{UnwrapParens}, 2222 &javascript.MemberExpression{ 2223 MemberExpression: &javascript.MemberExpression{ 2224 PrimaryExpression: &javascript.PrimaryExpression{ 2225 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2226 Expressions: []javascript.AssignmentExpression{ 2227 { 2228 ConditionalExpression: javascript.WrapConditional(&javascript.MemberExpression{ 2229 MemberExpression: &javascript.MemberExpression{ 2230 PrimaryExpression: &javascript.PrimaryExpression{ 2231 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2232 }, 2233 }, 2234 IdentifierName: makeToken(javascript.TokenIdentifier, "b"), 2235 }), 2236 }, 2237 }, 2238 }, 2239 }, 2240 }, 2241 IdentifierName: makeToken(javascript.TokenIdentifier, "c"), 2242 }, 2243 &javascript.MemberExpression{ 2244 MemberExpression: &javascript.MemberExpression{ 2245 MemberExpression: &javascript.MemberExpression{ 2246 PrimaryExpression: &javascript.PrimaryExpression{ 2247 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2248 }, 2249 }, 2250 IdentifierName: makeToken(javascript.TokenIdentifier, "b"), 2251 }, 2252 IdentifierName: makeToken(javascript.TokenIdentifier, "c"), 2253 }, 2254 }, 2255 { // 84 2256 []Option{UnwrapParens}, 2257 &javascript.CallExpression{}, 2258 &javascript.CallExpression{}, 2259 }, 2260 { // 85 2261 []Option{UnwrapParens}, 2262 &javascript.CallExpression{ 2263 MemberExpression: &javascript.MemberExpression{ 2264 PrimaryExpression: &javascript.PrimaryExpression{ 2265 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2266 Expressions: []javascript.AssignmentExpression{ 2267 { 2268 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2269 MemberExpression: &javascript.MemberExpression{ 2270 PrimaryExpression: &javascript.PrimaryExpression{ 2271 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2272 }, 2273 }, 2274 Arguments: &javascript.Arguments{}, 2275 }), 2276 }, 2277 }, 2278 }, 2279 }, 2280 }, 2281 IdentifierName: makeToken(javascript.TokenIdentifier, "a"), 2282 }, 2283 &javascript.CallExpression{ 2284 CallExpression: &javascript.CallExpression{ 2285 MemberExpression: &javascript.MemberExpression{ 2286 PrimaryExpression: &javascript.PrimaryExpression{ 2287 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2288 }, 2289 }, 2290 Arguments: &javascript.Arguments{}, 2291 }, 2292 IdentifierName: makeToken(javascript.TokenIdentifier, "a"), 2293 }, 2294 }, 2295 { // 86 2296 []Option{UnwrapParens}, 2297 &javascript.LeftHandSideExpression{}, 2298 &javascript.LeftHandSideExpression{}, 2299 }, 2300 { // 87 2301 []Option{UnwrapParens}, 2302 &javascript.LeftHandSideExpression{ 2303 NewExpression: &javascript.NewExpression{ 2304 MemberExpression: javascript.MemberExpression{ 2305 PrimaryExpression: &javascript.PrimaryExpression{ 2306 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2307 Expressions: []javascript.AssignmentExpression{ 2308 { 2309 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2310 MemberExpression: &javascript.MemberExpression{ 2311 PrimaryExpression: &javascript.PrimaryExpression{ 2312 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2313 }, 2314 }, 2315 Arguments: &javascript.Arguments{}, 2316 }), 2317 }, 2318 }, 2319 }, 2320 }, 2321 }, 2322 }, 2323 }, 2324 &javascript.LeftHandSideExpression{ 2325 CallExpression: &javascript.CallExpression{ 2326 MemberExpression: &javascript.MemberExpression{ 2327 PrimaryExpression: &javascript.PrimaryExpression{ 2328 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2329 }, 2330 }, 2331 Arguments: &javascript.Arguments{}, 2332 }, 2333 }, 2334 }, 2335 { // 88 2336 []Option{UnwrapParens}, 2337 &javascript.LeftHandSideExpression{ 2338 NewExpression: &javascript.NewExpression{ 2339 News: []javascript.Comments{nil}, 2340 MemberExpression: javascript.MemberExpression{ 2341 PrimaryExpression: &javascript.PrimaryExpression{ 2342 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2343 Expressions: []javascript.AssignmentExpression{ 2344 { 2345 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2346 MemberExpression: &javascript.MemberExpression{ 2347 PrimaryExpression: &javascript.PrimaryExpression{ 2348 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2349 }, 2350 }, 2351 Arguments: &javascript.Arguments{}, 2352 }), 2353 }, 2354 }, 2355 }, 2356 }, 2357 }, 2358 }, 2359 }, 2360 &javascript.LeftHandSideExpression{ 2361 NewExpression: &javascript.NewExpression{ 2362 News: []javascript.Comments{nil}, 2363 MemberExpression: javascript.MemberExpression{ 2364 PrimaryExpression: &javascript.PrimaryExpression{ 2365 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2366 Expressions: []javascript.AssignmentExpression{ 2367 { 2368 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2369 MemberExpression: &javascript.MemberExpression{ 2370 PrimaryExpression: &javascript.PrimaryExpression{ 2371 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2372 }, 2373 }, 2374 Arguments: &javascript.Arguments{}, 2375 }), 2376 }, 2377 }, 2378 }, 2379 }, 2380 }, 2381 }, 2382 }, 2383 }, 2384 { // 89 2385 []Option{UnwrapParens}, 2386 &javascript.LeftHandSideExpression{ 2387 NewExpression: &javascript.NewExpression{ 2388 MemberExpression: javascript.MemberExpression{ 2389 MemberExpression: &javascript.MemberExpression{ 2390 PrimaryExpression: &javascript.PrimaryExpression{ 2391 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2392 Expressions: []javascript.AssignmentExpression{ 2393 { 2394 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2395 MemberExpression: &javascript.MemberExpression{ 2396 PrimaryExpression: &javascript.PrimaryExpression{ 2397 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2398 }, 2399 }, 2400 Arguments: &javascript.Arguments{}, 2401 }), 2402 }, 2403 }, 2404 }, 2405 }, 2406 }, 2407 IdentifierName: makeToken(javascript.TokenIdentifier, "b"), 2408 }, 2409 }, 2410 }, 2411 &javascript.LeftHandSideExpression{ 2412 CallExpression: &javascript.CallExpression{ 2413 CallExpression: &javascript.CallExpression{ 2414 MemberExpression: &javascript.MemberExpression{ 2415 PrimaryExpression: &javascript.PrimaryExpression{ 2416 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2417 }, 2418 }, 2419 Arguments: &javascript.Arguments{}, 2420 }, 2421 IdentifierName: makeToken(javascript.TokenIdentifier, "b"), 2422 }, 2423 }, 2424 }, 2425 { // 90 2426 []Option{UnwrapParens}, 2427 &javascript.LeftHandSideExpression{ 2428 NewExpression: &javascript.NewExpression{ 2429 MemberExpression: javascript.MemberExpression{ 2430 MemberExpression: &javascript.MemberExpression{ 2431 PrimaryExpression: &javascript.PrimaryExpression{ 2432 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2433 Expressions: []javascript.AssignmentExpression{ 2434 { 2435 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2436 MemberExpression: &javascript.MemberExpression{ 2437 PrimaryExpression: &javascript.PrimaryExpression{ 2438 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2439 }, 2440 }, 2441 Arguments: &javascript.Arguments{}, 2442 }), 2443 }, 2444 }, 2445 }, 2446 }, 2447 }, 2448 Expression: &javascript.Expression{ 2449 Expressions: []javascript.AssignmentExpression{ 2450 { 2451 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2452 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 2453 }), 2454 }, 2455 }, 2456 }, 2457 }, 2458 }, 2459 }, 2460 &javascript.LeftHandSideExpression{ 2461 CallExpression: &javascript.CallExpression{ 2462 CallExpression: &javascript.CallExpression{ 2463 MemberExpression: &javascript.MemberExpression{ 2464 PrimaryExpression: &javascript.PrimaryExpression{ 2465 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2466 }, 2467 }, 2468 Arguments: &javascript.Arguments{}, 2469 }, 2470 Expression: &javascript.Expression{ 2471 Expressions: []javascript.AssignmentExpression{ 2472 { 2473 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2474 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 2475 }), 2476 }, 2477 }, 2478 }, 2479 }, 2480 }, 2481 }, 2482 { // 91 2483 []Option{UnwrapParens}, 2484 &javascript.LeftHandSideExpression{ 2485 NewExpression: &javascript.NewExpression{ 2486 MemberExpression: javascript.MemberExpression{ 2487 MemberExpression: &javascript.MemberExpression{ 2488 PrimaryExpression: &javascript.PrimaryExpression{ 2489 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2490 Expressions: []javascript.AssignmentExpression{ 2491 { 2492 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2493 MemberExpression: &javascript.MemberExpression{ 2494 PrimaryExpression: &javascript.PrimaryExpression{ 2495 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2496 }, 2497 }, 2498 Arguments: &javascript.Arguments{}, 2499 }), 2500 }, 2501 }, 2502 }, 2503 }, 2504 }, 2505 TemplateLiteral: &javascript.TemplateLiteral{ 2506 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "`b`"), 2507 }, 2508 }, 2509 }, 2510 }, 2511 &javascript.LeftHandSideExpression{ 2512 CallExpression: &javascript.CallExpression{ 2513 CallExpression: &javascript.CallExpression{ 2514 MemberExpression: &javascript.MemberExpression{ 2515 PrimaryExpression: &javascript.PrimaryExpression{ 2516 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2517 }, 2518 }, 2519 Arguments: &javascript.Arguments{}, 2520 }, 2521 TemplateLiteral: &javascript.TemplateLiteral{ 2522 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "`b`"), 2523 }, 2524 }, 2525 }, 2526 }, 2527 { // 92 2528 []Option{UnwrapParens}, 2529 &javascript.LeftHandSideExpression{ 2530 NewExpression: &javascript.NewExpression{ 2531 MemberExpression: javascript.MemberExpression{ 2532 MemberExpression: &javascript.MemberExpression{ 2533 PrimaryExpression: &javascript.PrimaryExpression{ 2534 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2535 Expressions: []javascript.AssignmentExpression{ 2536 { 2537 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2538 MemberExpression: &javascript.MemberExpression{ 2539 PrimaryExpression: &javascript.PrimaryExpression{ 2540 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2541 }, 2542 }, 2543 Arguments: &javascript.Arguments{}, 2544 }), 2545 }, 2546 }, 2547 }, 2548 }, 2549 }, 2550 PrivateIdentifier: makeToken(javascript.TokenPrivateIdentifier, "#b"), 2551 }, 2552 }, 2553 }, 2554 &javascript.LeftHandSideExpression{ 2555 CallExpression: &javascript.CallExpression{ 2556 CallExpression: &javascript.CallExpression{ 2557 MemberExpression: &javascript.MemberExpression{ 2558 PrimaryExpression: &javascript.PrimaryExpression{ 2559 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2560 }, 2561 }, 2562 Arguments: &javascript.Arguments{}, 2563 }, 2564 PrivateIdentifier: makeToken(javascript.TokenPrivateIdentifier, "#b"), 2565 }, 2566 }, 2567 }, 2568 { // 93 2569 []Option{UnwrapParens}, 2570 &javascript.LeftHandSideExpression{ 2571 NewExpression: &javascript.NewExpression{ 2572 MemberExpression: javascript.MemberExpression{ 2573 MemberExpression: &javascript.MemberExpression{ 2574 PrimaryExpression: &javascript.PrimaryExpression{ 2575 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2576 Expressions: []javascript.AssignmentExpression{ 2577 { 2578 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2579 MemberExpression: &javascript.MemberExpression{ 2580 PrimaryExpression: &javascript.PrimaryExpression{ 2581 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2582 }, 2583 }, 2584 Arguments: &javascript.Arguments{}, 2585 }), 2586 }, 2587 }, 2588 }, 2589 }, 2590 }, 2591 Arguments: &javascript.Arguments{}, 2592 }, 2593 }, 2594 }, 2595 &javascript.LeftHandSideExpression{ 2596 NewExpression: &javascript.NewExpression{ 2597 MemberExpression: javascript.MemberExpression{ 2598 MemberExpression: &javascript.MemberExpression{ 2599 PrimaryExpression: &javascript.PrimaryExpression{ 2600 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 2601 Expressions: []javascript.AssignmentExpression{ 2602 { 2603 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 2604 MemberExpression: &javascript.MemberExpression{ 2605 PrimaryExpression: &javascript.PrimaryExpression{ 2606 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2607 }, 2608 }, 2609 Arguments: &javascript.Arguments{}, 2610 }), 2611 }, 2612 }, 2613 }, 2614 }, 2615 }, 2616 Arguments: &javascript.Arguments{}, 2617 }, 2618 }, 2619 }, 2620 }, 2621 { // 94 2622 []Option{0}, 2623 &javascript.Block{ 2624 StatementList: []javascript.StatementListItem{ 2625 { 2626 Statement: &javascript.Statement{}, 2627 }, 2628 }, 2629 }, 2630 &javascript.Block{ 2631 StatementList: []javascript.StatementListItem{}, 2632 }, 2633 }, 2634 { // 95 2635 []Option{0}, 2636 &javascript.Block{ 2637 StatementList: []javascript.StatementListItem{ 2638 { 2639 Statement: &javascript.Statement{}, 2640 }, 2641 { 2642 Statement: &javascript.Statement{}, 2643 }, 2644 }, 2645 }, 2646 &javascript.Block{ 2647 StatementList: []javascript.StatementListItem{}, 2648 }, 2649 }, 2650 { // 96 2651 []Option{0}, 2652 &javascript.Block{ 2653 StatementList: []javascript.StatementListItem{ 2654 { 2655 Statement: &javascript.Statement{}, 2656 }, 2657 { 2658 Statement: &javascript.Statement{ 2659 ExpressionStatement: &javascript.Expression{ 2660 Expressions: []javascript.AssignmentExpression{ 2661 { 2662 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2663 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2664 }), 2665 }, 2666 }, 2667 }, 2668 }, 2669 }, 2670 { 2671 Statement: &javascript.Statement{ 2672 ExpressionStatement: &javascript.Expression{ 2673 Expressions: []javascript.AssignmentExpression{ 2674 { 2675 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2676 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 2677 }), 2678 }, 2679 }, 2680 }, 2681 }, 2682 }, 2683 { 2684 Statement: &javascript.Statement{}, 2685 }, 2686 { 2687 Statement: &javascript.Statement{}, 2688 }, 2689 { 2690 Statement: &javascript.Statement{ 2691 ExpressionStatement: &javascript.Expression{ 2692 Expressions: []javascript.AssignmentExpression{ 2693 { 2694 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2695 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 2696 }), 2697 }, 2698 }, 2699 }, 2700 }, 2701 }, 2702 }, 2703 }, 2704 &javascript.Block{ 2705 StatementList: []javascript.StatementListItem{ 2706 { 2707 Statement: &javascript.Statement{ 2708 ExpressionStatement: &javascript.Expression{ 2709 Expressions: []javascript.AssignmentExpression{ 2710 { 2711 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2712 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2713 }), 2714 }, 2715 }, 2716 }, 2717 }, 2718 }, 2719 { 2720 Statement: &javascript.Statement{ 2721 ExpressionStatement: &javascript.Expression{ 2722 Expressions: []javascript.AssignmentExpression{ 2723 { 2724 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2725 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 2726 }), 2727 }, 2728 }, 2729 }, 2730 }, 2731 }, 2732 { 2733 Statement: &javascript.Statement{ 2734 ExpressionStatement: &javascript.Expression{ 2735 Expressions: []javascript.AssignmentExpression{ 2736 { 2737 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2738 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 2739 }), 2740 }, 2741 }, 2742 }, 2743 }, 2744 }, 2745 }, 2746 }, 2747 }, 2748 { // 97 2749 []Option{0}, 2750 &javascript.Module{ 2751 ModuleListItems: []javascript.ModuleItem{ 2752 { 2753 StatementListItem: &javascript.StatementListItem{ 2754 Statement: &javascript.Statement{}, 2755 }, 2756 }, 2757 }, 2758 }, 2759 &javascript.Module{ 2760 ModuleListItems: []javascript.ModuleItem{}, 2761 }, 2762 }, 2763 { // 98 2764 []Option{0}, 2765 &javascript.Module{ 2766 ModuleListItems: []javascript.ModuleItem{ 2767 { 2768 StatementListItem: &javascript.StatementListItem{ 2769 Statement: &javascript.Statement{}, 2770 }, 2771 }, 2772 { 2773 StatementListItem: &javascript.StatementListItem{ 2774 Statement: &javascript.Statement{}, 2775 }, 2776 }, 2777 }, 2778 }, 2779 &javascript.Module{ 2780 ModuleListItems: []javascript.ModuleItem{}, 2781 }, 2782 }, 2783 { // 99 2784 []Option{0}, 2785 &javascript.Module{ 2786 ModuleListItems: []javascript.ModuleItem{ 2787 { 2788 StatementListItem: &javascript.StatementListItem{ 2789 Statement: &javascript.Statement{}, 2790 }, 2791 }, 2792 { 2793 StatementListItem: &javascript.StatementListItem{ 2794 Statement: &javascript.Statement{ 2795 ExpressionStatement: &javascript.Expression{ 2796 Expressions: []javascript.AssignmentExpression{ 2797 { 2798 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2799 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2800 }), 2801 }, 2802 }, 2803 }, 2804 }, 2805 }, 2806 }, 2807 { 2808 StatementListItem: &javascript.StatementListItem{ 2809 Statement: &javascript.Statement{}, 2810 }, 2811 }, 2812 { 2813 StatementListItem: &javascript.StatementListItem{ 2814 Statement: &javascript.Statement{}, 2815 }, 2816 }, 2817 { 2818 StatementListItem: &javascript.StatementListItem{ 2819 Statement: &javascript.Statement{ 2820 ExpressionStatement: &javascript.Expression{ 2821 Expressions: []javascript.AssignmentExpression{ 2822 { 2823 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2824 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 2825 }), 2826 }, 2827 }, 2828 }, 2829 }, 2830 }, 2831 }, 2832 { 2833 StatementListItem: &javascript.StatementListItem{ 2834 Statement: &javascript.Statement{}, 2835 }, 2836 }, 2837 { 2838 StatementListItem: &javascript.StatementListItem{ 2839 Statement: &javascript.Statement{ 2840 ExpressionStatement: &javascript.Expression{ 2841 Expressions: []javascript.AssignmentExpression{ 2842 { 2843 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2844 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 2845 }), 2846 }, 2847 }, 2848 }, 2849 }, 2850 }, 2851 }, 2852 }, 2853 }, 2854 &javascript.Module{ 2855 ModuleListItems: []javascript.ModuleItem{ 2856 { 2857 StatementListItem: &javascript.StatementListItem{ 2858 Statement: &javascript.Statement{ 2859 ExpressionStatement: &javascript.Expression{ 2860 Expressions: []javascript.AssignmentExpression{ 2861 { 2862 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2863 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2864 }), 2865 }, 2866 }, 2867 }, 2868 }, 2869 }, 2870 }, 2871 { 2872 StatementListItem: &javascript.StatementListItem{ 2873 Statement: &javascript.Statement{ 2874 ExpressionStatement: &javascript.Expression{ 2875 Expressions: []javascript.AssignmentExpression{ 2876 { 2877 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2878 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 2879 }), 2880 }, 2881 }, 2882 }, 2883 }, 2884 }, 2885 }, 2886 { 2887 StatementListItem: &javascript.StatementListItem{ 2888 Statement: &javascript.Statement{ 2889 ExpressionStatement: &javascript.Expression{ 2890 Expressions: []javascript.AssignmentExpression{ 2891 { 2892 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2893 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 2894 }), 2895 }, 2896 }, 2897 }, 2898 }, 2899 }, 2900 }, 2901 }, 2902 }, 2903 }, 2904 { // 100 2905 []Option{RemoveLastEmptyReturn}, 2906 &javascript.FunctionDeclaration{ 2907 FunctionBody: javascript.Block{ 2908 StatementList: []javascript.StatementListItem{ 2909 { 2910 Statement: &javascript.Statement{ 2911 Type: javascript.StatementReturn, 2912 }, 2913 }, 2914 }, 2915 }, 2916 }, 2917 &javascript.FunctionDeclaration{ 2918 FunctionBody: javascript.Block{ 2919 StatementList: []javascript.StatementListItem{}, 2920 }, 2921 }, 2922 }, 2923 { // 101 2924 []Option{RemoveLastEmptyReturn}, 2925 &javascript.FunctionDeclaration{ 2926 FunctionBody: javascript.Block{ 2927 StatementList: []javascript.StatementListItem{ 2928 { 2929 Statement: &javascript.Statement{ 2930 Type: javascript.StatementReturn, 2931 ExpressionStatement: &javascript.Expression{ 2932 Expressions: []javascript.AssignmentExpression{ 2933 { 2934 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2935 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2936 }), 2937 }, 2938 }, 2939 }, 2940 }, 2941 }, 2942 }, 2943 }, 2944 }, 2945 &javascript.FunctionDeclaration{ 2946 FunctionBody: javascript.Block{ 2947 StatementList: []javascript.StatementListItem{ 2948 { 2949 Statement: &javascript.Statement{ 2950 Type: javascript.StatementReturn, 2951 ExpressionStatement: &javascript.Expression{ 2952 Expressions: []javascript.AssignmentExpression{ 2953 { 2954 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2955 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2956 }), 2957 }, 2958 }, 2959 }, 2960 }, 2961 }, 2962 }, 2963 }, 2964 }, 2965 }, 2966 { // 102 2967 []Option{RemoveLastEmptyReturn}, 2968 &javascript.FunctionDeclaration{ 2969 FunctionBody: javascript.Block{ 2970 StatementList: []javascript.StatementListItem{ 2971 { 2972 Statement: &javascript.Statement{ 2973 ExpressionStatement: &javascript.Expression{ 2974 Expressions: []javascript.AssignmentExpression{ 2975 { 2976 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 2977 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 2978 }), 2979 }, 2980 }, 2981 }, 2982 }, 2983 }, 2984 { 2985 Statement: &javascript.Statement{ 2986 Type: javascript.StatementReturn, 2987 }, 2988 }, 2989 }, 2990 }, 2991 }, 2992 &javascript.FunctionDeclaration{ 2993 FunctionBody: javascript.Block{ 2994 StatementList: []javascript.StatementListItem{ 2995 { 2996 Statement: &javascript.Statement{ 2997 ExpressionStatement: &javascript.Expression{ 2998 Expressions: []javascript.AssignmentExpression{ 2999 { 3000 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3001 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3002 }), 3003 }, 3004 }, 3005 }, 3006 }, 3007 }, 3008 }, 3009 }, 3010 }, 3011 }, 3012 { // 103 3013 []Option{UnwrapParens}, 3014 javascript.WrapConditional(&javascript.LogicalORExpression{ 3015 LogicalORExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 3016 Expressions: []javascript.AssignmentExpression{ 3017 { 3018 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3019 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3020 }), 3021 }, 3022 }, 3023 }).LogicalORExpression, 3024 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3025 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3026 }).LogicalORExpression.LogicalANDExpression, 3027 }), 3028 javascript.WrapConditional(&javascript.LogicalORExpression{ 3029 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3030 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3031 }).LogicalORExpression, 3032 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3033 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3034 }).LogicalORExpression.LogicalANDExpression, 3035 }), 3036 }, 3037 { // 104 3038 []Option{UnwrapParens}, 3039 javascript.WrapConditional(&javascript.LogicalORExpression{ 3040 LogicalORExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 3041 Expressions: []javascript.AssignmentExpression{ 3042 { 3043 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3044 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3045 }), 3046 }, 3047 { 3048 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3049 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3050 }), 3051 }, 3052 }, 3053 }).LogicalORExpression, 3054 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3055 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3056 }).LogicalORExpression.LogicalANDExpression, 3057 }), 3058 javascript.WrapConditional(&javascript.LogicalORExpression{ 3059 LogicalORExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 3060 Expressions: []javascript.AssignmentExpression{ 3061 { 3062 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3063 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3064 }), 3065 }, 3066 { 3067 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3068 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3069 }), 3070 }, 3071 }, 3072 }).LogicalORExpression, 3073 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3074 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3075 }).LogicalORExpression.LogicalANDExpression, 3076 }), 3077 }, 3078 { // 105 3079 []Option{UnwrapParens}, 3080 javascript.WrapConditional(&javascript.LogicalANDExpression{ 3081 LogicalANDExpression: &javascript.WrapConditional(&javascript.ParenthesizedExpression{ 3082 Expressions: []javascript.AssignmentExpression{ 3083 { 3084 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3085 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3086 }), 3087 }, 3088 }, 3089 }).LogicalORExpression.LogicalANDExpression, 3090 BitwiseORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3091 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3092 }).LogicalORExpression.LogicalANDExpression.BitwiseORExpression, 3093 }), 3094 javascript.WrapConditional(&javascript.LogicalANDExpression{ 3095 LogicalANDExpression: &javascript.WrapConditional(&javascript.PrimaryExpression{ 3096 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3097 }).LogicalORExpression.LogicalANDExpression, 3098 BitwiseORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3099 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3100 }).LogicalORExpression.LogicalANDExpression.BitwiseORExpression, 3101 }), 3102 }, 3103 { // 106 3104 []Option{UnwrapParens}, 3105 javascript.WrapConditional(&javascript.LogicalORExpression{ 3106 LogicalORExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 3107 Expressions: []javascript.AssignmentExpression{ 3108 { 3109 ConditionalExpression: javascript.WrapConditional(&javascript.LogicalANDExpression{ 3110 LogicalANDExpression: &javascript.WrapConditional(&javascript.PrimaryExpression{ 3111 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3112 }).LogicalORExpression.LogicalANDExpression, 3113 BitwiseORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3114 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3115 }).LogicalORExpression.LogicalANDExpression.BitwiseORExpression, 3116 }), 3117 }, 3118 }, 3119 }).LogicalORExpression, 3120 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3121 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3122 }).LogicalORExpression.LogicalANDExpression, 3123 }), 3124 javascript.WrapConditional(&javascript.LogicalORExpression{ 3125 LogicalORExpression: &javascript.LogicalORExpression{ 3126 LogicalANDExpression: javascript.LogicalANDExpression{ 3127 LogicalANDExpression: &javascript.WrapConditional(&javascript.PrimaryExpression{ 3128 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3129 }).LogicalORExpression.LogicalANDExpression, 3130 BitwiseORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3131 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3132 }).LogicalORExpression.LogicalANDExpression.BitwiseORExpression, 3133 }, 3134 }, 3135 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3136 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3137 }).LogicalORExpression.LogicalANDExpression, 3138 }), 3139 }, 3140 { // 107 3141 []Option{UnwrapParens}, 3142 javascript.WrapConditional(&javascript.LogicalORExpression{ 3143 LogicalORExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 3144 Expressions: []javascript.AssignmentExpression{ 3145 { 3146 ConditionalExpression: javascript.WrapConditional(&javascript.LogicalORExpression{ 3147 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3148 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3149 }).LogicalORExpression, 3150 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3151 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3152 }).LogicalORExpression.LogicalANDExpression, 3153 }), 3154 }, 3155 }, 3156 }).LogicalORExpression, 3157 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3158 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3159 }).LogicalORExpression.LogicalANDExpression, 3160 }), 3161 javascript.WrapConditional(&javascript.LogicalORExpression{ 3162 LogicalORExpression: &javascript.LogicalORExpression{ 3163 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3164 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3165 }).LogicalORExpression, 3166 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3167 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3168 }).LogicalORExpression.LogicalANDExpression, 3169 }, 3170 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3171 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3172 }).LogicalORExpression.LogicalANDExpression, 3173 }), 3174 }, 3175 { // 108 3176 []Option{UnwrapParens}, 3177 javascript.WrapConditional(&javascript.LogicalANDExpression{ 3178 LogicalANDExpression: &javascript.WrapConditional(&javascript.ParenthesizedExpression{ 3179 Expressions: []javascript.AssignmentExpression{ 3180 { 3181 ConditionalExpression: javascript.WrapConditional(&javascript.LogicalORExpression{ 3182 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3183 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3184 }).LogicalORExpression, 3185 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3186 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3187 }).LogicalORExpression.LogicalANDExpression, 3188 }), 3189 }, 3190 }, 3191 }).LogicalORExpression.LogicalANDExpression, 3192 BitwiseORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3193 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3194 }).LogicalORExpression.LogicalANDExpression.BitwiseORExpression, 3195 }), 3196 javascript.WrapConditional(&javascript.LogicalANDExpression{ 3197 LogicalANDExpression: &javascript.WrapConditional(&javascript.ParenthesizedExpression{ 3198 Expressions: []javascript.AssignmentExpression{ 3199 { 3200 ConditionalExpression: javascript.WrapConditional(&javascript.LogicalORExpression{ 3201 LogicalORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3202 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3203 }).LogicalORExpression, 3204 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3205 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3206 }).LogicalORExpression.LogicalANDExpression, 3207 }), 3208 }, 3209 }, 3210 }).LogicalORExpression.LogicalANDExpression, 3211 BitwiseORExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3212 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3213 }).LogicalORExpression.LogicalANDExpression.BitwiseORExpression, 3214 }), 3215 }, 3216 { // 109 3217 []Option{UnwrapParens}, 3218 javascript.WrapConditional(&javascript.UpdateExpression{ 3219 LeftHandSideExpression: &javascript.LeftHandSideExpression{ 3220 NewExpression: &javascript.NewExpression{ 3221 MemberExpression: javascript.MemberExpression{ 3222 PrimaryExpression: &javascript.PrimaryExpression{ 3223 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 3224 Expressions: []javascript.AssignmentExpression{ 3225 { 3226 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3227 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3228 }), 3229 }, 3230 }, 3231 }, 3232 }, 3233 }, 3234 }, 3235 }, 3236 UpdateOperator: javascript.UpdatePostIncrement, 3237 }), 3238 javascript.WrapConditional(&javascript.UpdateExpression{ 3239 LeftHandSideExpression: &javascript.LeftHandSideExpression{ 3240 NewExpression: &javascript.NewExpression{ 3241 MemberExpression: javascript.MemberExpression{ 3242 PrimaryExpression: &javascript.PrimaryExpression{ 3243 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3244 }, 3245 }, 3246 }, 3247 }, 3248 UpdateOperator: javascript.UpdatePostIncrement, 3249 }), 3250 }, 3251 { // 110 3252 []Option{UnwrapParens}, 3253 javascript.WrapConditional(&javascript.UpdateExpression{ 3254 UpdateOperator: javascript.UpdatePreDecrement, 3255 UnaryExpression: &javascript.UnaryExpression{ 3256 UpdateExpression: javascript.UpdateExpression{ 3257 LeftHandSideExpression: &javascript.LeftHandSideExpression{ 3258 NewExpression: &javascript.NewExpression{ 3259 MemberExpression: javascript.MemberExpression{ 3260 PrimaryExpression: &javascript.PrimaryExpression{ 3261 ParenthesizedExpression: &javascript.ParenthesizedExpression{ 3262 Expressions: []javascript.AssignmentExpression{ 3263 { 3264 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3265 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3266 }), 3267 }, 3268 }, 3269 }, 3270 }, 3271 }, 3272 }, 3273 }, 3274 }, 3275 }, 3276 }), 3277 javascript.WrapConditional(&javascript.UpdateExpression{ 3278 UpdateOperator: javascript.UpdatePreDecrement, 3279 UnaryExpression: &javascript.UnaryExpression{ 3280 UpdateExpression: javascript.UpdateExpression{ 3281 LeftHandSideExpression: &javascript.LeftHandSideExpression{ 3282 NewExpression: &javascript.NewExpression{ 3283 MemberExpression: javascript.MemberExpression{ 3284 PrimaryExpression: &javascript.PrimaryExpression{ 3285 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3286 }, 3287 }, 3288 }, 3289 }, 3290 }, 3291 }, 3292 }), 3293 }, 3294 { // 111 3295 []Option{CombineExpressionRuns}, 3296 &javascript.Block{}, 3297 &javascript.Block{}, 3298 }, 3299 { // 112 3300 []Option{CombineExpressionRuns}, 3301 &javascript.Block{ 3302 StatementList: []javascript.StatementListItem{ 3303 { 3304 Statement: &javascript.Statement{ 3305 ExpressionStatement: &javascript.Expression{ 3306 Expressions: []javascript.AssignmentExpression{ 3307 { 3308 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3309 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3310 }), 3311 }, 3312 }, 3313 }, 3314 }, 3315 }, 3316 }, 3317 }, 3318 &javascript.Block{ 3319 StatementList: []javascript.StatementListItem{ 3320 { 3321 Statement: &javascript.Statement{ 3322 ExpressionStatement: &javascript.Expression{ 3323 Expressions: []javascript.AssignmentExpression{ 3324 { 3325 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3326 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3327 }), 3328 }, 3329 }, 3330 }, 3331 }, 3332 }, 3333 }, 3334 }, 3335 }, 3336 { // 113 3337 []Option{CombineExpressionRuns}, 3338 &javascript.Block{ 3339 StatementList: []javascript.StatementListItem{ 3340 { 3341 Statement: &javascript.Statement{ 3342 ExpressionStatement: &javascript.Expression{ 3343 Expressions: []javascript.AssignmentExpression{ 3344 { 3345 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3346 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3347 }), 3348 }, 3349 }, 3350 }, 3351 }, 3352 }, 3353 { 3354 Statement: &javascript.Statement{ 3355 ExpressionStatement: &javascript.Expression{ 3356 Expressions: []javascript.AssignmentExpression{ 3357 { 3358 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3359 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3360 }), 3361 }, 3362 }, 3363 }, 3364 }, 3365 }, 3366 }, 3367 }, 3368 &javascript.Block{ 3369 StatementList: []javascript.StatementListItem{ 3370 { 3371 Statement: &javascript.Statement{ 3372 ExpressionStatement: &javascript.Expression{ 3373 Expressions: []javascript.AssignmentExpression{ 3374 { 3375 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3376 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3377 }), 3378 }, 3379 { 3380 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3381 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3382 }), 3383 }, 3384 }, 3385 }, 3386 }, 3387 }, 3388 }, 3389 }, 3390 }, 3391 { // 114 3392 []Option{CombineExpressionRuns}, 3393 &javascript.Block{ 3394 StatementList: []javascript.StatementListItem{ 3395 { 3396 Statement: &javascript.Statement{ 3397 ExpressionStatement: &javascript.Expression{ 3398 Expressions: []javascript.AssignmentExpression{ 3399 { 3400 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3401 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3402 }), 3403 }, 3404 }, 3405 }, 3406 }, 3407 }, 3408 { 3409 Statement: &javascript.Statement{ 3410 ExpressionStatement: &javascript.Expression{ 3411 Expressions: []javascript.AssignmentExpression{ 3412 { 3413 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3414 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3415 }), 3416 }, 3417 }, 3418 }, 3419 }, 3420 }, 3421 { 3422 Statement: &javascript.Statement{ 3423 ExpressionStatement: &javascript.Expression{ 3424 Expressions: []javascript.AssignmentExpression{ 3425 { 3426 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3427 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3428 }), 3429 }, 3430 }, 3431 }, 3432 }, 3433 }, 3434 }, 3435 }, 3436 &javascript.Block{ 3437 StatementList: []javascript.StatementListItem{ 3438 { 3439 Statement: &javascript.Statement{ 3440 ExpressionStatement: &javascript.Expression{ 3441 Expressions: []javascript.AssignmentExpression{ 3442 { 3443 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3444 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3445 }), 3446 }, 3447 { 3448 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3449 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3450 }), 3451 }, 3452 { 3453 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3454 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3455 }), 3456 }, 3457 }, 3458 }, 3459 }, 3460 }, 3461 }, 3462 }, 3463 }, 3464 { // 115 3465 []Option{CombineExpressionRuns}, 3466 &javascript.Block{ 3467 StatementList: []javascript.StatementListItem{ 3468 { 3469 Statement: &javascript.Statement{ 3470 ExpressionStatement: &javascript.Expression{ 3471 Expressions: []javascript.AssignmentExpression{ 3472 { 3473 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3474 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3475 }), 3476 }, 3477 { 3478 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3479 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3480 }), 3481 }, 3482 }, 3483 }, 3484 }, 3485 }, 3486 { 3487 Statement: &javascript.Statement{ 3488 ExpressionStatement: &javascript.Expression{ 3489 Expressions: []javascript.AssignmentExpression{ 3490 { 3491 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3492 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3493 }), 3494 }, 3495 { 3496 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3497 IdentifierReference: makeToken(javascript.TokenIdentifier, "d"), 3498 }), 3499 }, 3500 }, 3501 }, 3502 }, 3503 }, 3504 }, 3505 }, 3506 &javascript.Block{ 3507 StatementList: []javascript.StatementListItem{ 3508 { 3509 Statement: &javascript.Statement{ 3510 ExpressionStatement: &javascript.Expression{ 3511 Expressions: []javascript.AssignmentExpression{ 3512 { 3513 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3514 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3515 }), 3516 }, 3517 { 3518 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3519 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3520 }), 3521 }, 3522 { 3523 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3524 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3525 }), 3526 }, 3527 { 3528 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3529 IdentifierReference: makeToken(javascript.TokenIdentifier, "d"), 3530 }), 3531 }, 3532 }, 3533 }, 3534 }, 3535 }, 3536 }, 3537 }, 3538 }, 3539 { // 116 3540 []Option{CombineExpressionRuns}, 3541 &javascript.Block{ 3542 StatementList: []javascript.StatementListItem{ 3543 { 3544 Statement: &javascript.Statement{ 3545 ExpressionStatement: &javascript.Expression{ 3546 Expressions: []javascript.AssignmentExpression{ 3547 { 3548 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3549 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3550 }), 3551 }, 3552 }, 3553 }, 3554 }, 3555 }, 3556 { 3557 Statement: &javascript.Statement{ 3558 ExpressionStatement: &javascript.Expression{ 3559 Expressions: []javascript.AssignmentExpression{ 3560 { 3561 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3562 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3563 }), 3564 }, 3565 }, 3566 }, 3567 }, 3568 }, 3569 { 3570 Statement: &javascript.Statement{ 3571 BlockStatement: &javascript.Block{}, 3572 }, 3573 }, 3574 { 3575 Statement: &javascript.Statement{ 3576 ExpressionStatement: &javascript.Expression{ 3577 Expressions: []javascript.AssignmentExpression{ 3578 { 3579 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3580 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3581 }), 3582 }, 3583 }, 3584 }, 3585 }, 3586 }, 3587 }, 3588 }, 3589 &javascript.Block{ 3590 StatementList: []javascript.StatementListItem{ 3591 { 3592 Statement: &javascript.Statement{ 3593 ExpressionStatement: &javascript.Expression{ 3594 Expressions: []javascript.AssignmentExpression{ 3595 { 3596 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3597 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3598 }), 3599 }, 3600 { 3601 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3602 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3603 }), 3604 }, 3605 }, 3606 }, 3607 }, 3608 }, 3609 { 3610 Statement: &javascript.Statement{ 3611 BlockStatement: &javascript.Block{}, 3612 }, 3613 }, 3614 { 3615 Statement: &javascript.Statement{ 3616 ExpressionStatement: &javascript.Expression{ 3617 Expressions: []javascript.AssignmentExpression{ 3618 { 3619 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3620 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3621 }), 3622 }, 3623 }, 3624 }, 3625 }, 3626 }, 3627 }, 3628 }, 3629 }, 3630 { // 117 3631 []Option{CombineExpressionRuns}, 3632 &javascript.Block{ 3633 StatementList: []javascript.StatementListItem{ 3634 { 3635 Statement: &javascript.Statement{ 3636 ExpressionStatement: &javascript.Expression{ 3637 Expressions: []javascript.AssignmentExpression{ 3638 { 3639 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3640 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3641 }), 3642 }, 3643 }, 3644 }, 3645 }, 3646 }, 3647 { 3648 Statement: &javascript.Statement{ 3649 BlockStatement: &javascript.Block{}, 3650 }, 3651 }, 3652 { 3653 Statement: &javascript.Statement{ 3654 ExpressionStatement: &javascript.Expression{ 3655 Expressions: []javascript.AssignmentExpression{ 3656 { 3657 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3658 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3659 }), 3660 }, 3661 }, 3662 }, 3663 }, 3664 }, 3665 { 3666 Statement: &javascript.Statement{ 3667 ExpressionStatement: &javascript.Expression{ 3668 Expressions: []javascript.AssignmentExpression{ 3669 { 3670 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3671 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3672 }), 3673 }, 3674 }, 3675 }, 3676 }, 3677 }, 3678 }, 3679 }, 3680 &javascript.Block{ 3681 StatementList: []javascript.StatementListItem{ 3682 { 3683 Statement: &javascript.Statement{ 3684 ExpressionStatement: &javascript.Expression{ 3685 Expressions: []javascript.AssignmentExpression{ 3686 { 3687 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3688 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3689 }), 3690 }, 3691 }, 3692 }, 3693 }, 3694 }, 3695 { 3696 Statement: &javascript.Statement{ 3697 BlockStatement: &javascript.Block{}, 3698 }, 3699 }, 3700 { 3701 Statement: &javascript.Statement{ 3702 ExpressionStatement: &javascript.Expression{ 3703 Expressions: []javascript.AssignmentExpression{ 3704 { 3705 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3706 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3707 }), 3708 }, 3709 { 3710 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3711 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3712 }), 3713 }, 3714 }, 3715 }, 3716 }, 3717 }, 3718 }, 3719 }, 3720 }, 3721 { // 118 3722 []Option{CombineExpressionRuns}, 3723 &javascript.Module{}, 3724 &javascript.Module{}, 3725 }, 3726 { // 119 3727 []Option{CombineExpressionRuns}, 3728 &javascript.Module{ 3729 ModuleListItems: []javascript.ModuleItem{ 3730 { 3731 StatementListItem: &javascript.StatementListItem{ 3732 Statement: &javascript.Statement{ 3733 ExpressionStatement: &javascript.Expression{ 3734 Expressions: []javascript.AssignmentExpression{ 3735 { 3736 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3737 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3738 }), 3739 }, 3740 }, 3741 }, 3742 }, 3743 }, 3744 }, 3745 }, 3746 }, 3747 &javascript.Module{ 3748 ModuleListItems: []javascript.ModuleItem{ 3749 { 3750 StatementListItem: &javascript.StatementListItem{ 3751 Statement: &javascript.Statement{ 3752 ExpressionStatement: &javascript.Expression{ 3753 Expressions: []javascript.AssignmentExpression{ 3754 { 3755 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3756 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3757 }), 3758 }, 3759 }, 3760 }, 3761 }, 3762 }, 3763 }, 3764 }, 3765 }, 3766 }, 3767 { // 120 3768 []Option{CombineExpressionRuns}, 3769 &javascript.Module{ 3770 ModuleListItems: []javascript.ModuleItem{ 3771 { 3772 StatementListItem: &javascript.StatementListItem{ 3773 Statement: &javascript.Statement{ 3774 ExpressionStatement: &javascript.Expression{ 3775 Expressions: []javascript.AssignmentExpression{ 3776 { 3777 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3778 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3779 }), 3780 }, 3781 }, 3782 }, 3783 }, 3784 }, 3785 }, 3786 { 3787 StatementListItem: &javascript.StatementListItem{ 3788 Statement: &javascript.Statement{ 3789 ExpressionStatement: &javascript.Expression{ 3790 Expressions: []javascript.AssignmentExpression{ 3791 { 3792 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3793 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3794 }), 3795 }, 3796 }, 3797 }, 3798 }, 3799 }, 3800 }, 3801 }, 3802 }, 3803 &javascript.Module{ 3804 ModuleListItems: []javascript.ModuleItem{ 3805 { 3806 StatementListItem: &javascript.StatementListItem{ 3807 Statement: &javascript.Statement{ 3808 ExpressionStatement: &javascript.Expression{ 3809 Expressions: []javascript.AssignmentExpression{ 3810 { 3811 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3812 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3813 }), 3814 }, 3815 { 3816 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3817 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3818 }), 3819 }, 3820 }, 3821 }, 3822 }, 3823 }, 3824 }, 3825 }, 3826 }, 3827 }, 3828 { // 121 3829 []Option{CombineExpressionRuns}, 3830 &javascript.Module{ 3831 ModuleListItems: []javascript.ModuleItem{ 3832 { 3833 StatementListItem: &javascript.StatementListItem{ 3834 Statement: &javascript.Statement{ 3835 ExpressionStatement: &javascript.Expression{ 3836 Expressions: []javascript.AssignmentExpression{ 3837 { 3838 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3839 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3840 }), 3841 }, 3842 }, 3843 }, 3844 }, 3845 }, 3846 }, 3847 { 3848 StatementListItem: &javascript.StatementListItem{ 3849 Statement: &javascript.Statement{ 3850 ExpressionStatement: &javascript.Expression{ 3851 Expressions: []javascript.AssignmentExpression{ 3852 { 3853 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3854 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3855 }), 3856 }, 3857 }, 3858 }, 3859 }, 3860 }, 3861 }, 3862 { 3863 StatementListItem: &javascript.StatementListItem{ 3864 Statement: &javascript.Statement{ 3865 ExpressionStatement: &javascript.Expression{ 3866 Expressions: []javascript.AssignmentExpression{ 3867 { 3868 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3869 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3870 }), 3871 }, 3872 }, 3873 }, 3874 }, 3875 }, 3876 }, 3877 }, 3878 }, 3879 &javascript.Module{ 3880 ModuleListItems: []javascript.ModuleItem{ 3881 { 3882 StatementListItem: &javascript.StatementListItem{ 3883 Statement: &javascript.Statement{ 3884 ExpressionStatement: &javascript.Expression{ 3885 Expressions: []javascript.AssignmentExpression{ 3886 { 3887 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3888 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3889 }), 3890 }, 3891 { 3892 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3893 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3894 }), 3895 }, 3896 { 3897 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3898 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3899 }), 3900 }, 3901 }, 3902 }, 3903 }, 3904 }, 3905 }, 3906 }, 3907 }, 3908 }, 3909 { // 122 3910 []Option{CombineExpressionRuns}, 3911 &javascript.Module{ 3912 ModuleListItems: []javascript.ModuleItem{ 3913 { 3914 StatementListItem: &javascript.StatementListItem{ 3915 Statement: &javascript.Statement{ 3916 ExpressionStatement: &javascript.Expression{ 3917 Expressions: []javascript.AssignmentExpression{ 3918 { 3919 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3920 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3921 }), 3922 }, 3923 { 3924 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3925 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3926 }), 3927 }, 3928 }, 3929 }, 3930 }, 3931 }, 3932 }, 3933 { 3934 StatementListItem: &javascript.StatementListItem{ 3935 Statement: &javascript.Statement{ 3936 ExpressionStatement: &javascript.Expression{ 3937 Expressions: []javascript.AssignmentExpression{ 3938 { 3939 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3940 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3941 }), 3942 }, 3943 { 3944 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3945 IdentifierReference: makeToken(javascript.TokenIdentifier, "d"), 3946 }), 3947 }, 3948 }, 3949 }, 3950 }, 3951 }, 3952 }, 3953 }, 3954 }, 3955 &javascript.Module{ 3956 ModuleListItems: []javascript.ModuleItem{ 3957 { 3958 StatementListItem: &javascript.StatementListItem{ 3959 Statement: &javascript.Statement{ 3960 ExpressionStatement: &javascript.Expression{ 3961 Expressions: []javascript.AssignmentExpression{ 3962 { 3963 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3964 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 3965 }), 3966 }, 3967 { 3968 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3969 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 3970 }), 3971 }, 3972 { 3973 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3974 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 3975 }), 3976 }, 3977 { 3978 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 3979 IdentifierReference: makeToken(javascript.TokenIdentifier, "d"), 3980 }), 3981 }, 3982 }, 3983 }, 3984 }, 3985 }, 3986 }, 3987 }, 3988 }, 3989 }, 3990 { // 123 3991 []Option{CombineExpressionRuns}, 3992 &javascript.Module{ 3993 ModuleListItems: []javascript.ModuleItem{ 3994 { 3995 StatementListItem: &javascript.StatementListItem{ 3996 Statement: &javascript.Statement{ 3997 ExpressionStatement: &javascript.Expression{ 3998 Expressions: []javascript.AssignmentExpression{ 3999 { 4000 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4001 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4002 }), 4003 }, 4004 }, 4005 }, 4006 }, 4007 }, 4008 }, 4009 { 4010 StatementListItem: &javascript.StatementListItem{ 4011 Statement: &javascript.Statement{ 4012 ExpressionStatement: &javascript.Expression{ 4013 Expressions: []javascript.AssignmentExpression{ 4014 { 4015 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4016 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 4017 }), 4018 }, 4019 }, 4020 }, 4021 }, 4022 }, 4023 }, 4024 { 4025 StatementListItem: &javascript.StatementListItem{ 4026 Statement: &javascript.Statement{ 4027 BlockStatement: &javascript.Block{}, 4028 }, 4029 }, 4030 }, 4031 { 4032 StatementListItem: &javascript.StatementListItem{ 4033 Statement: &javascript.Statement{ 4034 ExpressionStatement: &javascript.Expression{ 4035 Expressions: []javascript.AssignmentExpression{ 4036 { 4037 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4038 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 4039 }), 4040 }, 4041 }, 4042 }, 4043 }, 4044 }, 4045 }, 4046 }, 4047 }, 4048 &javascript.Module{ 4049 ModuleListItems: []javascript.ModuleItem{ 4050 { 4051 StatementListItem: &javascript.StatementListItem{ 4052 Statement: &javascript.Statement{ 4053 ExpressionStatement: &javascript.Expression{ 4054 Expressions: []javascript.AssignmentExpression{ 4055 { 4056 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4057 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4058 }), 4059 }, 4060 { 4061 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4062 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 4063 }), 4064 }, 4065 }, 4066 }, 4067 }, 4068 }, 4069 }, 4070 { 4071 StatementListItem: &javascript.StatementListItem{ 4072 Statement: &javascript.Statement{ 4073 BlockStatement: &javascript.Block{}, 4074 }, 4075 }, 4076 }, 4077 { 4078 StatementListItem: &javascript.StatementListItem{ 4079 Statement: &javascript.Statement{ 4080 ExpressionStatement: &javascript.Expression{ 4081 Expressions: []javascript.AssignmentExpression{ 4082 { 4083 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4084 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 4085 }), 4086 }, 4087 }, 4088 }, 4089 }, 4090 }, 4091 }, 4092 }, 4093 }, 4094 }, 4095 { // 124 4096 []Option{CombineExpressionRuns}, 4097 &javascript.Module{ 4098 ModuleListItems: []javascript.ModuleItem{ 4099 { 4100 StatementListItem: &javascript.StatementListItem{ 4101 Statement: &javascript.Statement{ 4102 ExpressionStatement: &javascript.Expression{ 4103 Expressions: []javascript.AssignmentExpression{ 4104 { 4105 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4106 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4107 }), 4108 }, 4109 }, 4110 }, 4111 }, 4112 }, 4113 }, 4114 { 4115 StatementListItem: &javascript.StatementListItem{ 4116 Statement: &javascript.Statement{ 4117 BlockStatement: &javascript.Block{}, 4118 }, 4119 }, 4120 }, 4121 { 4122 StatementListItem: &javascript.StatementListItem{ 4123 Statement: &javascript.Statement{ 4124 ExpressionStatement: &javascript.Expression{ 4125 Expressions: []javascript.AssignmentExpression{ 4126 { 4127 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4128 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 4129 }), 4130 }, 4131 }, 4132 }, 4133 }, 4134 }, 4135 }, 4136 { 4137 StatementListItem: &javascript.StatementListItem{ 4138 Statement: &javascript.Statement{ 4139 ExpressionStatement: &javascript.Expression{ 4140 Expressions: []javascript.AssignmentExpression{ 4141 { 4142 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4143 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 4144 }), 4145 }, 4146 }, 4147 }, 4148 }, 4149 }, 4150 }, 4151 }, 4152 }, 4153 &javascript.Module{ 4154 ModuleListItems: []javascript.ModuleItem{ 4155 { 4156 StatementListItem: &javascript.StatementListItem{ 4157 Statement: &javascript.Statement{ 4158 ExpressionStatement: &javascript.Expression{ 4159 Expressions: []javascript.AssignmentExpression{ 4160 { 4161 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4162 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4163 }), 4164 }, 4165 }, 4166 }, 4167 }, 4168 }, 4169 }, 4170 { 4171 StatementListItem: &javascript.StatementListItem{ 4172 Statement: &javascript.Statement{ 4173 BlockStatement: &javascript.Block{}, 4174 }, 4175 }, 4176 }, 4177 { 4178 StatementListItem: &javascript.StatementListItem{ 4179 Statement: &javascript.Statement{ 4180 ExpressionStatement: &javascript.Expression{ 4181 Expressions: []javascript.AssignmentExpression{ 4182 { 4183 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4184 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 4185 }), 4186 }, 4187 { 4188 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4189 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 4190 }), 4191 }, 4192 }, 4193 }, 4194 }, 4195 }, 4196 }, 4197 }, 4198 }, 4199 }, 4200 { // 125 4201 []Option{UnwrapParens}, 4202 &javascript.Block{ 4203 StatementList: []javascript.StatementListItem{ 4204 { 4205 Statement: &javascript.Statement{ 4206 ExpressionStatement: &javascript.Expression{ 4207 Expressions: []javascript.AssignmentExpression{ 4208 { 4209 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4210 Expressions: []javascript.AssignmentExpression{ 4211 { 4212 ConditionalExpression: javascript.WrapConditional(&javascript.ObjectLiteral{}), 4213 }, 4214 }, 4215 }), 4216 }, 4217 }, 4218 }, 4219 }, 4220 }, 4221 }, 4222 }, 4223 &javascript.Block{ 4224 StatementList: []javascript.StatementListItem{ 4225 { 4226 Statement: &javascript.Statement{ 4227 ExpressionStatement: &javascript.Expression{ 4228 Expressions: []javascript.AssignmentExpression{ 4229 { 4230 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4231 Expressions: []javascript.AssignmentExpression{ 4232 { 4233 ConditionalExpression: javascript.WrapConditional(&javascript.ObjectLiteral{}), 4234 }, 4235 }, 4236 }), 4237 }, 4238 }, 4239 }, 4240 }, 4241 }, 4242 }, 4243 }, 4244 }, 4245 { // 126 4246 []Option{UnwrapParens}, 4247 &javascript.Block{ 4248 StatementList: []javascript.StatementListItem{ 4249 { 4250 Statement: &javascript.Statement{ 4251 ExpressionStatement: &javascript.Expression{ 4252 Expressions: []javascript.AssignmentExpression{ 4253 { 4254 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4255 Expressions: []javascript.AssignmentExpression{ 4256 { 4257 ConditionalExpression: javascript.WrapConditional(&javascript.ArrayLiteral{}), 4258 }, 4259 }, 4260 }), 4261 }, 4262 }, 4263 }, 4264 }, 4265 }, 4266 }, 4267 }, 4268 &javascript.Block{ 4269 StatementList: []javascript.StatementListItem{ 4270 { 4271 Statement: &javascript.Statement{ 4272 ExpressionStatement: &javascript.Expression{ 4273 Expressions: []javascript.AssignmentExpression{ 4274 { 4275 ConditionalExpression: javascript.WrapConditional(&javascript.ArrayLiteral{}), 4276 }, 4277 }, 4278 }, 4279 }, 4280 }, 4281 }, 4282 }, 4283 }, 4284 { // 127 4285 []Option{UnwrapParens}, 4286 &javascript.Block{ 4287 StatementList: []javascript.StatementListItem{ 4288 { 4289 Statement: &javascript.Statement{ 4290 ExpressionStatement: &javascript.Expression{ 4291 Expressions: []javascript.AssignmentExpression{ 4292 { 4293 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4294 Expressions: []javascript.AssignmentExpression{ 4295 { 4296 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{}), 4297 }, 4298 }, 4299 }), 4300 }, 4301 }, 4302 }, 4303 }, 4304 }, 4305 }, 4306 }, 4307 &javascript.Block{ 4308 StatementList: []javascript.StatementListItem{ 4309 { 4310 Statement: &javascript.Statement{ 4311 ExpressionStatement: &javascript.Expression{ 4312 Expressions: []javascript.AssignmentExpression{ 4313 { 4314 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4315 Expressions: []javascript.AssignmentExpression{ 4316 { 4317 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{}), 4318 }, 4319 }, 4320 }), 4321 }, 4322 }, 4323 }, 4324 }, 4325 }, 4326 }, 4327 }, 4328 }, 4329 { // 128 4330 []Option{UnwrapParens}, 4331 &javascript.Block{ 4332 StatementList: []javascript.StatementListItem{ 4333 { 4334 Statement: &javascript.Statement{ 4335 ExpressionStatement: &javascript.Expression{ 4336 Expressions: []javascript.AssignmentExpression{ 4337 { 4338 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4339 Expressions: []javascript.AssignmentExpression{ 4340 { 4341 ConditionalExpression: javascript.WrapConditional(&javascript.ClassDeclaration{}), 4342 }, 4343 }, 4344 }), 4345 }, 4346 }, 4347 }, 4348 }, 4349 }, 4350 }, 4351 }, 4352 &javascript.Block{ 4353 StatementList: []javascript.StatementListItem{ 4354 { 4355 Statement: &javascript.Statement{ 4356 ExpressionStatement: &javascript.Expression{ 4357 Expressions: []javascript.AssignmentExpression{ 4358 { 4359 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4360 Expressions: []javascript.AssignmentExpression{ 4361 { 4362 ConditionalExpression: javascript.WrapConditional(&javascript.ClassDeclaration{}), 4363 }, 4364 }, 4365 }), 4366 }, 4367 }, 4368 }, 4369 }, 4370 }, 4371 }, 4372 }, 4373 }, 4374 { // 129 4375 []Option{UnwrapParens}, 4376 &javascript.Module{ 4377 ModuleListItems: []javascript.ModuleItem{ 4378 { 4379 StatementListItem: &javascript.StatementListItem{ 4380 Statement: &javascript.Statement{ 4381 ExpressionStatement: &javascript.Expression{ 4382 Expressions: []javascript.AssignmentExpression{ 4383 { 4384 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4385 Expressions: []javascript.AssignmentExpression{ 4386 { 4387 ConditionalExpression: javascript.WrapConditional(&javascript.ObjectLiteral{}), 4388 }, 4389 }, 4390 }), 4391 }, 4392 }, 4393 }, 4394 }, 4395 }, 4396 }, 4397 }, 4398 }, 4399 &javascript.Module{ 4400 ModuleListItems: []javascript.ModuleItem{ 4401 { 4402 StatementListItem: &javascript.StatementListItem{ 4403 Statement: &javascript.Statement{ 4404 ExpressionStatement: &javascript.Expression{ 4405 Expressions: []javascript.AssignmentExpression{ 4406 { 4407 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4408 Expressions: []javascript.AssignmentExpression{ 4409 { 4410 ConditionalExpression: javascript.WrapConditional(&javascript.ObjectLiteral{}), 4411 }, 4412 }, 4413 }), 4414 }, 4415 }, 4416 }, 4417 }, 4418 }, 4419 }, 4420 }, 4421 }, 4422 }, 4423 { // 130 4424 []Option{UnwrapParens}, 4425 &javascript.Module{ 4426 ModuleListItems: []javascript.ModuleItem{ 4427 { 4428 StatementListItem: &javascript.StatementListItem{ 4429 Statement: &javascript.Statement{ 4430 ExpressionStatement: &javascript.Expression{ 4431 Expressions: []javascript.AssignmentExpression{ 4432 { 4433 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4434 Expressions: []javascript.AssignmentExpression{ 4435 { 4436 ConditionalExpression: javascript.WrapConditional(&javascript.ArrayLiteral{}), 4437 }, 4438 }, 4439 }), 4440 }, 4441 }, 4442 }, 4443 }, 4444 }, 4445 }, 4446 }, 4447 }, 4448 &javascript.Module{ 4449 ModuleListItems: []javascript.ModuleItem{ 4450 { 4451 StatementListItem: &javascript.StatementListItem{ 4452 Statement: &javascript.Statement{ 4453 ExpressionStatement: &javascript.Expression{ 4454 Expressions: []javascript.AssignmentExpression{ 4455 { 4456 ConditionalExpression: javascript.WrapConditional(&javascript.ArrayLiteral{}), 4457 }, 4458 }, 4459 }, 4460 }, 4461 }, 4462 }, 4463 }, 4464 }, 4465 }, 4466 { // 131 4467 []Option{UnwrapParens}, 4468 &javascript.Module{ 4469 ModuleListItems: []javascript.ModuleItem{ 4470 { 4471 StatementListItem: &javascript.StatementListItem{ 4472 Statement: &javascript.Statement{ 4473 ExpressionStatement: &javascript.Expression{ 4474 Expressions: []javascript.AssignmentExpression{ 4475 { 4476 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4477 Expressions: []javascript.AssignmentExpression{ 4478 { 4479 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{}), 4480 }, 4481 }, 4482 }), 4483 }, 4484 }, 4485 }, 4486 }, 4487 }, 4488 }, 4489 }, 4490 }, 4491 &javascript.Module{ 4492 ModuleListItems: []javascript.ModuleItem{ 4493 { 4494 StatementListItem: &javascript.StatementListItem{ 4495 Statement: &javascript.Statement{ 4496 ExpressionStatement: &javascript.Expression{ 4497 Expressions: []javascript.AssignmentExpression{ 4498 { 4499 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4500 Expressions: []javascript.AssignmentExpression{ 4501 { 4502 ConditionalExpression: javascript.WrapConditional(&javascript.FunctionDeclaration{}), 4503 }, 4504 }, 4505 }), 4506 }, 4507 }, 4508 }, 4509 }, 4510 }, 4511 }, 4512 }, 4513 }, 4514 }, 4515 { // 132 4516 []Option{UnwrapParens}, 4517 &javascript.Module{ 4518 ModuleListItems: []javascript.ModuleItem{ 4519 { 4520 StatementListItem: &javascript.StatementListItem{ 4521 Statement: &javascript.Statement{ 4522 ExpressionStatement: &javascript.Expression{ 4523 Expressions: []javascript.AssignmentExpression{ 4524 { 4525 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4526 Expressions: []javascript.AssignmentExpression{ 4527 { 4528 ConditionalExpression: javascript.WrapConditional(&javascript.ClassDeclaration{}), 4529 }, 4530 }, 4531 }), 4532 }, 4533 }, 4534 }, 4535 }, 4536 }, 4537 }, 4538 }, 4539 }, 4540 &javascript.Module{ 4541 ModuleListItems: []javascript.ModuleItem{ 4542 { 4543 StatementListItem: &javascript.StatementListItem{ 4544 Statement: &javascript.Statement{ 4545 ExpressionStatement: &javascript.Expression{ 4546 Expressions: []javascript.AssignmentExpression{ 4547 { 4548 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4549 Expressions: []javascript.AssignmentExpression{ 4550 { 4551 ConditionalExpression: javascript.WrapConditional(&javascript.ClassDeclaration{}), 4552 }, 4553 }, 4554 }), 4555 }, 4556 }, 4557 }, 4558 }, 4559 }, 4560 }, 4561 }, 4562 }, 4563 }, 4564 { // 133 4565 []Option{UnwrapParens}, 4566 &javascript.Block{ 4567 StatementList: []javascript.StatementListItem{ 4568 { 4569 Statement: &javascript.Statement{ 4570 ExpressionStatement: &javascript.Expression{ 4571 Expressions: []javascript.AssignmentExpression{ 4572 { 4573 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4574 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4575 }), 4576 }, 4577 { 4578 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4579 Expressions: []javascript.AssignmentExpression{ 4580 { 4581 ConditionalExpression: javascript.WrapConditional(&javascript.ClassDeclaration{}), 4582 }, 4583 }, 4584 }), 4585 }, 4586 }, 4587 }, 4588 }, 4589 }, 4590 }, 4591 }, 4592 &javascript.Block{ 4593 StatementList: []javascript.StatementListItem{ 4594 { 4595 Statement: &javascript.Statement{ 4596 ExpressionStatement: &javascript.Expression{ 4597 Expressions: []javascript.AssignmentExpression{ 4598 { 4599 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4600 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4601 }), 4602 }, 4603 { 4604 ConditionalExpression: javascript.WrapConditional(&javascript.ClassDeclaration{}), 4605 }, 4606 }, 4607 }, 4608 }, 4609 }, 4610 }, 4611 }, 4612 }, 4613 { // 134 4614 []Option{UnwrapParens}, 4615 &javascript.Module{ 4616 ModuleListItems: []javascript.ModuleItem{ 4617 { 4618 StatementListItem: &javascript.StatementListItem{ 4619 Statement: &javascript.Statement{ 4620 ExpressionStatement: &javascript.Expression{ 4621 Expressions: []javascript.AssignmentExpression{ 4622 { 4623 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4624 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4625 }), 4626 }, 4627 { 4628 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4629 Expressions: []javascript.AssignmentExpression{ 4630 { 4631 ConditionalExpression: javascript.WrapConditional(&javascript.ObjectLiteral{}), 4632 }, 4633 }, 4634 }), 4635 }, 4636 }, 4637 }, 4638 }, 4639 }, 4640 }, 4641 }, 4642 }, 4643 &javascript.Module{ 4644 ModuleListItems: []javascript.ModuleItem{ 4645 { 4646 StatementListItem: &javascript.StatementListItem{ 4647 Statement: &javascript.Statement{ 4648 ExpressionStatement: &javascript.Expression{ 4649 Expressions: []javascript.AssignmentExpression{ 4650 { 4651 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4652 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4653 }), 4654 }, 4655 { 4656 ConditionalExpression: javascript.WrapConditional(&javascript.ObjectLiteral{}), 4657 }, 4658 }, 4659 }, 4660 }, 4661 }, 4662 }, 4663 }, 4664 }, 4665 }, 4666 { // 135 4667 []Option{UnwrapParens}, 4668 &javascript.Block{ 4669 StatementList: []javascript.StatementListItem{ 4670 { 4671 Statement: &javascript.Statement{ 4672 ExpressionStatement: &javascript.Expression{ 4673 Expressions: []javascript.AssignmentExpression{ 4674 { 4675 ConditionalExpression: javascript.WrapConditional(&javascript.LogicalORExpression{ 4676 LogicalORExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4677 Expressions: []javascript.AssignmentExpression{ 4678 { 4679 ConditionalExpression: javascript.WrapConditional(javascript.ObjectLiteral{}), 4680 }, 4681 }, 4682 }).LogicalORExpression, 4683 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4684 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4685 }).LogicalORExpression.LogicalANDExpression, 4686 }), 4687 }, 4688 }, 4689 }, 4690 }, 4691 }, 4692 }, 4693 }, 4694 &javascript.Block{ 4695 StatementList: []javascript.StatementListItem{ 4696 { 4697 Statement: &javascript.Statement{ 4698 ExpressionStatement: &javascript.Expression{ 4699 Expressions: []javascript.AssignmentExpression{ 4700 { 4701 ConditionalExpression: javascript.WrapConditional(&javascript.LogicalORExpression{ 4702 LogicalORExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4703 Expressions: []javascript.AssignmentExpression{ 4704 { 4705 ConditionalExpression: javascript.WrapConditional(javascript.ObjectLiteral{}), 4706 }, 4707 }, 4708 }).LogicalORExpression, 4709 LogicalANDExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4710 IdentifierReference: makeToken(javascript.TokenIdentifier, "a"), 4711 }).LogicalORExpression.LogicalANDExpression, 4712 }), 4713 }, 4714 }, 4715 }, 4716 }, 4717 }, 4718 }, 4719 }, 4720 }, 4721 { // 136 4722 []Option{UnwrapParens}, 4723 &javascript.ArrowFunction{ 4724 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 4725 AssignmentExpression: &javascript.AssignmentExpression{ 4726 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4727 Expressions: []javascript.AssignmentExpression{ 4728 { 4729 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4730 ObjectLiteral: &javascript.ObjectLiteral{}, 4731 }), 4732 }, 4733 }, 4734 }), 4735 }, 4736 }, 4737 &javascript.ArrowFunction{ 4738 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 4739 AssignmentExpression: &javascript.AssignmentExpression{ 4740 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 4741 Expressions: []javascript.AssignmentExpression{ 4742 { 4743 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4744 ObjectLiteral: &javascript.ObjectLiteral{}, 4745 }), 4746 }, 4747 }, 4748 }), 4749 }, 4750 }, 4751 }, 4752 { // 137 4753 []Option{RemoveLastEmptyReturn}, 4754 &javascript.ArrowFunction{ 4755 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 4756 FunctionBody: &javascript.Block{ 4757 StatementList: []javascript.StatementListItem{ 4758 { 4759 Statement: &javascript.Statement{ 4760 Type: javascript.StatementReturn, 4761 }, 4762 }, 4763 }, 4764 }, 4765 }, 4766 &javascript.ArrowFunction{ 4767 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 4768 FunctionBody: &javascript.Block{ 4769 StatementList: []javascript.StatementListItem{}, 4770 }, 4771 }, 4772 }, 4773 { // 138 4774 []Option{Literals}, 4775 &javascript.PrimaryExpression{ 4776 TemplateLiteral: &javascript.TemplateLiteral{ 4777 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "`\\${`"), 4778 }, 4779 }, 4780 &javascript.PrimaryExpression{ 4781 Literal: makeToken(javascript.TokenStringLiteral, "\"${\""), 4782 }, 4783 }, 4784 { // 139 4785 []Option{Literals}, 4786 &javascript.TemplateLiteral{}, 4787 &javascript.TemplateLiteral{}, 4788 }, 4789 { // 140 4790 []Option{Literals}, 4791 &javascript.TemplateLiteral{ 4792 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "``"), 4793 }, 4794 &javascript.TemplateLiteral{ 4795 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "``"), 4796 }, 4797 }, 4798 { // 141 4799 []Option{Literals}, 4800 &javascript.TemplateLiteral{ 4801 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "`abc`"), 4802 }, 4803 &javascript.TemplateLiteral{ 4804 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "`abc`"), 4805 }, 4806 }, 4807 { // 142 4808 []Option{Literals}, 4809 &javascript.TemplateLiteral{ 4810 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "`\\n`"), 4811 }, 4812 &javascript.TemplateLiteral{ 4813 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "`\n`"), 4814 }, 4815 }, 4816 { // 143 4817 []Option{Literals}, 4818 &javascript.TemplateLiteral{ 4819 TemplateHead: makeToken(javascript.TokenTemplateHead, "`\\n${"), 4820 TemplateMiddleList: []*javascript.Token{ 4821 makeToken(javascript.TokenTemplateMiddle, "}\\n${"), 4822 makeToken(javascript.TokenTemplateMiddle, "}\\n${"), 4823 }, 4824 TemplateTail: makeToken(javascript.TokenTemplateTail, "}\\n`"), 4825 }, 4826 &javascript.TemplateLiteral{ 4827 TemplateHead: makeToken(javascript.TokenTemplateHead, "`\n${"), 4828 TemplateMiddleList: []*javascript.Token{ 4829 makeToken(javascript.TokenTemplateMiddle, "}\n${"), 4830 makeToken(javascript.TokenTemplateMiddle, "}\n${"), 4831 }, 4832 TemplateTail: makeToken(javascript.TokenTemplateTail, "}\n`"), 4833 }, 4834 }, 4835 { // 144 4836 []Option{Literals}, 4837 &javascript.PrimaryExpression{ 4838 Literal: makeToken(javascript.TokenStringLiteral, "\"\""), 4839 }, 4840 &javascript.PrimaryExpression{ 4841 Literal: makeToken(javascript.TokenStringLiteral, "\"\""), 4842 }, 4843 }, 4844 { // 145 4845 []Option{Literals}, 4846 &javascript.PrimaryExpression{ 4847 Literal: makeToken(javascript.TokenStringLiteral, "\"abc\""), 4848 }, 4849 &javascript.PrimaryExpression{ 4850 Literal: makeToken(javascript.TokenStringLiteral, "\"abc\""), 4851 }, 4852 }, 4853 { // 146 4854 []Option{Literals}, 4855 &javascript.PrimaryExpression{ 4856 Literal: makeToken(javascript.TokenStringLiteral, "\"\\n\""), 4857 }, 4858 &javascript.PrimaryExpression{ 4859 TemplateLiteral: &javascript.TemplateLiteral{ 4860 NoSubstitutionTemplate: makeToken(javascript.TokenNoSubstitutionTemplate, "`\n`"), 4861 }, 4862 }, 4863 }, 4864 { // 147 4865 []Option{RemoveDeadCode}, 4866 &javascript.Block{}, 4867 &javascript.Block{}, 4868 }, 4869 { // 148 4870 []Option{RemoveDeadCode}, 4871 &javascript.Block{ 4872 StatementList: []javascript.StatementListItem{ 4873 { 4874 Statement: &javascript.Statement{ 4875 Type: javascript.StatementDebugger, 4876 }, 4877 }, 4878 { 4879 Statement: &javascript.Statement{ 4880 Type: javascript.StatementReturn, 4881 }, 4882 }, 4883 }, 4884 }, 4885 &javascript.Block{ 4886 StatementList: []javascript.StatementListItem{ 4887 { 4888 Statement: &javascript.Statement{ 4889 Type: javascript.StatementDebugger, 4890 }, 4891 }, 4892 { 4893 Statement: &javascript.Statement{ 4894 Type: javascript.StatementReturn, 4895 }, 4896 }, 4897 }, 4898 }, 4899 }, 4900 { // 149 4901 []Option{RemoveDeadCode}, 4902 &javascript.Block{ 4903 StatementList: []javascript.StatementListItem{ 4904 { 4905 Statement: &javascript.Statement{ 4906 Type: javascript.StatementReturn, 4907 }, 4908 }, 4909 { 4910 Statement: &javascript.Statement{ 4911 Type: javascript.StatementDebugger, 4912 }, 4913 }, 4914 }, 4915 }, 4916 &javascript.Block{ 4917 StatementList: []javascript.StatementListItem{ 4918 { 4919 Statement: &javascript.Statement{ 4920 Type: javascript.StatementReturn, 4921 }, 4922 }, 4923 }, 4924 }, 4925 }, 4926 { // 150 4927 []Option{RemoveDeadCode}, 4928 &javascript.Block{ 4929 StatementList: []javascript.StatementListItem{ 4930 { 4931 Statement: &javascript.Statement{ 4932 Type: javascript.StatementDebugger, 4933 }, 4934 }, 4935 { 4936 Statement: &javascript.Statement{ 4937 Type: javascript.StatementReturn, 4938 }, 4939 }, 4940 { 4941 Statement: &javascript.Statement{ 4942 Type: javascript.StatementDebugger, 4943 }, 4944 }, 4945 }, 4946 }, 4947 &javascript.Block{ 4948 StatementList: []javascript.StatementListItem{ 4949 { 4950 Statement: &javascript.Statement{ 4951 Type: javascript.StatementDebugger, 4952 }, 4953 }, 4954 { 4955 Statement: &javascript.Statement{ 4956 Type: javascript.StatementReturn, 4957 }, 4958 }, 4959 }, 4960 }, 4961 }, 4962 { // 151 4963 []Option{RemoveDeadCode}, 4964 &javascript.Block{ 4965 StatementList: []javascript.StatementListItem{ 4966 { 4967 Statement: &javascript.Statement{ 4968 Type: javascript.StatementDebugger, 4969 }, 4970 }, 4971 { 4972 Statement: &javascript.Statement{ 4973 Type: javascript.StatementReturn, 4974 }, 4975 }, 4976 { 4977 Statement: &javascript.Statement{ 4978 Type: javascript.StatementDebugger, 4979 }, 4980 }, 4981 { 4982 Statement: &javascript.Statement{ 4983 VariableStatement: &javascript.VariableStatement{ 4984 VariableDeclarationList: []javascript.VariableDeclaration{ 4985 { 4986 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 4987 Initializer: &javascript.AssignmentExpression{ 4988 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 4989 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 4990 }), 4991 }, 4992 }, 4993 }, 4994 }, 4995 }, 4996 }, 4997 { 4998 Statement: &javascript.Statement{ 4999 Type: javascript.StatementDebugger, 5000 }, 5001 }, 5002 }, 5003 }, 5004 &javascript.Block{ 5005 StatementList: []javascript.StatementListItem{ 5006 { 5007 Statement: &javascript.Statement{ 5008 Type: javascript.StatementDebugger, 5009 }, 5010 }, 5011 { 5012 Statement: &javascript.Statement{ 5013 Type: javascript.StatementReturn, 5014 }, 5015 }, 5016 { 5017 Statement: &javascript.Statement{ 5018 VariableStatement: &javascript.VariableStatement{ 5019 VariableDeclarationList: []javascript.VariableDeclaration{ 5020 { 5021 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5022 Initializer: &javascript.AssignmentExpression{ 5023 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5024 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 5025 }), 5026 }, 5027 }, 5028 }, 5029 }, 5030 }, 5031 }, 5032 }, 5033 }, 5034 }, 5035 { // 152 5036 []Option{MergeLexical}, 5037 &javascript.Module{}, 5038 &javascript.Module{}, 5039 }, 5040 { // 153 5041 []Option{MergeLexical}, 5042 &javascript.Module{ 5043 ModuleListItems: []javascript.ModuleItem{ 5044 { 5045 StatementListItem: &javascript.StatementListItem{ 5046 Declaration: &javascript.Declaration{ 5047 LexicalDeclaration: &javascript.LexicalDeclaration{ 5048 LetOrConst: javascript.Const, 5049 BindingList: []javascript.LexicalBinding{ 5050 { 5051 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5052 }, 5053 { 5054 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5055 }, 5056 }, 5057 }, 5058 }, 5059 }, 5060 }, 5061 { 5062 StatementListItem: &javascript.StatementListItem{ 5063 Declaration: &javascript.Declaration{ 5064 LexicalDeclaration: &javascript.LexicalDeclaration{ 5065 LetOrConst: javascript.Const, 5066 BindingList: []javascript.LexicalBinding{ 5067 { 5068 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5069 }, 5070 { 5071 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5072 }, 5073 }, 5074 }, 5075 }, 5076 }, 5077 }, 5078 }, 5079 }, 5080 &javascript.Module{ 5081 ModuleListItems: []javascript.ModuleItem{ 5082 { 5083 StatementListItem: &javascript.StatementListItem{ 5084 Declaration: &javascript.Declaration{ 5085 LexicalDeclaration: &javascript.LexicalDeclaration{ 5086 LetOrConst: javascript.Const, 5087 BindingList: []javascript.LexicalBinding{ 5088 { 5089 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5090 }, 5091 { 5092 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5093 }, 5094 { 5095 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5096 }, 5097 { 5098 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5099 }, 5100 }, 5101 }, 5102 }, 5103 }, 5104 }, 5105 }, 5106 }, 5107 }, 5108 { // 154 5109 []Option{MergeLexical}, 5110 &javascript.Module{ 5111 ModuleListItems: []javascript.ModuleItem{ 5112 { 5113 StatementListItem: &javascript.StatementListItem{ 5114 Declaration: &javascript.Declaration{ 5115 LexicalDeclaration: &javascript.LexicalDeclaration{ 5116 LetOrConst: javascript.Let, 5117 BindingList: []javascript.LexicalBinding{ 5118 { 5119 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5120 }, 5121 { 5122 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5123 }, 5124 }, 5125 }, 5126 }, 5127 }, 5128 }, 5129 { 5130 StatementListItem: &javascript.StatementListItem{ 5131 Declaration: &javascript.Declaration{ 5132 LexicalDeclaration: &javascript.LexicalDeclaration{ 5133 LetOrConst: javascript.Let, 5134 BindingList: []javascript.LexicalBinding{ 5135 { 5136 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5137 }, 5138 { 5139 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5140 }, 5141 }, 5142 }, 5143 }, 5144 }, 5145 }, 5146 }, 5147 }, 5148 &javascript.Module{ 5149 ModuleListItems: []javascript.ModuleItem{ 5150 { 5151 StatementListItem: &javascript.StatementListItem{ 5152 Declaration: &javascript.Declaration{ 5153 LexicalDeclaration: &javascript.LexicalDeclaration{ 5154 LetOrConst: javascript.Let, 5155 BindingList: []javascript.LexicalBinding{ 5156 { 5157 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5158 }, 5159 { 5160 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5161 }, 5162 { 5163 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5164 }, 5165 { 5166 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5167 }, 5168 }, 5169 }, 5170 }, 5171 }, 5172 }, 5173 }, 5174 }, 5175 }, 5176 { // 155 5177 []Option{MergeLexical}, 5178 &javascript.Module{ 5179 ModuleListItems: []javascript.ModuleItem{ 5180 { 5181 StatementListItem: &javascript.StatementListItem{ 5182 Declaration: &javascript.Declaration{ 5183 LexicalDeclaration: &javascript.LexicalDeclaration{ 5184 LetOrConst: javascript.Const, 5185 BindingList: []javascript.LexicalBinding{ 5186 { 5187 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5188 }, 5189 { 5190 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5191 }, 5192 }, 5193 }, 5194 }, 5195 }, 5196 }, 5197 { 5198 StatementListItem: &javascript.StatementListItem{ 5199 Declaration: &javascript.Declaration{ 5200 FunctionDeclaration: &javascript.FunctionDeclaration{ 5201 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5202 }, 5203 }, 5204 }, 5205 }, 5206 { 5207 StatementListItem: &javascript.StatementListItem{ 5208 Declaration: &javascript.Declaration{ 5209 LexicalDeclaration: &javascript.LexicalDeclaration{ 5210 LetOrConst: javascript.Const, 5211 BindingList: []javascript.LexicalBinding{ 5212 { 5213 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5214 }, 5215 { 5216 BindingIdentifier: makeToken(javascript.TokenIdentifier, "e"), 5217 }, 5218 }, 5219 }, 5220 }, 5221 }, 5222 }, 5223 }, 5224 }, 5225 &javascript.Module{ 5226 ModuleListItems: []javascript.ModuleItem{ 5227 { 5228 StatementListItem: &javascript.StatementListItem{ 5229 Declaration: &javascript.Declaration{ 5230 LexicalDeclaration: &javascript.LexicalDeclaration{ 5231 LetOrConst: javascript.Const, 5232 BindingList: []javascript.LexicalBinding{ 5233 { 5234 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5235 }, 5236 { 5237 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5238 }, 5239 }, 5240 }, 5241 }, 5242 }, 5243 }, 5244 { 5245 StatementListItem: &javascript.StatementListItem{ 5246 Declaration: &javascript.Declaration{ 5247 FunctionDeclaration: &javascript.FunctionDeclaration{ 5248 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5249 }, 5250 }, 5251 }, 5252 }, 5253 { 5254 StatementListItem: &javascript.StatementListItem{ 5255 Declaration: &javascript.Declaration{ 5256 LexicalDeclaration: &javascript.LexicalDeclaration{ 5257 LetOrConst: javascript.Const, 5258 BindingList: []javascript.LexicalBinding{ 5259 { 5260 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5261 }, 5262 { 5263 BindingIdentifier: makeToken(javascript.TokenIdentifier, "e"), 5264 }, 5265 }, 5266 }, 5267 }, 5268 }, 5269 }, 5270 }, 5271 }, 5272 }, 5273 { // 156 5274 []Option{MergeLexical}, 5275 &javascript.Module{ 5276 ModuleListItems: []javascript.ModuleItem{ 5277 { 5278 StatementListItem: &javascript.StatementListItem{ 5279 Statement: &javascript.Statement{ 5280 VariableStatement: &javascript.VariableStatement{ 5281 VariableDeclarationList: []javascript.LexicalBinding{ 5282 { 5283 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5284 }, 5285 { 5286 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5287 }, 5288 }, 5289 }, 5290 }, 5291 }, 5292 }, 5293 { 5294 StatementListItem: &javascript.StatementListItem{ 5295 Statement: &javascript.Statement{ 5296 VariableStatement: &javascript.VariableStatement{ 5297 VariableDeclarationList: []javascript.LexicalBinding{ 5298 { 5299 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5300 }, 5301 { 5302 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5303 }, 5304 }, 5305 }, 5306 }, 5307 }, 5308 }, 5309 }, 5310 }, 5311 &javascript.Module{ 5312 ModuleListItems: []javascript.ModuleItem{ 5313 { 5314 StatementListItem: &javascript.StatementListItem{ 5315 Statement: &javascript.Statement{ 5316 VariableStatement: &javascript.VariableStatement{ 5317 VariableDeclarationList: []javascript.LexicalBinding{ 5318 { 5319 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5320 }, 5321 { 5322 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5323 }, 5324 { 5325 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5326 }, 5327 { 5328 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5329 }, 5330 }, 5331 }, 5332 }, 5333 }, 5334 }, 5335 }, 5336 }, 5337 }, 5338 { // 157 5339 []Option{MergeLexical}, 5340 &javascript.Module{ 5341 ModuleListItems: []javascript.ModuleItem{ 5342 { 5343 StatementListItem: &javascript.StatementListItem{ 5344 Statement: &javascript.Statement{ 5345 VariableStatement: &javascript.VariableStatement{ 5346 VariableDeclarationList: []javascript.LexicalBinding{ 5347 { 5348 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5349 }, 5350 { 5351 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5352 }, 5353 }, 5354 }, 5355 }, 5356 }, 5357 }, 5358 { 5359 StatementListItem: &javascript.StatementListItem{ 5360 Statement: &javascript.Statement{ 5361 VariableStatement: &javascript.VariableStatement{ 5362 VariableDeclarationList: []javascript.LexicalBinding{ 5363 { 5364 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5365 }, 5366 { 5367 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5368 }, 5369 }, 5370 }, 5371 }, 5372 }, 5373 }, 5374 { 5375 StatementListItem: &javascript.StatementListItem{ 5376 Statement: &javascript.Statement{ 5377 VariableStatement: &javascript.VariableStatement{ 5378 VariableDeclarationList: []javascript.LexicalBinding{ 5379 { 5380 BindingIdentifier: makeToken(javascript.TokenIdentifier, "e"), 5381 }, 5382 }, 5383 }, 5384 }, 5385 }, 5386 }, 5387 }, 5388 }, 5389 &javascript.Module{ 5390 ModuleListItems: []javascript.ModuleItem{ 5391 { 5392 StatementListItem: &javascript.StatementListItem{ 5393 Statement: &javascript.Statement{ 5394 VariableStatement: &javascript.VariableStatement{ 5395 VariableDeclarationList: []javascript.LexicalBinding{ 5396 { 5397 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5398 }, 5399 { 5400 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5401 }, 5402 { 5403 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5404 }, 5405 { 5406 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5407 }, 5408 { 5409 BindingIdentifier: makeToken(javascript.TokenIdentifier, "e"), 5410 }, 5411 }, 5412 }, 5413 }, 5414 }, 5415 }, 5416 }, 5417 }, 5418 }, 5419 { // 158 5420 []Option{MergeLexical}, 5421 &javascript.Block{}, 5422 &javascript.Block{}, 5423 }, 5424 { // 159 5425 []Option{MergeLexical}, 5426 &javascript.Block{ 5427 StatementList: []javascript.StatementListItem{ 5428 { 5429 Declaration: &javascript.Declaration{ 5430 LexicalDeclaration: &javascript.LexicalDeclaration{ 5431 LetOrConst: javascript.Const, 5432 BindingList: []javascript.LexicalBinding{ 5433 { 5434 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5435 }, 5436 { 5437 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5438 }, 5439 }, 5440 }, 5441 }, 5442 }, 5443 { 5444 Declaration: &javascript.Declaration{ 5445 LexicalDeclaration: &javascript.LexicalDeclaration{ 5446 LetOrConst: javascript.Const, 5447 BindingList: []javascript.LexicalBinding{ 5448 { 5449 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5450 }, 5451 { 5452 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5453 }, 5454 }, 5455 }, 5456 }, 5457 }, 5458 }, 5459 }, 5460 &javascript.Block{ 5461 StatementList: []javascript.StatementListItem{ 5462 { 5463 Declaration: &javascript.Declaration{ 5464 LexicalDeclaration: &javascript.LexicalDeclaration{ 5465 LetOrConst: javascript.Const, 5466 BindingList: []javascript.LexicalBinding{ 5467 { 5468 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5469 }, 5470 { 5471 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5472 }, 5473 { 5474 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5475 }, 5476 { 5477 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5478 }, 5479 }, 5480 }, 5481 }, 5482 }, 5483 }, 5484 }, 5485 }, 5486 { // 160 5487 []Option{MergeLexical}, 5488 &javascript.Block{ 5489 StatementList: []javascript.StatementListItem{ 5490 { 5491 Declaration: &javascript.Declaration{ 5492 LexicalDeclaration: &javascript.LexicalDeclaration{ 5493 LetOrConst: javascript.Let, 5494 BindingList: []javascript.LexicalBinding{ 5495 { 5496 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5497 }, 5498 { 5499 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5500 }, 5501 }, 5502 }, 5503 }, 5504 }, 5505 { 5506 Declaration: &javascript.Declaration{ 5507 LexicalDeclaration: &javascript.LexicalDeclaration{ 5508 LetOrConst: javascript.Let, 5509 BindingList: []javascript.LexicalBinding{ 5510 { 5511 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5512 }, 5513 { 5514 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5515 }, 5516 }, 5517 }, 5518 }, 5519 }, 5520 }, 5521 }, 5522 &javascript.Block{ 5523 StatementList: []javascript.StatementListItem{ 5524 { 5525 Declaration: &javascript.Declaration{ 5526 LexicalDeclaration: &javascript.LexicalDeclaration{ 5527 LetOrConst: javascript.Let, 5528 BindingList: []javascript.LexicalBinding{ 5529 { 5530 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5531 }, 5532 { 5533 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5534 }, 5535 { 5536 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5537 }, 5538 { 5539 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5540 }, 5541 }, 5542 }, 5543 }, 5544 }, 5545 }, 5546 }, 5547 }, 5548 { // 161 5549 []Option{MergeLexical}, 5550 &javascript.Block{ 5551 StatementList: []javascript.StatementListItem{ 5552 { 5553 Declaration: &javascript.Declaration{ 5554 LexicalDeclaration: &javascript.LexicalDeclaration{ 5555 LetOrConst: javascript.Const, 5556 BindingList: []javascript.LexicalBinding{ 5557 { 5558 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5559 }, 5560 { 5561 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5562 }, 5563 }, 5564 }, 5565 }, 5566 }, 5567 { 5568 Declaration: &javascript.Declaration{ 5569 FunctionDeclaration: &javascript.FunctionDeclaration{ 5570 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5571 }, 5572 }, 5573 }, 5574 { 5575 Declaration: &javascript.Declaration{ 5576 LexicalDeclaration: &javascript.LexicalDeclaration{ 5577 LetOrConst: javascript.Const, 5578 BindingList: []javascript.LexicalBinding{ 5579 { 5580 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5581 }, 5582 { 5583 BindingIdentifier: makeToken(javascript.TokenIdentifier, "e"), 5584 }, 5585 }, 5586 }, 5587 }, 5588 }, 5589 }, 5590 }, 5591 &javascript.Block{ 5592 StatementList: []javascript.StatementListItem{ 5593 { 5594 Declaration: &javascript.Declaration{ 5595 LexicalDeclaration: &javascript.LexicalDeclaration{ 5596 LetOrConst: javascript.Const, 5597 BindingList: []javascript.LexicalBinding{ 5598 { 5599 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5600 }, 5601 { 5602 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5603 }, 5604 }, 5605 }, 5606 }, 5607 }, 5608 { 5609 Declaration: &javascript.Declaration{ 5610 FunctionDeclaration: &javascript.FunctionDeclaration{ 5611 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5612 }, 5613 }, 5614 }, 5615 { 5616 Declaration: &javascript.Declaration{ 5617 LexicalDeclaration: &javascript.LexicalDeclaration{ 5618 LetOrConst: javascript.Const, 5619 BindingList: []javascript.LexicalBinding{ 5620 { 5621 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5622 }, 5623 { 5624 BindingIdentifier: makeToken(javascript.TokenIdentifier, "e"), 5625 }, 5626 }, 5627 }, 5628 }, 5629 }, 5630 }, 5631 }, 5632 }, 5633 { // 162 5634 []Option{MergeLexical}, 5635 &javascript.Block{ 5636 StatementList: []javascript.StatementListItem{ 5637 { 5638 Statement: &javascript.Statement{ 5639 VariableStatement: &javascript.VariableStatement{ 5640 VariableDeclarationList: []javascript.LexicalBinding{ 5641 { 5642 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5643 }, 5644 { 5645 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5646 }, 5647 }, 5648 }, 5649 }, 5650 }, 5651 { 5652 Statement: &javascript.Statement{ 5653 VariableStatement: &javascript.VariableStatement{ 5654 VariableDeclarationList: []javascript.LexicalBinding{ 5655 { 5656 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5657 }, 5658 { 5659 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5660 }, 5661 }, 5662 }, 5663 }, 5664 }, 5665 }, 5666 }, 5667 &javascript.Block{ 5668 StatementList: []javascript.StatementListItem{ 5669 { 5670 Statement: &javascript.Statement{ 5671 VariableStatement: &javascript.VariableStatement{ 5672 VariableDeclarationList: []javascript.LexicalBinding{ 5673 { 5674 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5675 }, 5676 { 5677 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5678 }, 5679 { 5680 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5681 }, 5682 { 5683 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5684 }, 5685 }, 5686 }, 5687 }, 5688 }, 5689 }, 5690 }, 5691 }, 5692 { // 163 5693 []Option{MergeLexical}, 5694 &javascript.Block{ 5695 StatementList: []javascript.StatementListItem{ 5696 { 5697 Statement: &javascript.Statement{ 5698 VariableStatement: &javascript.VariableStatement{ 5699 VariableDeclarationList: []javascript.LexicalBinding{ 5700 { 5701 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5702 }, 5703 { 5704 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5705 }, 5706 }, 5707 }, 5708 }, 5709 }, 5710 { 5711 Statement: &javascript.Statement{ 5712 VariableStatement: &javascript.VariableStatement{ 5713 VariableDeclarationList: []javascript.LexicalBinding{ 5714 { 5715 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5716 }, 5717 { 5718 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5719 }, 5720 }, 5721 }, 5722 }, 5723 }, 5724 { 5725 Statement: &javascript.Statement{ 5726 VariableStatement: &javascript.VariableStatement{ 5727 VariableDeclarationList: []javascript.LexicalBinding{ 5728 { 5729 BindingIdentifier: makeToken(javascript.TokenIdentifier, "e"), 5730 }, 5731 }, 5732 }, 5733 }, 5734 }, 5735 }, 5736 }, 5737 &javascript.Block{ 5738 StatementList: []javascript.StatementListItem{ 5739 { 5740 Statement: &javascript.Statement{ 5741 VariableStatement: &javascript.VariableStatement{ 5742 VariableDeclarationList: []javascript.LexicalBinding{ 5743 { 5744 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5745 }, 5746 { 5747 BindingIdentifier: makeToken(javascript.TokenIdentifier, "b"), 5748 }, 5749 { 5750 BindingIdentifier: makeToken(javascript.TokenIdentifier, "c"), 5751 }, 5752 { 5753 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5754 }, 5755 { 5756 BindingIdentifier: makeToken(javascript.TokenIdentifier, "e"), 5757 }, 5758 }, 5759 }, 5760 }, 5761 }, 5762 }, 5763 }, 5764 }, 5765 { // 164 5766 []Option{CombineExpressionRuns, MergeLexical}, 5767 &javascript.Module{}, 5768 &javascript.Module{}, 5769 }, 5770 { // 165 5771 []Option{CombineExpressionRuns, MergeLexical}, 5772 &javascript.Module{ 5773 ModuleListItems: []javascript.ModuleItem{ 5774 { 5775 StatementListItem: &javascript.StatementListItem{ 5776 Declaration: &javascript.Declaration{ 5777 LexicalDeclaration: &javascript.LexicalDeclaration{ 5778 BindingList: []javascript.LexicalBinding{ 5779 { 5780 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5781 Initializer: &javascript.AssignmentExpression{ 5782 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5783 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 5784 }), 5785 }, 5786 }, 5787 }, 5788 }, 5789 }, 5790 }, 5791 }, 5792 { 5793 StatementListItem: &javascript.StatementListItem{ 5794 Statement: &javascript.Statement{ 5795 ExpressionStatement: &javascript.Expression{ 5796 Expressions: []javascript.AssignmentExpression{ 5797 { 5798 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5799 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 5800 }), 5801 }, 5802 }, 5803 }, 5804 }, 5805 }, 5806 }, 5807 { 5808 StatementListItem: &javascript.StatementListItem{ 5809 Declaration: &javascript.Declaration{ 5810 LexicalDeclaration: &javascript.LexicalDeclaration{ 5811 BindingList: []javascript.LexicalBinding{ 5812 { 5813 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5814 Initializer: &javascript.AssignmentExpression{ 5815 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 5816 MemberExpression: &javascript.MemberExpression{ 5817 PrimaryExpression: &javascript.PrimaryExpression{ 5818 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 5819 }, 5820 }, 5821 Arguments: &javascript.Arguments{}, 5822 }), 5823 }, 5824 }, 5825 }, 5826 }, 5827 }, 5828 }, 5829 }, 5830 }, 5831 }, 5832 &javascript.Module{ 5833 ModuleListItems: []javascript.ModuleItem{ 5834 { 5835 StatementListItem: &javascript.StatementListItem{ 5836 Declaration: &javascript.Declaration{ 5837 LexicalDeclaration: &javascript.LexicalDeclaration{ 5838 BindingList: []javascript.LexicalBinding{ 5839 { 5840 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5841 Initializer: &javascript.AssignmentExpression{ 5842 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5843 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 5844 }), 5845 }, 5846 }, 5847 { 5848 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5849 Initializer: &javascript.AssignmentExpression{ 5850 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 5851 Expressions: []javascript.AssignmentExpression{ 5852 { 5853 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5854 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 5855 }), 5856 }, 5857 { 5858 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 5859 MemberExpression: &javascript.MemberExpression{ 5860 PrimaryExpression: &javascript.PrimaryExpression{ 5861 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 5862 }, 5863 }, 5864 Arguments: &javascript.Arguments{}, 5865 }), 5866 }, 5867 }, 5868 }), 5869 }, 5870 }, 5871 }, 5872 }, 5873 }, 5874 }, 5875 }, 5876 }, 5877 }, 5878 }, 5879 { // 166 5880 []Option{CombineExpressionRuns, MergeLexical}, 5881 &javascript.Module{ 5882 ModuleListItems: []javascript.ModuleItem{ 5883 { 5884 StatementListItem: &javascript.StatementListItem{ 5885 Declaration: &javascript.Declaration{ 5886 LexicalDeclaration: &javascript.LexicalDeclaration{ 5887 BindingList: []javascript.LexicalBinding{ 5888 { 5889 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5890 Initializer: &javascript.AssignmentExpression{ 5891 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5892 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 5893 }), 5894 }, 5895 }, 5896 }, 5897 }, 5898 }, 5899 }, 5900 }, 5901 { 5902 StatementListItem: &javascript.StatementListItem{ 5903 Statement: &javascript.Statement{ 5904 ExpressionStatement: &javascript.Expression{ 5905 Expressions: []javascript.AssignmentExpression{ 5906 { 5907 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5908 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 5909 }), 5910 }, 5911 }, 5912 }, 5913 }, 5914 }, 5915 }, 5916 { 5917 StatementListItem: &javascript.StatementListItem{ 5918 Declaration: &javascript.Declaration{ 5919 LexicalDeclaration: &javascript.LexicalDeclaration{ 5920 BindingList: []javascript.LexicalBinding{ 5921 { 5922 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5923 Initializer: &javascript.AssignmentExpression{ 5924 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5925 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 5926 }), 5927 }, 5928 }, 5929 }, 5930 }, 5931 }, 5932 }, 5933 }, 5934 }, 5935 }, 5936 &javascript.Module{ 5937 ModuleListItems: []javascript.ModuleItem{ 5938 { 5939 StatementListItem: &javascript.StatementListItem{ 5940 Declaration: &javascript.Declaration{ 5941 LexicalDeclaration: &javascript.LexicalDeclaration{ 5942 BindingList: []javascript.LexicalBinding{ 5943 { 5944 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5945 Initializer: &javascript.AssignmentExpression{ 5946 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5947 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 5948 }), 5949 }, 5950 }, 5951 { 5952 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 5953 Initializer: &javascript.AssignmentExpression{ 5954 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5955 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 5956 }), 5957 }, 5958 }, 5959 }, 5960 }, 5961 }, 5962 }, 5963 }, 5964 { 5965 StatementListItem: &javascript.StatementListItem{ 5966 Statement: &javascript.Statement{ 5967 ExpressionStatement: &javascript.Expression{ 5968 Expressions: []javascript.AssignmentExpression{ 5969 { 5970 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5971 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 5972 }), 5973 }, 5974 }, 5975 }, 5976 }, 5977 }, 5978 }, 5979 }, 5980 }, 5981 }, 5982 { // 167 5983 []Option{CombineExpressionRuns, MergeLexical}, 5984 &javascript.Block{}, 5985 &javascript.Block{}, 5986 }, 5987 { // 168 5988 []Option{CombineExpressionRuns, MergeLexical}, 5989 &javascript.Block{ 5990 StatementList: []javascript.StatementListItem{ 5991 { 5992 Declaration: &javascript.Declaration{ 5993 LexicalDeclaration: &javascript.LexicalDeclaration{ 5994 BindingList: []javascript.LexicalBinding{ 5995 { 5996 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 5997 Initializer: &javascript.AssignmentExpression{ 5998 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 5999 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 6000 }), 6001 }, 6002 }, 6003 }, 6004 }, 6005 }, 6006 }, 6007 { 6008 Statement: &javascript.Statement{ 6009 ExpressionStatement: &javascript.Expression{ 6010 Expressions: []javascript.AssignmentExpression{ 6011 { 6012 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 6013 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 6014 }), 6015 }, 6016 }, 6017 }, 6018 }, 6019 }, 6020 { 6021 Declaration: &javascript.Declaration{ 6022 LexicalDeclaration: &javascript.LexicalDeclaration{ 6023 BindingList: []javascript.LexicalBinding{ 6024 { 6025 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 6026 Initializer: &javascript.AssignmentExpression{ 6027 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 6028 MemberExpression: &javascript.MemberExpression{ 6029 PrimaryExpression: &javascript.PrimaryExpression{ 6030 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 6031 }, 6032 }, 6033 Arguments: &javascript.Arguments{}, 6034 }), 6035 }, 6036 }, 6037 }, 6038 }, 6039 }, 6040 }, 6041 }, 6042 }, 6043 &javascript.Block{ 6044 StatementList: []javascript.StatementListItem{ 6045 { 6046 Declaration: &javascript.Declaration{ 6047 LexicalDeclaration: &javascript.LexicalDeclaration{ 6048 BindingList: []javascript.LexicalBinding{ 6049 { 6050 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 6051 Initializer: &javascript.AssignmentExpression{ 6052 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 6053 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 6054 }), 6055 }, 6056 }, 6057 { 6058 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 6059 Initializer: &javascript.AssignmentExpression{ 6060 ConditionalExpression: javascript.WrapConditional(&javascript.ParenthesizedExpression{ 6061 Expressions: []javascript.AssignmentExpression{ 6062 { 6063 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 6064 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 6065 }), 6066 }, 6067 { 6068 ConditionalExpression: javascript.WrapConditional(&javascript.CallExpression{ 6069 MemberExpression: &javascript.MemberExpression{ 6070 PrimaryExpression: &javascript.PrimaryExpression{ 6071 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 6072 }, 6073 }, 6074 Arguments: &javascript.Arguments{}, 6075 }), 6076 }, 6077 }, 6078 }), 6079 }, 6080 }, 6081 }, 6082 }, 6083 }, 6084 }, 6085 }, 6086 }, 6087 }, 6088 { // 169 6089 []Option{CombineExpressionRuns, MergeLexical}, 6090 &javascript.Block{ 6091 StatementList: []javascript.StatementListItem{ 6092 { 6093 Declaration: &javascript.Declaration{ 6094 LexicalDeclaration: &javascript.LexicalDeclaration{ 6095 BindingList: []javascript.LexicalBinding{ 6096 { 6097 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 6098 Initializer: &javascript.AssignmentExpression{ 6099 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 6100 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 6101 }), 6102 }, 6103 }, 6104 }, 6105 }, 6106 }, 6107 }, 6108 { 6109 Statement: &javascript.Statement{ 6110 ExpressionStatement: &javascript.Expression{ 6111 Expressions: []javascript.AssignmentExpression{ 6112 { 6113 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 6114 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 6115 }), 6116 }, 6117 }, 6118 }, 6119 }, 6120 }, 6121 { 6122 Declaration: &javascript.Declaration{ 6123 LexicalDeclaration: &javascript.LexicalDeclaration{ 6124 BindingList: []javascript.LexicalBinding{ 6125 { 6126 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 6127 Initializer: &javascript.AssignmentExpression{ 6128 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 6129 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 6130 }), 6131 }, 6132 }, 6133 }, 6134 }, 6135 }, 6136 }, 6137 }, 6138 }, 6139 &javascript.Block{ 6140 StatementList: []javascript.StatementListItem{ 6141 { 6142 Declaration: &javascript.Declaration{ 6143 LexicalDeclaration: &javascript.LexicalDeclaration{ 6144 BindingList: []javascript.LexicalBinding{ 6145 { 6146 BindingIdentifier: makeToken(javascript.TokenIdentifier, "a"), 6147 Initializer: &javascript.AssignmentExpression{ 6148 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 6149 IdentifierReference: makeToken(javascript.TokenIdentifier, "b"), 6150 }), 6151 }, 6152 }, 6153 { 6154 BindingIdentifier: makeToken(javascript.TokenIdentifier, "d"), 6155 Initializer: &javascript.AssignmentExpression{ 6156 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 6157 IdentifierReference: makeToken(javascript.TokenIdentifier, "e"), 6158 }), 6159 }, 6160 }, 6161 }, 6162 }, 6163 }, 6164 }, 6165 { 6166 Statement: &javascript.Statement{ 6167 ExpressionStatement: &javascript.Expression{ 6168 Expressions: []javascript.AssignmentExpression{ 6169 { 6170 ConditionalExpression: javascript.WrapConditional(&javascript.PrimaryExpression{ 6171 IdentifierReference: makeToken(javascript.TokenIdentifier, "c"), 6172 }), 6173 }, 6174 }, 6175 }, 6176 }, 6177 }, 6178 }, 6179 }, 6180 }, 6181 } { 6182 w := processor{Minifier: New(test.Options...)} 6183 w.Handle(test.Input) 6184 6185 if !reflect.DeepEqual(test.Input, test.Output) { 6186 t.Errorf("test %d: expecting \n%+v\n...got...\n%+v", n+1, test.Output, test.Input) 6187 } 6188 } 6189 } 6190 6191 func TestMinify(t *testing.T) { 6192 for n, test := range [...]struct { 6193 Options []Option 6194 Input, Output string 6195 }{ 6196 { 6197 []Option{}, 6198 "", 6199 "", 6200 }, 6201 { 6202 []Option{RenameIdentifiers}, 6203 "const a = 1", 6204 "const _=1", 6205 }, 6206 { 6207 []Option{RemoveDeadCode}, 6208 "const a = 1", 6209 "", 6210 }, 6211 { 6212 []Option{RemoveDeadCode}, 6213 "const a = 1, b = a", 6214 "", 6215 }, 6216 { 6217 []Option{RemoveDeadCode}, 6218 "a(1)", 6219 "a(1)", 6220 }, 6221 { 6222 []Option{RemoveDeadCode}, 6223 "const a = 1, b = c(a)", 6224 "const a=1;c(a)", 6225 }, 6226 { 6227 []Option{RemoveDeadCode, UnwrapParens}, 6228 "const a = (1, 2, 3)", 6229 "", 6230 }, 6231 { 6232 []Option{RemoveDeadCode, UnwrapParens}, 6233 "a((1, 2, 3))", 6234 "a(3)", 6235 }, 6236 { 6237 []Option{RemoveDeadCode, UnwrapParens}, 6238 "a((1, 2, 3))", 6239 "a(3)", 6240 }, 6241 { 6242 []Option{RemoveDeadCode}, 6243 "if (true) 1", 6244 "", 6245 }, 6246 { 6247 []Option{RemoveDeadCode}, 6248 "if (a()) 1", 6249 "a()", 6250 }, 6251 { 6252 []Option{RemoveDeadCode, UnwrapParens}, 6253 "if (a()) 1\nelse b()", 6254 "if(!a())b()", 6255 }, 6256 { 6257 []Option{RemoveDeadCode}, 6258 "while (a()) 1", 6259 "while(a());", 6260 }, 6261 { 6262 []Option{RemoveDeadCode}, 6263 "do 1\nwhile (a())", 6264 "do;while(a())", 6265 }, 6266 } { 6267 tk := parser.NewStringTokeniser(test.Input) 6268 6269 m, err := javascript.ParseModule(&tk) 6270 if err != nil { 6271 t.Errorf("test %d.1: unexpected error: %s", n+1, err) 6272 6273 continue 6274 } 6275 6276 var buf strings.Builder 6277 6278 New(test.Options...).Process(m) 6279 Print(&buf, m) 6280 6281 if output := buf.String(); output != test.Output { 6282 t.Errorf("test %d.2: expecting output %q, got %q", n+1, test.Output, output) 6283 } 6284 } 6285 } 6286