diff --git a/parser/html/javasrc/Tokenizer.java b/parser/html/javasrc/Tokenizer.java index f6a7aa3ccd73..7c973355c112 100644 --- a/parser/html/javasrc/Tokenizer.java +++ b/parser/html/javasrc/Tokenizer.java @@ -6471,6 +6471,12 @@ public class Tokenizer implements Locator { handleNcrValue(returnState); state = returnState; continue; + case CDATA_RSQB: + tokenHandler.characters(Tokenizer.RSQB_RSQB, 0, 1); + break eofloop; + case CDATA_RSQB_RSQB: + tokenHandler.characters(Tokenizer.RSQB_RSQB, 0, 2); + break eofloop; case DATA: default: break eofloop; diff --git a/parser/html/nsHtml5Tokenizer.cpp b/parser/html/nsHtml5Tokenizer.cpp index a1bd62431311..0adaea92868e 100644 --- a/parser/html/nsHtml5Tokenizer.cpp +++ b/parser/html/nsHtml5Tokenizer.cpp @@ -3684,6 +3684,14 @@ nsHtml5Tokenizer::eof() state = returnState; continue; } + case NS_HTML5TOKENIZER_CDATA_RSQB: { + tokenHandler->characters(nsHtml5Tokenizer::RSQB_RSQB, 0, 1); + NS_HTML5_BREAK(eofloop); + } + case NS_HTML5TOKENIZER_CDATA_RSQB_RSQB: { + tokenHandler->characters(nsHtml5Tokenizer::RSQB_RSQB, 0, 2); + NS_HTML5_BREAK(eofloop); + } case NS_HTML5TOKENIZER_DATA: default: { NS_HTML5_BREAK(eofloop); diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes.dat index 3c0d7ef3503e..b933025a00b3 100644 --- a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes.dat +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes.dat @@ -1,17 +1,8 @@ #data -]] +Placeholder #errors #document | <html> | <head> | <body> -| <svg svg> - -#data -<svg><![CDATA[] -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> +| "Placeholder" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests21.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests21.dat index 9acc845601da..1260ec03e202 100644 --- a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests21.dat +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests21.dat @@ -86,6 +86,26 @@ | <svg svg> | "]] >" +#data +<svg><![CDATA[]] +#errors +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]]" + +#data +<svg><![CDATA[] +#errors +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]" + #data <svg><![CDATA[]>a #errors