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