parse5 7.1.1 → 7.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -453,51 +453,63 @@ class Parser {
453
453
  for (let i = this.openElements.stackTop; i >= 0; i--) {
454
454
  //Insertion mode reset map
455
455
  switch (i === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i]) {
456
- case html_js_1.TAG_ID.TR:
456
+ case html_js_1.TAG_ID.TR: {
457
457
  this.insertionMode = InsertionMode.IN_ROW;
458
458
  return;
459
+ }
459
460
  case html_js_1.TAG_ID.TBODY:
460
461
  case html_js_1.TAG_ID.THEAD:
461
- case html_js_1.TAG_ID.TFOOT:
462
+ case html_js_1.TAG_ID.TFOOT: {
462
463
  this.insertionMode = InsertionMode.IN_TABLE_BODY;
463
464
  return;
464
- case html_js_1.TAG_ID.CAPTION:
465
+ }
466
+ case html_js_1.TAG_ID.CAPTION: {
465
467
  this.insertionMode = InsertionMode.IN_CAPTION;
466
468
  return;
467
- case html_js_1.TAG_ID.COLGROUP:
469
+ }
470
+ case html_js_1.TAG_ID.COLGROUP: {
468
471
  this.insertionMode = InsertionMode.IN_COLUMN_GROUP;
469
472
  return;
470
- case html_js_1.TAG_ID.TABLE:
473
+ }
474
+ case html_js_1.TAG_ID.TABLE: {
471
475
  this.insertionMode = InsertionMode.IN_TABLE;
472
476
  return;
473
- case html_js_1.TAG_ID.BODY:
477
+ }
478
+ case html_js_1.TAG_ID.BODY: {
474
479
  this.insertionMode = InsertionMode.IN_BODY;
475
480
  return;
476
- case html_js_1.TAG_ID.FRAMESET:
481
+ }
482
+ case html_js_1.TAG_ID.FRAMESET: {
477
483
  this.insertionMode = InsertionMode.IN_FRAMESET;
478
484
  return;
479
- case html_js_1.TAG_ID.SELECT:
485
+ }
486
+ case html_js_1.TAG_ID.SELECT: {
480
487
  this._resetInsertionModeForSelect(i);
481
488
  return;
482
- case html_js_1.TAG_ID.TEMPLATE:
489
+ }
490
+ case html_js_1.TAG_ID.TEMPLATE: {
483
491
  this.insertionMode = this.tmplInsertionModeStack[0];
484
492
  return;
485
- case html_js_1.TAG_ID.HTML:
493
+ }
494
+ case html_js_1.TAG_ID.HTML: {
486
495
  this.insertionMode = this.headElement ? InsertionMode.AFTER_HEAD : InsertionMode.BEFORE_HEAD;
487
496
  return;
497
+ }
488
498
  case html_js_1.TAG_ID.TD:
489
- case html_js_1.TAG_ID.TH:
499
+ case html_js_1.TAG_ID.TH: {
490
500
  if (i > 0) {
491
501
  this.insertionMode = InsertionMode.IN_CELL;
492
502
  return;
493
503
  }
494
504
  break;
495
- case html_js_1.TAG_ID.HEAD:
505
+ }
506
+ case html_js_1.TAG_ID.HEAD: {
496
507
  if (i > 0) {
497
508
  this.insertionMode = InsertionMode.IN_HEAD;
498
509
  return;
499
510
  }
500
511
  break;
512
+ }
501
513
  }
502
514
  }
503
515
  this.insertionMode = InsertionMode.IN_BODY;
@@ -528,11 +540,12 @@ class Parser {
528
540
  for (let i = this.openElements.stackTop; i >= 0; i--) {
529
541
  const openElement = this.openElements.items[i];
530
542
  switch (this.openElements.tagIDs[i]) {
531
- case html_js_1.TAG_ID.TEMPLATE:
543
+ case html_js_1.TAG_ID.TEMPLATE: {
532
544
  if (this.treeAdapter.getNamespaceURI(openElement) === html_js_1.NS.HTML) {
533
545
  return { parent: this.treeAdapter.getTemplateContent(openElement), beforeElement: null };
534
546
  }
535
547
  break;
548
+ }
536
549
  case html_js_1.TAG_ID.TABLE: {
537
550
  const parent = this.treeAdapter.getParentNode(openElement);
538
551
  if (parent) {
@@ -567,52 +580,65 @@ class Parser {
567
580
  return;
568
581
  }
569
582
  switch (this.insertionMode) {
570
- case InsertionMode.INITIAL:
583
+ case InsertionMode.INITIAL: {
571
584
  tokenInInitialMode(this, token);
572
585
  break;
573
- case InsertionMode.BEFORE_HTML:
586
+ }
587
+ case InsertionMode.BEFORE_HTML: {
574
588
  tokenBeforeHtml(this, token);
575
589
  break;
576
- case InsertionMode.BEFORE_HEAD:
590
+ }
591
+ case InsertionMode.BEFORE_HEAD: {
577
592
  tokenBeforeHead(this, token);
578
593
  break;
579
- case InsertionMode.IN_HEAD:
594
+ }
595
+ case InsertionMode.IN_HEAD: {
580
596
  tokenInHead(this, token);
581
597
  break;
582
- case InsertionMode.IN_HEAD_NO_SCRIPT:
598
+ }
599
+ case InsertionMode.IN_HEAD_NO_SCRIPT: {
583
600
  tokenInHeadNoScript(this, token);
584
601
  break;
585
- case InsertionMode.AFTER_HEAD:
602
+ }
603
+ case InsertionMode.AFTER_HEAD: {
586
604
  tokenAfterHead(this, token);
587
605
  break;
606
+ }
588
607
  case InsertionMode.IN_BODY:
589
608
  case InsertionMode.IN_CAPTION:
590
609
  case InsertionMode.IN_CELL:
591
- case InsertionMode.IN_TEMPLATE:
610
+ case InsertionMode.IN_TEMPLATE: {
592
611
  characterInBody(this, token);
593
612
  break;
613
+ }
594
614
  case InsertionMode.TEXT:
595
615
  case InsertionMode.IN_SELECT:
596
- case InsertionMode.IN_SELECT_IN_TABLE:
616
+ case InsertionMode.IN_SELECT_IN_TABLE: {
597
617
  this._insertCharacters(token);
598
618
  break;
619
+ }
599
620
  case InsertionMode.IN_TABLE:
600
621
  case InsertionMode.IN_TABLE_BODY:
601
- case InsertionMode.IN_ROW:
622
+ case InsertionMode.IN_ROW: {
602
623
  characterInTable(this, token);
603
624
  break;
604
- case InsertionMode.IN_TABLE_TEXT:
625
+ }
626
+ case InsertionMode.IN_TABLE_TEXT: {
605
627
  characterInTableText(this, token);
606
628
  break;
607
- case InsertionMode.IN_COLUMN_GROUP:
629
+ }
630
+ case InsertionMode.IN_COLUMN_GROUP: {
608
631
  tokenInColumnGroup(this, token);
609
632
  break;
610
- case InsertionMode.AFTER_BODY:
633
+ }
634
+ case InsertionMode.AFTER_BODY: {
611
635
  tokenAfterBody(this, token);
612
636
  break;
613
- case InsertionMode.AFTER_AFTER_BODY:
637
+ }
638
+ case InsertionMode.AFTER_AFTER_BODY: {
614
639
  tokenAfterAfterBody(this, token);
615
640
  break;
641
+ }
616
642
  default:
617
643
  // Do nothing
618
644
  }
@@ -624,41 +650,52 @@ class Parser {
624
650
  return;
625
651
  }
626
652
  switch (this.insertionMode) {
627
- case InsertionMode.INITIAL:
653
+ case InsertionMode.INITIAL: {
628
654
  tokenInInitialMode(this, token);
629
655
  break;
630
- case InsertionMode.BEFORE_HTML:
656
+ }
657
+ case InsertionMode.BEFORE_HTML: {
631
658
  tokenBeforeHtml(this, token);
632
659
  break;
633
- case InsertionMode.BEFORE_HEAD:
660
+ }
661
+ case InsertionMode.BEFORE_HEAD: {
634
662
  tokenBeforeHead(this, token);
635
663
  break;
636
- case InsertionMode.IN_HEAD:
664
+ }
665
+ case InsertionMode.IN_HEAD: {
637
666
  tokenInHead(this, token);
638
667
  break;
639
- case InsertionMode.IN_HEAD_NO_SCRIPT:
668
+ }
669
+ case InsertionMode.IN_HEAD_NO_SCRIPT: {
640
670
  tokenInHeadNoScript(this, token);
641
671
  break;
642
- case InsertionMode.AFTER_HEAD:
672
+ }
673
+ case InsertionMode.AFTER_HEAD: {
643
674
  tokenAfterHead(this, token);
644
675
  break;
645
- case InsertionMode.TEXT:
676
+ }
677
+ case InsertionMode.TEXT: {
646
678
  this._insertCharacters(token);
647
679
  break;
680
+ }
648
681
  case InsertionMode.IN_TABLE:
649
682
  case InsertionMode.IN_TABLE_BODY:
650
- case InsertionMode.IN_ROW:
683
+ case InsertionMode.IN_ROW: {
651
684
  characterInTable(this, token);
652
685
  break;
653
- case InsertionMode.IN_COLUMN_GROUP:
686
+ }
687
+ case InsertionMode.IN_COLUMN_GROUP: {
654
688
  tokenInColumnGroup(this, token);
655
689
  break;
656
- case InsertionMode.AFTER_BODY:
690
+ }
691
+ case InsertionMode.AFTER_BODY: {
657
692
  tokenAfterBody(this, token);
658
693
  break;
659
- case InsertionMode.AFTER_AFTER_BODY:
694
+ }
695
+ case InsertionMode.AFTER_AFTER_BODY: {
660
696
  tokenAfterAfterBody(this, token);
661
697
  break;
698
+ }
662
699
  default:
663
700
  // Do nothing
664
701
  }
@@ -687,19 +724,23 @@ class Parser {
687
724
  case InsertionMode.IN_SELECT_IN_TABLE:
688
725
  case InsertionMode.IN_TEMPLATE:
689
726
  case InsertionMode.IN_FRAMESET:
690
- case InsertionMode.AFTER_FRAMESET:
727
+ case InsertionMode.AFTER_FRAMESET: {
691
728
  appendComment(this, token);
692
729
  break;
693
- case InsertionMode.IN_TABLE_TEXT:
730
+ }
731
+ case InsertionMode.IN_TABLE_TEXT: {
694
732
  tokenInTableText(this, token);
695
733
  break;
696
- case InsertionMode.AFTER_BODY:
734
+ }
735
+ case InsertionMode.AFTER_BODY: {
697
736
  appendCommentToRootHtmlElement(this, token);
698
737
  break;
738
+ }
699
739
  case InsertionMode.AFTER_AFTER_BODY:
700
- case InsertionMode.AFTER_AFTER_FRAMESET:
740
+ case InsertionMode.AFTER_AFTER_FRAMESET: {
701
741
  appendCommentToDocument(this, token);
702
742
  break;
743
+ }
703
744
  default:
704
745
  // Do nothing
705
746
  }
@@ -707,18 +748,21 @@ class Parser {
707
748
  onDoctype(token) {
708
749
  this.skipNextNewLine = false;
709
750
  switch (this.insertionMode) {
710
- case InsertionMode.INITIAL:
751
+ case InsertionMode.INITIAL: {
711
752
  doctypeInInitialMode(this, token);
712
753
  break;
754
+ }
713
755
  case InsertionMode.BEFORE_HEAD:
714
756
  case InsertionMode.IN_HEAD:
715
757
  case InsertionMode.IN_HEAD_NO_SCRIPT:
716
- case InsertionMode.AFTER_HEAD:
758
+ case InsertionMode.AFTER_HEAD: {
717
759
  this._err(token, error_codes_js_1.ERR.misplacedDoctype);
718
760
  break;
719
- case InsertionMode.IN_TABLE_TEXT:
761
+ }
762
+ case InsertionMode.IN_TABLE_TEXT: {
720
763
  tokenInTableText(this, token);
721
764
  break;
765
+ }
722
766
  default:
723
767
  // Do nothing
724
768
  }
@@ -751,72 +795,94 @@ class Parser {
751
795
  }
752
796
  _startTagOutsideForeignContent(token) {
753
797
  switch (this.insertionMode) {
754
- case InsertionMode.INITIAL:
798
+ case InsertionMode.INITIAL: {
755
799
  tokenInInitialMode(this, token);
756
800
  break;
757
- case InsertionMode.BEFORE_HTML:
801
+ }
802
+ case InsertionMode.BEFORE_HTML: {
758
803
  startTagBeforeHtml(this, token);
759
804
  break;
760
- case InsertionMode.BEFORE_HEAD:
805
+ }
806
+ case InsertionMode.BEFORE_HEAD: {
761
807
  startTagBeforeHead(this, token);
762
808
  break;
763
- case InsertionMode.IN_HEAD:
809
+ }
810
+ case InsertionMode.IN_HEAD: {
764
811
  startTagInHead(this, token);
765
812
  break;
766
- case InsertionMode.IN_HEAD_NO_SCRIPT:
813
+ }
814
+ case InsertionMode.IN_HEAD_NO_SCRIPT: {
767
815
  startTagInHeadNoScript(this, token);
768
816
  break;
769
- case InsertionMode.AFTER_HEAD:
817
+ }
818
+ case InsertionMode.AFTER_HEAD: {
770
819
  startTagAfterHead(this, token);
771
820
  break;
772
- case InsertionMode.IN_BODY:
821
+ }
822
+ case InsertionMode.IN_BODY: {
773
823
  startTagInBody(this, token);
774
824
  break;
775
- case InsertionMode.IN_TABLE:
825
+ }
826
+ case InsertionMode.IN_TABLE: {
776
827
  startTagInTable(this, token);
777
828
  break;
778
- case InsertionMode.IN_TABLE_TEXT:
829
+ }
830
+ case InsertionMode.IN_TABLE_TEXT: {
779
831
  tokenInTableText(this, token);
780
832
  break;
781
- case InsertionMode.IN_CAPTION:
833
+ }
834
+ case InsertionMode.IN_CAPTION: {
782
835
  startTagInCaption(this, token);
783
836
  break;
784
- case InsertionMode.IN_COLUMN_GROUP:
837
+ }
838
+ case InsertionMode.IN_COLUMN_GROUP: {
785
839
  startTagInColumnGroup(this, token);
786
840
  break;
787
- case InsertionMode.IN_TABLE_BODY:
841
+ }
842
+ case InsertionMode.IN_TABLE_BODY: {
788
843
  startTagInTableBody(this, token);
789
844
  break;
790
- case InsertionMode.IN_ROW:
845
+ }
846
+ case InsertionMode.IN_ROW: {
791
847
  startTagInRow(this, token);
792
848
  break;
793
- case InsertionMode.IN_CELL:
849
+ }
850
+ case InsertionMode.IN_CELL: {
794
851
  startTagInCell(this, token);
795
852
  break;
796
- case InsertionMode.IN_SELECT:
853
+ }
854
+ case InsertionMode.IN_SELECT: {
797
855
  startTagInSelect(this, token);
798
856
  break;
799
- case InsertionMode.IN_SELECT_IN_TABLE:
857
+ }
858
+ case InsertionMode.IN_SELECT_IN_TABLE: {
800
859
  startTagInSelectInTable(this, token);
801
860
  break;
802
- case InsertionMode.IN_TEMPLATE:
861
+ }
862
+ case InsertionMode.IN_TEMPLATE: {
803
863
  startTagInTemplate(this, token);
804
864
  break;
805
- case InsertionMode.AFTER_BODY:
865
+ }
866
+ case InsertionMode.AFTER_BODY: {
806
867
  startTagAfterBody(this, token);
807
868
  break;
808
- case InsertionMode.IN_FRAMESET:
869
+ }
870
+ case InsertionMode.IN_FRAMESET: {
809
871
  startTagInFrameset(this, token);
810
872
  break;
811
- case InsertionMode.AFTER_FRAMESET:
873
+ }
874
+ case InsertionMode.AFTER_FRAMESET: {
812
875
  startTagAfterFrameset(this, token);
813
876
  break;
814
- case InsertionMode.AFTER_AFTER_BODY:
877
+ }
878
+ case InsertionMode.AFTER_AFTER_BODY: {
815
879
  startTagAfterAfterBody(this, token);
816
880
  break;
817
- case InsertionMode.AFTER_AFTER_FRAMESET:
881
+ }
882
+ case InsertionMode.AFTER_AFTER_FRAMESET: {
818
883
  startTagAfterAfterFrameset(this, token);
819
884
  break;
885
+ }
820
886
  default:
821
887
  // Do nothing
822
888
  }
@@ -833,96 +899,124 @@ class Parser {
833
899
  }
834
900
  _endTagOutsideForeignContent(token) {
835
901
  switch (this.insertionMode) {
836
- case InsertionMode.INITIAL:
902
+ case InsertionMode.INITIAL: {
837
903
  tokenInInitialMode(this, token);
838
904
  break;
839
- case InsertionMode.BEFORE_HTML:
905
+ }
906
+ case InsertionMode.BEFORE_HTML: {
840
907
  endTagBeforeHtml(this, token);
841
908
  break;
842
- case InsertionMode.BEFORE_HEAD:
909
+ }
910
+ case InsertionMode.BEFORE_HEAD: {
843
911
  endTagBeforeHead(this, token);
844
912
  break;
845
- case InsertionMode.IN_HEAD:
913
+ }
914
+ case InsertionMode.IN_HEAD: {
846
915
  endTagInHead(this, token);
847
916
  break;
848
- case InsertionMode.IN_HEAD_NO_SCRIPT:
917
+ }
918
+ case InsertionMode.IN_HEAD_NO_SCRIPT: {
849
919
  endTagInHeadNoScript(this, token);
850
920
  break;
851
- case InsertionMode.AFTER_HEAD:
921
+ }
922
+ case InsertionMode.AFTER_HEAD: {
852
923
  endTagAfterHead(this, token);
853
924
  break;
854
- case InsertionMode.IN_BODY:
925
+ }
926
+ case InsertionMode.IN_BODY: {
855
927
  endTagInBody(this, token);
856
928
  break;
857
- case InsertionMode.TEXT:
929
+ }
930
+ case InsertionMode.TEXT: {
858
931
  endTagInText(this, token);
859
932
  break;
860
- case InsertionMode.IN_TABLE:
933
+ }
934
+ case InsertionMode.IN_TABLE: {
861
935
  endTagInTable(this, token);
862
936
  break;
863
- case InsertionMode.IN_TABLE_TEXT:
937
+ }
938
+ case InsertionMode.IN_TABLE_TEXT: {
864
939
  tokenInTableText(this, token);
865
940
  break;
866
- case InsertionMode.IN_CAPTION:
941
+ }
942
+ case InsertionMode.IN_CAPTION: {
867
943
  endTagInCaption(this, token);
868
944
  break;
869
- case InsertionMode.IN_COLUMN_GROUP:
945
+ }
946
+ case InsertionMode.IN_COLUMN_GROUP: {
870
947
  endTagInColumnGroup(this, token);
871
948
  break;
872
- case InsertionMode.IN_TABLE_BODY:
949
+ }
950
+ case InsertionMode.IN_TABLE_BODY: {
873
951
  endTagInTableBody(this, token);
874
952
  break;
875
- case InsertionMode.IN_ROW:
953
+ }
954
+ case InsertionMode.IN_ROW: {
876
955
  endTagInRow(this, token);
877
956
  break;
878
- case InsertionMode.IN_CELL:
957
+ }
958
+ case InsertionMode.IN_CELL: {
879
959
  endTagInCell(this, token);
880
960
  break;
881
- case InsertionMode.IN_SELECT:
961
+ }
962
+ case InsertionMode.IN_SELECT: {
882
963
  endTagInSelect(this, token);
883
964
  break;
884
- case InsertionMode.IN_SELECT_IN_TABLE:
965
+ }
966
+ case InsertionMode.IN_SELECT_IN_TABLE: {
885
967
  endTagInSelectInTable(this, token);
886
968
  break;
887
- case InsertionMode.IN_TEMPLATE:
969
+ }
970
+ case InsertionMode.IN_TEMPLATE: {
888
971
  endTagInTemplate(this, token);
889
972
  break;
890
- case InsertionMode.AFTER_BODY:
973
+ }
974
+ case InsertionMode.AFTER_BODY: {
891
975
  endTagAfterBody(this, token);
892
976
  break;
893
- case InsertionMode.IN_FRAMESET:
977
+ }
978
+ case InsertionMode.IN_FRAMESET: {
894
979
  endTagInFrameset(this, token);
895
980
  break;
896
- case InsertionMode.AFTER_FRAMESET:
981
+ }
982
+ case InsertionMode.AFTER_FRAMESET: {
897
983
  endTagAfterFrameset(this, token);
898
984
  break;
899
- case InsertionMode.AFTER_AFTER_BODY:
985
+ }
986
+ case InsertionMode.AFTER_AFTER_BODY: {
900
987
  tokenAfterAfterBody(this, token);
901
988
  break;
989
+ }
902
990
  default:
903
991
  // Do nothing
904
992
  }
905
993
  }
906
994
  onEof(token) {
907
995
  switch (this.insertionMode) {
908
- case InsertionMode.INITIAL:
996
+ case InsertionMode.INITIAL: {
909
997
  tokenInInitialMode(this, token);
910
998
  break;
911
- case InsertionMode.BEFORE_HTML:
999
+ }
1000
+ case InsertionMode.BEFORE_HTML: {
912
1001
  tokenBeforeHtml(this, token);
913
1002
  break;
914
- case InsertionMode.BEFORE_HEAD:
1003
+ }
1004
+ case InsertionMode.BEFORE_HEAD: {
915
1005
  tokenBeforeHead(this, token);
916
1006
  break;
917
- case InsertionMode.IN_HEAD:
1007
+ }
1008
+ case InsertionMode.IN_HEAD: {
918
1009
  tokenInHead(this, token);
919
1010
  break;
920
- case InsertionMode.IN_HEAD_NO_SCRIPT:
1011
+ }
1012
+ case InsertionMode.IN_HEAD_NO_SCRIPT: {
921
1013
  tokenInHeadNoScript(this, token);
922
1014
  break;
923
- case InsertionMode.AFTER_HEAD:
1015
+ }
1016
+ case InsertionMode.AFTER_HEAD: {
924
1017
  tokenAfterHead(this, token);
925
1018
  break;
1019
+ }
926
1020
  case InsertionMode.IN_BODY:
927
1021
  case InsertionMode.IN_TABLE:
928
1022
  case InsertionMode.IN_CAPTION:
@@ -931,25 +1025,30 @@ class Parser {
931
1025
  case InsertionMode.IN_ROW:
932
1026
  case InsertionMode.IN_CELL:
933
1027
  case InsertionMode.IN_SELECT:
934
- case InsertionMode.IN_SELECT_IN_TABLE:
1028
+ case InsertionMode.IN_SELECT_IN_TABLE: {
935
1029
  eofInBody(this, token);
936
1030
  break;
937
- case InsertionMode.TEXT:
1031
+ }
1032
+ case InsertionMode.TEXT: {
938
1033
  eofInText(this, token);
939
1034
  break;
940
- case InsertionMode.IN_TABLE_TEXT:
1035
+ }
1036
+ case InsertionMode.IN_TABLE_TEXT: {
941
1037
  tokenInTableText(this, token);
942
1038
  break;
943
- case InsertionMode.IN_TEMPLATE:
1039
+ }
1040
+ case InsertionMode.IN_TEMPLATE: {
944
1041
  eofInTemplate(this, token);
945
1042
  break;
1043
+ }
946
1044
  case InsertionMode.AFTER_BODY:
947
1045
  case InsertionMode.IN_FRAMESET:
948
1046
  case InsertionMode.AFTER_FRAMESET:
949
1047
  case InsertionMode.AFTER_AFTER_BODY:
950
- case InsertionMode.AFTER_AFTER_FRAMESET:
1048
+ case InsertionMode.AFTER_AFTER_FRAMESET: {
951
1049
  stopParsing(this, token);
952
1050
  break;
1051
+ }
953
1052
  default:
954
1053
  // Do nothing
955
1054
  }
@@ -977,26 +1076,30 @@ class Parser {
977
1076
  case InsertionMode.IN_SELECT:
978
1077
  case InsertionMode.IN_SELECT_IN_TABLE:
979
1078
  case InsertionMode.IN_FRAMESET:
980
- case InsertionMode.AFTER_FRAMESET:
1079
+ case InsertionMode.AFTER_FRAMESET: {
981
1080
  this._insertCharacters(token);
982
1081
  break;
1082
+ }
983
1083
  case InsertionMode.IN_BODY:
984
1084
  case InsertionMode.IN_CAPTION:
985
1085
  case InsertionMode.IN_CELL:
986
1086
  case InsertionMode.IN_TEMPLATE:
987
1087
  case InsertionMode.AFTER_BODY:
988
1088
  case InsertionMode.AFTER_AFTER_BODY:
989
- case InsertionMode.AFTER_AFTER_FRAMESET:
1089
+ case InsertionMode.AFTER_AFTER_FRAMESET: {
990
1090
  whitespaceCharacterInBody(this, token);
991
1091
  break;
1092
+ }
992
1093
  case InsertionMode.IN_TABLE:
993
1094
  case InsertionMode.IN_TABLE_BODY:
994
- case InsertionMode.IN_ROW:
1095
+ case InsertionMode.IN_ROW: {
995
1096
  characterInTable(this, token);
996
1097
  break;
997
- case InsertionMode.IN_TABLE_TEXT:
1098
+ }
1099
+ case InsertionMode.IN_TABLE_TEXT: {
998
1100
  whitespaceCharacterInTableText(this, token);
999
1101
  break;
1102
+ }
1000
1103
  default:
1001
1104
  // Do nothing
1002
1105
  }
@@ -2627,8 +2730,9 @@ function endTagInRow(p, token) {
2627
2730
  // Ignore end tag
2628
2731
  break;
2629
2732
  }
2630
- default:
2733
+ default: {
2631
2734
  endTagInTable(p, token);
2735
+ }
2632
2736
  }
2633
2737
  }
2634
2738
  // The "in cell" insertion mode
@@ -2817,39 +2921,45 @@ function startTagInTemplate(p, token) {
2817
2921
  case html_js_1.TAG_ID.SCRIPT:
2818
2922
  case html_js_1.TAG_ID.STYLE:
2819
2923
  case html_js_1.TAG_ID.TEMPLATE:
2820
- case html_js_1.TAG_ID.TITLE:
2924
+ case html_js_1.TAG_ID.TITLE: {
2821
2925
  startTagInHead(p, token);
2822
2926
  break;
2927
+ }
2823
2928
  // Re-process the token in the appropriate mode
2824
2929
  case html_js_1.TAG_ID.CAPTION:
2825
2930
  case html_js_1.TAG_ID.COLGROUP:
2826
2931
  case html_js_1.TAG_ID.TBODY:
2827
2932
  case html_js_1.TAG_ID.TFOOT:
2828
- case html_js_1.TAG_ID.THEAD:
2933
+ case html_js_1.TAG_ID.THEAD: {
2829
2934
  p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE;
2830
2935
  p.insertionMode = InsertionMode.IN_TABLE;
2831
2936
  startTagInTable(p, token);
2832
2937
  break;
2833
- case html_js_1.TAG_ID.COL:
2938
+ }
2939
+ case html_js_1.TAG_ID.COL: {
2834
2940
  p.tmplInsertionModeStack[0] = InsertionMode.IN_COLUMN_GROUP;
2835
2941
  p.insertionMode = InsertionMode.IN_COLUMN_GROUP;
2836
2942
  startTagInColumnGroup(p, token);
2837
2943
  break;
2838
- case html_js_1.TAG_ID.TR:
2944
+ }
2945
+ case html_js_1.TAG_ID.TR: {
2839
2946
  p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE_BODY;
2840
2947
  p.insertionMode = InsertionMode.IN_TABLE_BODY;
2841
2948
  startTagInTableBody(p, token);
2842
2949
  break;
2950
+ }
2843
2951
  case html_js_1.TAG_ID.TD:
2844
- case html_js_1.TAG_ID.TH:
2952
+ case html_js_1.TAG_ID.TH: {
2845
2953
  p.tmplInsertionModeStack[0] = InsertionMode.IN_ROW;
2846
2954
  p.insertionMode = InsertionMode.IN_ROW;
2847
2955
  startTagInRow(p, token);
2848
2956
  break;
2849
- default:
2957
+ }
2958
+ default: {
2850
2959
  p.tmplInsertionModeStack[0] = InsertionMode.IN_BODY;
2851
2960
  p.insertionMode = InsertionMode.IN_BODY;
2852
2961
  startTagInBody(p, token);
2962
+ }
2853
2963
  }
2854
2964
  }
2855
2965
  function endTagInTemplate(p, token) {