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