1{ 2 "tests": [ 3 { 4 "description": "<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>", 5 "input": "<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>", 6 "output": [ 7 [ 8 "DOCTYPE", 9 "html", 10 null, 11 null, 12 true 13 ], 14 [ 15 "StartTag", 16 "body", 17 {} 18 ], 19 [ 20 "StartTag", 21 "a", 22 { 23 "href": "#1" 24 } 25 ], 26 [ 27 "StartTag", 28 "nobr", 29 {} 30 ], 31 [ 32 "Character", 33 "1" 34 ], 35 [ 36 "StartTag", 37 "nobr", 38 {} 39 ], 40 [ 41 "EndTag", 42 "a" 43 ], 44 [ 45 "StartTag", 46 "br", 47 {} 48 ], 49 [ 50 "StartTag", 51 "a", 52 { 53 "href": "#2" 54 } 55 ], 56 [ 57 "StartTag", 58 "nobr", 59 {} 60 ], 61 [ 62 "Character", 63 "2" 64 ], 65 [ 66 "StartTag", 67 "nobr", 68 {} 69 ], 70 [ 71 "EndTag", 72 "a" 73 ], 74 [ 75 "StartTag", 76 "br", 77 {} 78 ], 79 [ 80 "StartTag", 81 "a", 82 { 83 "href": "#3" 84 } 85 ], 86 [ 87 "StartTag", 88 "nobr", 89 {} 90 ], 91 [ 92 "Character", 93 "3" 94 ], 95 [ 96 "StartTag", 97 "nobr", 98 {} 99 ], 100 [ 101 "EndTag", 102 "a" 103 ] 104 ] 105 }, 106 { 107 "description": "<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3", 108 "input": "<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3", 109 "output": [ 110 [ 111 "DOCTYPE", 112 "html", 113 null, 114 null, 115 true 116 ], 117 [ 118 "StartTag", 119 "body", 120 {} 121 ], 122 [ 123 "StartTag", 124 "b", 125 {} 126 ], 127 [ 128 "StartTag", 129 "nobr", 130 {} 131 ], 132 [ 133 "Character", 134 "1" 135 ], 136 [ 137 "StartTag", 138 "nobr", 139 {} 140 ], 141 [ 142 "EndTag", 143 "b" 144 ], 145 [ 146 "StartTag", 147 "i", 148 {} 149 ], 150 [ 151 "StartTag", 152 "nobr", 153 {} 154 ], 155 [ 156 "Character", 157 "2" 158 ], 159 [ 160 "StartTag", 161 "nobr", 162 {} 163 ], 164 [ 165 "EndTag", 166 "i" 167 ], 168 [ 169 "Character", 170 "3" 171 ] 172 ] 173 }, 174 { 175 "description": "<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3", 176 "input": "<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3", 177 "output": [ 178 [ 179 "DOCTYPE", 180 "html", 181 null, 182 null, 183 true 184 ], 185 [ 186 "StartTag", 187 "body", 188 {} 189 ], 190 [ 191 "StartTag", 192 "b", 193 {} 194 ], 195 [ 196 "StartTag", 197 "nobr", 198 {} 199 ], 200 [ 201 "Character", 202 "1" 203 ], 204 [ 205 "StartTag", 206 "table", 207 {} 208 ], 209 [ 210 "StartTag", 211 "nobr", 212 {} 213 ], 214 [ 215 "EndTag", 216 "b" 217 ], 218 [ 219 "StartTag", 220 "i", 221 {} 222 ], 223 [ 224 "StartTag", 225 "nobr", 226 {} 227 ], 228 [ 229 "Character", 230 "2" 231 ], 232 [ 233 "StartTag", 234 "nobr", 235 {} 236 ], 237 [ 238 "EndTag", 239 "i" 240 ], 241 [ 242 "Character", 243 "3" 244 ] 245 ] 246 }, 247 { 248 "description": "<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3", 249 "input": "<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3", 250 "output": [ 251 [ 252 "DOCTYPE", 253 "html", 254 null, 255 null, 256 true 257 ], 258 [ 259 "StartTag", 260 "body", 261 {} 262 ], 263 [ 264 "StartTag", 265 "b", 266 {} 267 ], 268 [ 269 "StartTag", 270 "nobr", 271 {} 272 ], 273 [ 274 "Character", 275 "1" 276 ], 277 [ 278 "StartTag", 279 "table", 280 {} 281 ], 282 [ 283 "StartTag", 284 "tr", 285 {} 286 ], 287 [ 288 "StartTag", 289 "td", 290 {} 291 ], 292 [ 293 "StartTag", 294 "nobr", 295 {} 296 ], 297 [ 298 "EndTag", 299 "b" 300 ], 301 [ 302 "StartTag", 303 "i", 304 {} 305 ], 306 [ 307 "StartTag", 308 "nobr", 309 {} 310 ], 311 [ 312 "Character", 313 "2" 314 ], 315 [ 316 "StartTag", 317 "nobr", 318 {} 319 ], 320 [ 321 "EndTag", 322 "i" 323 ], 324 [ 325 "Character", 326 "3" 327 ] 328 ] 329 }, 330 { 331 "description": "<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3", 332 "input": "<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3", 333 "output": [ 334 [ 335 "DOCTYPE", 336 "html", 337 null, 338 null, 339 true 340 ], 341 [ 342 "StartTag", 343 "body", 344 {} 345 ], 346 [ 347 "StartTag", 348 "b", 349 {} 350 ], 351 [ 352 "StartTag", 353 "nobr", 354 {} 355 ], 356 [ 357 "Character", 358 "1" 359 ], 360 [ 361 "StartTag", 362 "div", 363 {} 364 ], 365 [ 366 "StartTag", 367 "nobr", 368 {} 369 ], 370 [ 371 "EndTag", 372 "b" 373 ], 374 [ 375 "StartTag", 376 "i", 377 {} 378 ], 379 [ 380 "StartTag", 381 "nobr", 382 {} 383 ], 384 [ 385 "Character", 386 "2" 387 ], 388 [ 389 "StartTag", 390 "nobr", 391 {} 392 ], 393 [ 394 "EndTag", 395 "i" 396 ], 397 [ 398 "Character", 399 "3" 400 ] 401 ] 402 }, 403 { 404 "description": "<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3", 405 "input": "<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3", 406 "output": [ 407 [ 408 "DOCTYPE", 409 "html", 410 null, 411 null, 412 true 413 ], 414 [ 415 "StartTag", 416 "body", 417 {} 418 ], 419 [ 420 "StartTag", 421 "b", 422 {} 423 ], 424 [ 425 "StartTag", 426 "nobr", 427 {} 428 ], 429 [ 430 "Character", 431 "1" 432 ], 433 [ 434 "StartTag", 435 "nobr", 436 {} 437 ], 438 [ 439 "EndTag", 440 "b" 441 ], 442 [ 443 "StartTag", 444 "div", 445 {} 446 ], 447 [ 448 "StartTag", 449 "i", 450 {} 451 ], 452 [ 453 "StartTag", 454 "nobr", 455 {} 456 ], 457 [ 458 "Character", 459 "2" 460 ], 461 [ 462 "StartTag", 463 "nobr", 464 {} 465 ], 466 [ 467 "EndTag", 468 "i" 469 ], 470 [ 471 "Character", 472 "3" 473 ] 474 ] 475 }, 476 { 477 "description": "<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>", 478 "input": "<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>", 479 "output": [ 480 [ 481 "DOCTYPE", 482 "html", 483 null, 484 null, 485 true 486 ], 487 [ 488 "StartTag", 489 "body", 490 {} 491 ], 492 [ 493 "StartTag", 494 "b", 495 {} 496 ], 497 [ 498 "StartTag", 499 "nobr", 500 {} 501 ], 502 [ 503 "Character", 504 "1" 505 ], 506 [ 507 "StartTag", 508 "nobr", 509 {} 510 ], 511 [ 512 "StartTag", 513 "ins", 514 {} 515 ], 516 [ 517 "EndTag", 518 "b" 519 ], 520 [ 521 "StartTag", 522 "i", 523 {} 524 ], 525 [ 526 "StartTag", 527 "nobr", 528 {} 529 ] 530 ] 531 }, 532 { 533 "description": "<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2", 534 "input": "<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2", 535 "output": [ 536 [ 537 "DOCTYPE", 538 "html", 539 null, 540 null, 541 true 542 ], 543 [ 544 "StartTag", 545 "body", 546 {} 547 ], 548 [ 549 "StartTag", 550 "b", 551 {} 552 ], 553 [ 554 "StartTag", 555 "nobr", 556 {} 557 ], 558 [ 559 "Character", 560 "1" 561 ], 562 [ 563 "StartTag", 564 "ins", 565 {} 566 ], 567 [ 568 "StartTag", 569 "nobr", 570 {} 571 ], 572 [ 573 "EndTag", 574 "b" 575 ], 576 [ 577 "StartTag", 578 "i", 579 {} 580 ], 581 [ 582 "Character", 583 "2" 584 ] 585 ] 586 }, 587 { 588 "description": "<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>", 589 "input": "<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>", 590 "output": [ 591 [ 592 "DOCTYPE", 593 "html", 594 null, 595 null, 596 true 597 ], 598 [ 599 "StartTag", 600 "body", 601 {} 602 ], 603 [ 604 "StartTag", 605 "b", 606 {} 607 ], 608 [ 609 "Character", 610 "1" 611 ], 612 [ 613 "StartTag", 614 "nobr", 615 {} 616 ], 617 [ 618 "EndTag", 619 "b" 620 ], 621 [ 622 "StartTag", 623 "i", 624 {} 625 ], 626 [ 627 "StartTag", 628 "nobr", 629 {} 630 ], 631 [ 632 "Character", 633 "2" 634 ], 635 [ 636 "EndTag", 637 "i" 638 ] 639 ] 640 }, 641 { 642 "description": "<p><code x</code></p>\\r\\n", 643 "input": "<p><code x</code></p>\r\n", 644 "output": [ 645 [ 646 "StartTag", 647 "p", 648 {} 649 ], 650 [ 651 "StartTag", 652 "code", 653 { 654 "x<": "", 655 "code": "" 656 } 657 ], 658 [ 659 "EndTag", 660 "p" 661 ], 662 [ 663 "Character", 664 "\n" 665 ] 666 ] 667 }, 668 { 669 "description": "<!DOCTYPE html><svg><foreignObject><p><i></p>a", 670 "input": "<!DOCTYPE html><svg><foreignObject><p><i></p>a", 671 "output": [ 672 [ 673 "DOCTYPE", 674 "html", 675 null, 676 null, 677 true 678 ], 679 [ 680 "StartTag", 681 "svg", 682 {} 683 ], 684 [ 685 "StartTag", 686 "foreignObject", 687 {} 688 ], 689 [ 690 "StartTag", 691 "p", 692 {} 693 ], 694 [ 695 "StartTag", 696 "i", 697 {} 698 ], 699 [ 700 "EndTag", 701 "p" 702 ], 703 [ 704 "Character", 705 "a" 706 ] 707 ] 708 }, 709 { 710 "description": "<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a", 711 "input": "<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a", 712 "output": [ 713 [ 714 "DOCTYPE", 715 "html", 716 null, 717 null, 718 true 719 ], 720 [ 721 "StartTag", 722 "table", 723 {} 724 ], 725 [ 726 "StartTag", 727 "tr", 728 {} 729 ], 730 [ 731 "StartTag", 732 "td", 733 {} 734 ], 735 [ 736 "StartTag", 737 "svg", 738 {} 739 ], 740 [ 741 "StartTag", 742 "foreignObject", 743 {} 744 ], 745 [ 746 "StartTag", 747 "p", 748 {} 749 ], 750 [ 751 "StartTag", 752 "i", 753 {} 754 ], 755 [ 756 "EndTag", 757 "p" 758 ], 759 [ 760 "Character", 761 "a" 762 ] 763 ] 764 }, 765 { 766 "description": "<!DOCTYPE html><math><mtext><p><i></p>a", 767 "input": "<!DOCTYPE html><math><mtext><p><i></p>a", 768 "output": [ 769 [ 770 "DOCTYPE", 771 "html", 772 null, 773 null, 774 true 775 ], 776 [ 777 "StartTag", 778 "math", 779 {} 780 ], 781 [ 782 "StartTag", 783 "mtext", 784 {} 785 ], 786 [ 787 "StartTag", 788 "p", 789 {} 790 ], 791 [ 792 "StartTag", 793 "i", 794 {} 795 ], 796 [ 797 "EndTag", 798 "p" 799 ], 800 [ 801 "Character", 802 "a" 803 ] 804 ] 805 }, 806 { 807 "description": "<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a", 808 "input": "<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a", 809 "output": [ 810 [ 811 "DOCTYPE", 812 "html", 813 null, 814 null, 815 true 816 ], 817 [ 818 "StartTag", 819 "table", 820 {} 821 ], 822 [ 823 "StartTag", 824 "tr", 825 {} 826 ], 827 [ 828 "StartTag", 829 "td", 830 {} 831 ], 832 [ 833 "StartTag", 834 "math", 835 {} 836 ], 837 [ 838 "StartTag", 839 "mtext", 840 {} 841 ], 842 [ 843 "StartTag", 844 "p", 845 {} 846 ], 847 [ 848 "StartTag", 849 "i", 850 {} 851 ], 852 [ 853 "EndTag", 854 "p" 855 ], 856 [ 857 "Character", 858 "a" 859 ] 860 ] 861 }, 862 { 863 "description": "<!DOCTYPE html><body><div><!/div>a", 864 "input": "<!DOCTYPE html><body><div><!/div>a", 865 "output": [ 866 [ 867 "DOCTYPE", 868 "html", 869 null, 870 null, 871 true 872 ], 873 [ 874 "StartTag", 875 "body", 876 {} 877 ], 878 [ 879 "StartTag", 880 "div", 881 {} 882 ], 883 [ 884 "Comment", 885 "/div" 886 ], 887 [ 888 "Character", 889 "a" 890 ] 891 ] 892 }, 893 { 894 "description": "<button><p><button>", 895 "input": "<button><p><button>", 896 "output": [ 897 [ 898 "StartTag", 899 "button", 900 {} 901 ], 902 [ 903 "StartTag", 904 "p", 905 {} 906 ], 907 [ 908 "StartTag", 909 "button", 910 {} 911 ] 912 ] 913 } 914 ] 915}