summaryrefslogtreecommitdiff
path: root/www/wiki/tests/phpunit/includes/tidy
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/phpunit/includes/tidy')
-rw-r--r--www/wiki/tests/phpunit/includes/tidy/BalancerTest.php169
-rw-r--r--www/wiki/tests/phpunit/includes/tidy/RemexDriverTest.php307
-rw-r--r--www/wiki/tests/phpunit/includes/tidy/html5lib-tests.json80692
3 files changed, 81168 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/tidy/BalancerTest.php b/www/wiki/tests/phpunit/includes/tidy/BalancerTest.php
new file mode 100644
index 00000000..8a4f662a
--- /dev/null
+++ b/www/wiki/tests/phpunit/includes/tidy/BalancerTest.php
@@ -0,0 +1,169 @@
+<?php
+
+class BalancerTest extends MediaWikiTestCase {
+
+ /**
+ * Anything that needs to happen before your tests should go here.
+ */
+ protected function setUp() {
+ // Be sure to do call the parent setup and teardown functions.
+ // This makes sure that all the various cleanup and restorations
+ // happen as they should (including the restoration for setMwGlobals).
+ parent::setUp();
+ }
+
+ /**
+ * @covers MediaWiki\Tidy\Balancer
+ * @covers MediaWiki\Tidy\BalanceSets
+ * @covers MediaWiki\Tidy\BalanceElement
+ * @covers MediaWiki\Tidy\BalanceStack
+ * @covers MediaWiki\Tidy\BalanceMarker
+ * @covers MediaWiki\Tidy\BalanceActiveFormattingElements
+ * @dataProvider provideBalancerTests
+ */
+ public function testBalancer( $description, $input, $expected, $useTidy ) {
+ $balancer = new MediaWiki\Tidy\Balancer( [
+ 'strict' => false, /* not strict */
+ 'allowedHtmlElements' => null, /* no sanitization */
+ 'tidyCompat' => $useTidy, /* standard parser */
+ 'allowComments' => true, /* comment parsing */
+ ] );
+ $output = $balancer->balance( $input );
+
+ // Ignore self-closing tags
+ $output = preg_replace( '/\s*\/>/', '>', $output );
+
+ $this->assertEquals( $expected, $output, $description );
+ }
+
+ public static function provideBalancerTests() {
+ // Get the tests from html5lib-tests.json
+ $json = json_decode( file_get_contents(
+ __DIR__ . '/html5lib-tests.json'
+ ), true );
+ // Munge this slightly into the format phpunit expects
+ // for providers, and filter out HTML constructs which
+ // the balancer doesn't support.
+ $tests = [];
+ $okre = "~ \A
+ (?i:<!DOCTYPE\ html>)?
+ <html><head></head><body>
+ .*
+ </body></html>
+ \z ~xs";
+ foreach ( $json as $filename => $cases ) {
+ foreach ( $cases as $case ) {
+ $html = $case['document']['html'];
+ if ( !preg_match( $okre, $html ) ) {
+ // Skip tests which involve stuff in the <head> or
+ // weird doctypes.
+ continue;
+ }
+ // We used to do this:
+ // $html = substr( $html, strlen( $start ), -strlen( $end ) );
+ // But now we use a different field in the test case,
+ // which reports how domino would parse this case in a
+ // no-quirks <body> context. (The original test case may
+ // have had a different context, or relied on quirks mode.)
+ $html = $case['document']['noQuirksBodyHtml'];
+ // Normalize case of SVG attributes.
+ $html = str_replace( 'foreignObject', 'foreignobject', $html );
+ // Normalize case of MathML attributes.
+ $html = str_replace( 'definitionURL', 'definitionurl', $html );
+
+ if (
+ isset( $case['document']['props']['comment'] ) &&
+ preg_match( ',<!--[^>]*<,', $html )
+ ) {
+ // Skip tests which include HTML comments containing
+ // the < character, which we don't support.
+ continue;
+ }
+ if ( strpos( $case['data'], '<![CDATA[' ) !== false ) {
+ // Skip tests involving <![CDATA[ ]]> quoting.
+ continue;
+ }
+ if (
+ stripos( $case['data'], '<!DOCTYPE' ) !== false &&
+ stripos( $case['data'], '<!DOCTYPE html>' ) === false
+ ) {
+ // Skip tests involving unusual doctypes.
+ continue;
+ }
+ $literalre = "~ <rdar: | < /? (
+ html | head | body | frame | frameset | plaintext
+ ) > ~xi";
+ if ( preg_match( $literalre, $case['data'] ) ) {
+ // Skip tests involving some literal tags, which are
+ // unsupported but don't show up in the expected output.
+ continue;
+ }
+ if (
+ isset( $case['document']['props']['tags']['iframe'] ) ||
+ isset( $case['document']['props']['tags']['noembed'] ) ||
+ isset( $case['document']['props']['tags']['noscript'] ) ||
+ isset( $case['document']['props']['tags']['script'] ) ||
+ isset( $case['document']['props']['tags']['svg script'] ) ||
+ isset( $case['document']['props']['tags']['svg title'] ) ||
+ isset( $case['document']['props']['tags']['title'] ) ||
+ isset( $case['document']['props']['tags']['xmp'] )
+ ) {
+ // Skip tests with unsupported tags which *do* show
+ // up in the expected output.
+ continue;
+ }
+ if (
+ $filename === 'entities01.dat' ||
+ $filename === 'entities02.dat' ||
+ preg_match( '/&([a-z]+|#x[0-9A-F]+);/i', $case['data'] ) ||
+ preg_match( '/^(&|&#|&#X|&#x|&#45|&x-test|&AMP)$/', $case['data'] )
+ ) {
+ // Skip tests involving entity encoding.
+ continue;
+ }
+ if (
+ isset( $case['document']['props']['tagWithLt'] ) ||
+ isset( $case['document']['props']['attrWithFunnyChar'] ) ||
+ preg_match( ':^(</b test|<di|<foo bar=qux/>)$:', $case['data'] ) ||
+ preg_match( ':</p<p>:', $case['data'] ) ||
+ preg_match( ':<b &=&amp>|<p/x/y/z>:', $case['data'] )
+ ) {
+ // Skip tests with funny tag or attribute names,
+ // which are really tests of the HTML tokenizer, not
+ // the tree builder.
+ continue;
+ }
+ if (
+ preg_match( ':encoding=" text/html "|type=" hidden":', $case['data'] )
+ ) {
+ // The Sanitizer normalizes whitespace in attribute
+ // values, which makes this test case invalid.
+ continue;
+ }
+ if ( $filename === 'plain-text-unsafe.dat' ) {
+ // Skip tests with ASCII null, etc.
+ continue;
+ }
+ $data = preg_replace(
+ '~<!DOCTYPE html>~i', '', $case['data']
+ );
+ $tests[] = [
+ $filename, # use better description?
+ $data,
+ $html,
+ false # strict HTML5 compat mode, no tidy
+ ];
+ }
+ }
+
+ # Some additional tests for mediawiki-specific features
+ $tests[] = [
+ 'Round-trip serialization for <pre>/<listing>/<textarea>',
+ "<pre>\n\na</pre><listing>\n\nb</listing><textarea>\n\nc</textarea>",
+ "<pre>\n\na</pre><listing>\n\nb</listing><textarea>\n\nc</textarea>",
+ true # use the tidy-compatible mode
+ ];
+
+ return $tests;
+ }
+}
diff --git a/www/wiki/tests/phpunit/includes/tidy/RemexDriverTest.php b/www/wiki/tests/phpunit/includes/tidy/RemexDriverTest.php
new file mode 100644
index 00000000..a5ebaa5d
--- /dev/null
+++ b/www/wiki/tests/phpunit/includes/tidy/RemexDriverTest.php
@@ -0,0 +1,307 @@
+<?php
+
+class RemexDriverTest extends MediaWikiTestCase {
+ static private $remexTidyTestData = [
+ // Tests from Html5Depurate
+ [
+ 'Empty string',
+ "",
+ ""
+ ],
+ [
+ 'Simple p-wrap',
+ "x",
+ "<p>x</p>"
+ ],
+ [
+ 'No p-wrap of blank node',
+ " ",
+ " "
+ ],
+ [
+ 'p-wrap terminated by div',
+ "x<div></div>",
+ "<p>x</p><div></div>"
+ ],
+ [
+ 'p-wrap not terminated by span',
+ "x<span></span>",
+ "<p>x<span></span></p>"
+ ],
+ [
+ 'An element is non-blank and so gets p-wrapped',
+ "<span></span>",
+ "<p><span></span></p>"
+ ],
+ [
+ 'The blank flag is set after a block-level element',
+ "<div></div> ",
+ "<div></div> "
+ ],
+ [
+ 'Blank detection between two block-level elements',
+ "<div></div> <div></div>",
+ "<div></div> <div></div>"
+ ],
+ [
+ 'But p-wrapping of non-blank content works after an element',
+ "<div></div>x",
+ "<div></div><p>x</p>"
+ ],
+ [
+ 'p-wrapping between two block-level elements',
+ "<div></div>x<div></div>",
+ "<div></div><p>x</p><div></div>"
+ ],
+ [
+ 'p-wrap inside blockquote',
+ "<blockquote>x</blockquote>",
+ "<blockquote><p>x</p></blockquote>"
+ ],
+ [
+ 'A comment is blank for p-wrapping purposes',
+ "<!-- x -->",
+ "<!-- x -->"
+ ],
+ [
+ 'A comment is blank even when a p-wrap was opened by a text node',
+ " <!-- x -->",
+ " <!-- x -->"
+ ],
+ [
+ 'A comment does not open a p-wrap',
+ "<!-- x -->x",
+ "<!-- x --><p>x</p>"
+ ],
+ [
+ 'A comment does not close a p-wrap',
+ "x<!-- x -->",
+ "<p>x<!-- x --></p>"
+ ],
+ [
+ 'Empty li',
+ "<ul><li></li></ul>",
+ "<ul><li class=\"mw-empty-elt\"></li></ul>"
+ ],
+ [
+ 'li with element',
+ "<ul><li><span></span></li></ul>",
+ "<ul><li><span></span></li></ul>"
+ ],
+ [
+ 'li with text',
+ "<ul><li>x</li></ul>",
+ "<ul><li>x</li></ul>"
+ ],
+ [
+ 'Empty tr',
+ "<table><tbody><tr></tr></tbody></table>",
+ "<table><tbody><tr class=\"mw-empty-elt\"></tr></tbody></table>"
+ ],
+ [
+ 'Empty p',
+ "<p>\n</p>",
+ "<p class=\"mw-empty-elt\">\n</p>"
+ ],
+ [
+ 'No p-wrapping of an inline element which contains a block element (T150317)',
+ "<small><div>x</div></small>",
+ "<small><div>x</div></small>"
+ ],
+ [
+ 'p-wrapping of an inline element which contains an inline element',
+ "<small><b>x</b></small>",
+ "<p><small><b>x</b></small></p>"
+ ],
+ [
+ 'p-wrapping is enabled in a blockquote in an inline element',
+ "<small><blockquote>x</blockquote></small>",
+ "<small><blockquote><p>x</p></blockquote></small>"
+ ],
+ [
+ 'All bare text should be p-wrapped even when surrounded by block tags',
+ "<small><blockquote>x</blockquote></small>y<div></div>z",
+ "<small><blockquote><p>x</p></blockquote></small><p>y</p><div></div><p>z</p>"
+ ],
+ [
+ 'Split tag stack 1',
+ "<small>x<div>y</div>z</small>",
+ "<p><small>x</small></p><small><div>y</div></small><p><small>z</small></p>"
+ ],
+ [
+ 'Split tag stack 2',
+ "<small><div>y</div>z</small>",
+ "<small><div>y</div></small><p><small>z</small></p>"
+ ],
+ [
+ 'Split tag stack 3',
+ "<small>x<div>y</div></small>",
+ "<p><small>x</small></p><small><div>y</div></small>"
+ ],
+ [
+ 'Split tag stack 4 (modified to use splittable tag)',
+ "a<code>b<i>c<div>d</div></i>e</code>",
+ "<p>a<code>b<i>c</i></code></p><code><i><div>d</div></i></code><p><code>e</code></p>"
+ ],
+ [
+ "Split tag stack regression check 1",
+ "x<span><div>y</div></span>",
+ "<p>x</p><span><div>y</div></span>"
+ ],
+ [
+ "Split tag stack regression check 2 (modified to use splittable tag)",
+ "a<code><i><div>d</div></i>e</code>",
+ "<p>a</p><code><i><div>d</div></i></code><p><code>e</code></p>"
+ ],
+ // Simple tests from pwrap.js
+ [
+ 'Simple pwrap test 1',
+ 'a',
+ '<p>a</p>'
+ ],
+ [
+ '<span> is not a splittable tag, but gets p-wrapped in simple wrapping scenarios',
+ '<span>a</span>',
+ '<p><span>a</span></p>'
+ ],
+ [
+ 'Simple pwrap test 3',
+ 'x <div>a</div> <div>b</div> y',
+ '<p>x </p><div>a</div> <div>b</div><p> y</p>'
+ ],
+ [
+ 'Simple pwrap test 4',
+ 'x<!--c--> <div>a</div> <div>b</div> <!--c-->y',
+ '<p>x<!--c--> </p><div>a</div> <div>b</div> <!--c--><p>y</p>'
+ ],
+ // Complex tests from pwrap.js
+ [
+ 'Complex pwrap test 1',
+ '<i>x<div>a</div>y</i>',
+ '<p><i>x</i></p><i><div>a</div></i><p><i>y</i></p>'
+ ],
+ [
+ 'Complex pwrap test 2',
+ 'a<small>b</small><i>c<div>d</div>e</i>f',
+ '<p>a<small>b</small><i>c</i></p><i><div>d</div></i><p><i>e</i>f</p>'
+ ],
+ [
+ 'Complex pwrap test 3',
+ 'a<small>b<i>c<div>d</div></i>e</small>',
+ '<p>a<small>b<i>c</i></small></p><small><i><div>d</div></i></small><p><small>e</small></p>'
+ ],
+ [
+ 'Complex pwrap test 4',
+ 'x<small><div>y</div></small>',
+ '<p>x</p><small><div>y</div></small>'
+ ],
+ [
+ 'Complex pwrap test 5',
+ 'a<small><i><div>d</div></i>e</small>',
+ '<p>a</p><small><i><div>d</div></i></small><p><small>e</small></p>'
+ ],
+ // phpcs:disable Generic.Files.LineLength
+ [
+ 'Complex pwrap test 6',
+ '<i>a<div>b</div>c<b>d<div>e</div>f</b>g</i>',
+ // PHP 5 does not allow concatenation in initialisation of a class static variable
+ '<p><i>a</i></p><i><div>b</div></i><p><i>c<b>d</b></i></p><i><b><div>e</div></b></i><p><i><b>f</b>g</i></p>'
+ ],
+ // phpcs:enable
+ /* FIXME the second <b> causes a stack split which clones the <i> even
+ * though no <p> is actually generated
+ [
+ 'Complex pwrap test 7',
+ '<i><b><font><div>x</div></font></b><div>y</div><b><font><div>z</div></font></b></i>',
+ '<i><b><font><div>x</div></font></b><div>y</div><b><font><div>z</div></font></b></i>'
+ ],
+ */
+ // New local tests
+ [
+ 'Blank text node after block end',
+ '<small>x<div>y</div> <b>z</b></small>',
+ '<p><small>x</small></p><small><div>y</div></small><p><small> <b>z</b></small></p>'
+ ],
+ [
+ 'Text node fostering (FIXME: wrap missing)',
+ '<table>x</table>',
+ 'x<table></table>'
+ ],
+ [
+ 'Blockquote fostering',
+ '<table><blockquote>x</blockquote></table>',
+ '<blockquote><p>x</p></blockquote><table></table>'
+ ],
+ [
+ 'Block element fostering',
+ '<table><div>x',
+ '<div>x</div><table></table>'
+ ],
+ [
+ 'Formatting element fostering (FIXME: wrap missing)',
+ '<table><b>x',
+ '<b>x</b><table></table>'
+ ],
+ [
+ 'AAA clone of p-wrapped element (FIXME: empty b)',
+ '<b>x<p>y</b>z</p>',
+ '<p><b>x</b></p><b></b><p><b>y</b>z</p>',
+ ],
+ [
+ 'AAA with fostering (FIXME: wrap missing)',
+ '<table><b>1<p>2</b>3</p>',
+ '<b>1</b><p><b>2</b>3</p><table></table>'
+ ],
+ [
+ 'AAA causes reparent of p-wrapped text node (T178632)',
+ '<i><blockquote>x</i></blockquote>',
+ '<i></i><blockquote><p><i>x</i></p></blockquote>',
+ ],
+ [
+ 'p-wrap ended by reparenting (T200827)',
+ '<i><blockquote><p></i>',
+ '<i></i><blockquote><p><i></i></p><p><i></i></p></blockquote>',
+ ],
+ ];
+
+ public function provider() {
+ return self::$remexTidyTestData;
+ }
+
+ /**
+ * @dataProvider provider
+ * @covers MediaWiki\Tidy\RemexCompatFormatter
+ * @covers MediaWiki\Tidy\RemexCompatMunger
+ * @covers MediaWiki\Tidy\RemexDriver
+ * @covers MediaWiki\Tidy\RemexMungerData
+ */
+ public function testTidy( $desc, $input, $expected ) {
+ $r = new MediaWiki\Tidy\RemexDriver( [] );
+ $result = $r->tidy( $input );
+ $this->assertEquals( $expected, $result, $desc );
+ }
+
+ public function html5libProvider() {
+ $files = json_decode( file_get_contents( __DIR__ . '/html5lib-tests.json' ), true );
+ $tests = [];
+ foreach ( $files as $file => $fileTests ) {
+ foreach ( $fileTests as $i => $test ) {
+ $tests[] = [ "$file:$i", $test['data'] ];
+ }
+ }
+ return $tests;
+ }
+
+ /**
+ * This is a quick and dirty test to make sure none of the html5lib tests
+ * generate exceptions. We don't really know what the expected output is.
+ *
+ * @dataProvider html5libProvider
+ * @coversNothing
+ */
+ public function testHtml5Lib( $desc, $input ) {
+ $r = new MediaWiki\Tidy\RemexDriver( [] );
+ $result = $r->tidy( $input );
+ $this->assertTrue( true, $desc );
+ }
+}
diff --git a/www/wiki/tests/phpunit/includes/tidy/html5lib-tests.json b/www/wiki/tests/phpunit/includes/tidy/html5lib-tests.json
new file mode 100644
index 00000000..2b1c3e8c
--- /dev/null
+++ b/www/wiki/tests/phpunit/includes/tidy/html5lib-tests.json
@@ -0,0 +1,80692 @@
+{
+ "adoption01.dat": [
+ {
+ "data": "<a><p></a></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,10): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><p><a></a></p></body></html>",
+ "noQuirksBodyHtml": "<a></a><p><a></a></p>"
+ }
+ },
+ {
+ "data": "<a>1<p>2</a>3</p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,12): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><p><a>2</a>3</p></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><p><a>2</a>3</p>"
+ }
+ },
+ {
+ "data": "<a>1<button>2</a>3</button>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,17): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><button><a>2</a>3</button></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><button><a>2</a>3</button>"
+ }
+ },
+ {
+ "data": "<a>1<b>2</a>3</b>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,12): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1<b>2</b></a><b>3</b></body></html>",
+ "noQuirksBodyHtml": "<a>1<b>2</b></a><b>3</b>"
+ }
+ },
+ {
+ "data": "<a>1<div>2<div>3</a>4</div>5</div>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,20): adoption-agency-1.3",
+ "(1,20): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "text": "4"
+ }
+ ]
+ },
+ {
+ "text": "5"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><div><a>2</a><div><a>3</a>4</div>5</div></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><div><a>2</a><div><a>3</a>4</div>5</div>"
+ }
+ },
+ {
+ "data": "<table><a>1<p>2</a>3</p>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,11): unexpected-character-implies-table-voodoo",
+ "(1,14): unexpected-start-tag-implies-table-voodoo",
+ "(1,15): unexpected-character-implies-table-voodoo",
+ "(1,19): unexpected-end-tag-implies-table-voodoo",
+ "(1,19): adoption-agency-1.3",
+ "(1,20): unexpected-character-implies-table-voodoo",
+ "(1,24): unexpected-end-tag-implies-table-voodoo",
+ "(1,24): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><p><a>2</a>3</p><table></table></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><p><a>2</a>3</p><table></table>"
+ }
+ },
+ {
+ "data": "<b><b><a><p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): adoption-agency-1.3",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><b><a></a><p><a></a></p></b></b></body></html>",
+ "noQuirksBodyHtml": "<b><b><a></a><p><a></a></p></b></b>"
+ }
+ },
+ {
+ "data": "<b><a><b><p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): adoption-agency-1.3",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><a><b></b></a><b><p><a></a></p></b></b></body></html>",
+ "noQuirksBodyHtml": "<b><a><b></b></a><b><p><a></a></p></b></b>"
+ }
+ },
+ {
+ "data": "<a><b><b><p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): adoption-agency-1.3",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b><b></b></b></a><b><b><p><a></a></p></b></b></body></html>",
+ "noQuirksBodyHtml": "<a><b><b></b></b></a><b><b><p><a></a></p></b></b>"
+ }
+ },
+ {
+ "data": "<p>1<s id=\"A\">2<b id=\"B\">3</p>4</s>5</b>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,30): unexpected-end-tag",
+ "(1,35): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "s": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "s",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "A"
+ }
+ ],
+ "children": [
+ {
+ "text": "2"
+ },
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "B"
+ }
+ ],
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "s",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "A"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "B"
+ }
+ ],
+ "children": [
+ {
+ "text": "4"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "B"
+ }
+ ],
+ "children": [
+ {
+ "text": "5"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p>1<s id=\"A\">2<b id=\"B\">3</b></s></p><s id=\"A\"><b id=\"B\">4</b></s><b id=\"B\">5</b></body></html>",
+ "noQuirksBodyHtml": "<p>1<s id=\"A\">2<b id=\"B\">3</b></s></p><s id=\"A\"><b id=\"B\">4</b></s><b id=\"B\">5</b>"
+ }
+ },
+ {
+ "data": "<table><a>1<td>2</td>3</table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,11): unexpected-character-implies-table-voodoo",
+ "(1,15): unexpected-cell-in-table-body",
+ "(1,30): unexpected-implied-end-tag-in-table-view"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><a>3</a><table><tbody><tr><td>2</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><a>3</a><table><tbody><tr><td>2</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table>A<td>B</td>C</table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,8): unexpected-character-implies-table-voodoo",
+ "(1,12): unexpected-cell-in-table-body",
+ "(1,22): unexpected-character-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "AC"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>AC<table><tbody><tr><td>B</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "AC<table><tbody><tr><td>B</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<a><svg><tr><input></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-end-tag",
+ "(1,23): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "svg svg": true,
+ "svg tr": true,
+ "svg input": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "tr",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "input",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><svg><tr><input></input></tr></svg></a></body></html>",
+ "noQuirksBodyHtml": "<a><svg><tr><input></input></tr></svg></a>"
+ }
+ },
+ {
+ "data": "<div><a><b><div><div><div><div><div><div><div><div><div><div></a>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "a": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><a><b></b></a><b><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a><div><div></div></div></a></div></div></div></div></div></div></div></div></b></div></body></html>",
+ "noQuirksBodyHtml": "<div><a><b></b></a><b><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a><div><div></div></div></a></div></div></div></div></div></div></div></div></b></div>"
+ }
+ },
+ {
+ "data": "<div><a><b><u><i><code><div></a>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,32): adoption-agency-1.3",
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "a": true,
+ "b": true,
+ "u": true,
+ "i": true,
+ "code": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "u",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "code"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "u",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "code",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><a><b><u><i><code></code></i></u></b></a><u><i><code><div><a></a></div></code></i></u></div></body></html>",
+ "noQuirksBodyHtml": "<div><a><b><u><i><code></code></i></u></b></a><u><i><code><div><a></a></div></code></i></u></div>"
+ }
+ },
+ {
+ "data": "<b><b><b><b>x</b></b></b></b>y",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "y"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><b><b><b>x</b></b></b></b>y</body></html>",
+ "noQuirksBodyHtml": "<b><b><b><b>x</b></b></b></b>y"
+ }
+ },
+ {
+ "data": "<p><b><b><b><b><p>x",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-end-tag",
+ "(1,19): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b><b><b><b></b></b></b></b></p><p><b><b><b>x</b></b></b></p></body></html>",
+ "noQuirksBodyHtml": "<p><b><b><b><b></b></b></b></b></p><p><b><b><b>x</b></b></b></p>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foob><fooc><aside></b></em>",
+ "errors": [
+ "(1,35): adoption-agency-1.3",
+ "(1,40): adoption-agency-1.3",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "em": true,
+ "foo": true,
+ "foob": true,
+ "fooc": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "fooc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ],
+ "html": "<b><em><foo><foob><fooc></fooc></foob></foo></em></b><aside><b></b></aside>",
+ "noQuirksBodyHtml": "<b><em><foo><foob><fooc></fooc></foob></foo></em></b><aside><b></b></aside>"
+ }
+ }
+ ],
+ "adoption02.dat": [
+ {
+ "data": "<b>1<i>2<p>3</b>4",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): adoption-agency-1.3",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "text": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>1<i>2</i></b><i><p><b>3</b>4</p></i></body></html>",
+ "noQuirksBodyHtml": "<b>1<i>2</i></b><i><p><b>3</b>4</p></i>"
+ }
+ },
+ {
+ "data": "<a><div><style></style><address><a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,35): unexpected-start-tag-implies-end-tag",
+ "(1,35): adoption-agency-1.3",
+ "(1,35): adoption-agency-1.3",
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "div": true,
+ "style": true,
+ "address": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "style"
+ }
+ ]
+ },
+ {
+ "tag": "address",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><div><a><style></style></a><address><a></a><a></a></address></div></body></html>",
+ "noQuirksBodyHtml": "<a></a><div><a><style></style></a><address><a></a><a></a></address></div>"
+ }
+ }
+ ],
+ "comments01.dat": [
+ {
+ "data": "FOO<!-- BAR -->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR "
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR --!>BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-bang-after-double-dash-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR "
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR -- >BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-char-in-comment",
+ "(1,21): eof-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR -- >BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -- >BAZ--></body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -- >BAZ-->"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-char-in-comment",
+ "(1,24): unexpected-char-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR -- <QUX> -- MUX "
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR -- <QUX> -- MUX --!>BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-char-in-comment",
+ "(1,24): unexpected-char-in-comment",
+ "(1,31): unexpected-bang-after-double-dash-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR -- <QUX> -- MUX "
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR -- <QUX> -- MUX -- >BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-char-in-comment",
+ "(1,24): unexpected-char-in-comment",
+ "(1,31): unexpected-char-in-comment",
+ "(1,35): eof-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR -- <QUX> -- MUX -- >BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -- >BAZ--></body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -- >BAZ-->"
+ }
+ },
+ {
+ "data": "FOO<!---->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": ""
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!---->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!--->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,9): incorrect-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": ""
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!---->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,8): incorrect-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": ""
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!---->BAZ"
+ }
+ },
+ {
+ "data": "<?xml version=\"1.0\">Hi",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,22): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?xml version=\"1.0\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hi"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!--?xml version=\"1.0\"--><html><head></head><body>Hi</body></html>",
+ "noQuirksBodyHtml": "<!--?xml version=\"1.0\"-->Hi"
+ }
+ },
+ {
+ "data": "<?xml version=\"1.0\">",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,20): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?xml version=\"1.0\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?xml version=\"1.0\"--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?xml version=\"1.0\"-->"
+ }
+ },
+ {
+ "data": "<?xml version",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,13): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?xml version"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?xml version--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?xml version-->"
+ }
+ },
+ {
+ "data": "FOO<!----->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,10): unexpected-dash-after-double-dash-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": "-"
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!----->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!----->BAZ"
+ }
+ },
+ {
+ "data": "<html><!-- comment --><title>Comment before head</title>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "comment": " comment "
+ },
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "Comment before head"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><!-- comment --><head><title>Comment before head</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- comment --><title>Comment before head</title>"
+ }
+ }
+ ],
+ "doctype01.dat": [
+ {
+ "data": "<!DOCTYPE html>Hello",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!dOctYpE HtMl>Hello",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPEhtml>Hello",
+ "errors": [
+ "(1,9): need-space-after-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE>Hello",
+ "errors": [
+ "(1,9): need-space-after-doctype",
+ "(1,10): expected-doctype-name-but-got-right-bracket",
+ "(1,10): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE ><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE >Hello",
+ "errors": [
+ "(1,11): expected-doctype-name-but-got-right-bracket",
+ "(1,11): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE ><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato>Hello",
+ "errors": [
+ "(1,17): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato >Hello",
+ "errors": [
+ "(1,18): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato taco>Hello",
+ "errors": [
+ "(1,17): expected-space-or-right-bracket-in-doctype",
+ "(1,22): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato taco \"ddd>Hello",
+ "errors": [
+ "(1,17): expected-space-or-right-bracket-in-doctype",
+ "(1,27): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato sYstEM>Hello",
+ "errors": [
+ "(1,24): unexpected-char-in-doctype",
+ "(1,24): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato sYstEM >Hello",
+ "errors": [
+ "(1,28): unexpected-char-in-doctype",
+ "(1,28): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato sYstEM ggg>Hello",
+ "errors": [
+ "(1,34): unexpected-char-in-doctype",
+ "(1,37): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEM taco >Hello",
+ "errors": [
+ "(1,25): unexpected-char-in-doctype",
+ "(1,31): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEM 'taco\"'>Hello",
+ "errors": [
+ "(1,32): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"\" \"taco\"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEM \"taco\">Hello",
+ "errors": [
+ "(1,31): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"\" \"taco\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEM \"tai'co\">Hello",
+ "errors": [
+ "(1,33): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"\" \"tai'co\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEMtaco \"ddd\">Hello",
+ "errors": [
+ "(1,24): unexpected-char-in-doctype",
+ "(1,34): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato grass SYSTEM taco>Hello",
+ "errors": [
+ "(1,17): expected-space-or-right-bracket-in-doctype",
+ "(1,35): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato pUbLIc>Hello",
+ "errors": [
+ "(1,24): unexpected-end-of-doctype",
+ "(1,24): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato pUbLIc >Hello",
+ "errors": [
+ "(1,25): unexpected-end-of-doctype",
+ "(1,25): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato pUbLIcgoof>Hello",
+ "errors": [
+ "(1,24): unexpected-char-in-doctype",
+ "(1,28): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC goof>Hello",
+ "errors": [
+ "(1,25): unexpected-char-in-doctype",
+ "(1,29): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC \"go'of\">Hello",
+ "errors": [
+ "(1,32): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"go'of\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC 'go'of'>Hello",
+ "errors": [
+ "(1,29): unexpected-char-in-doctype",
+ "(1,32): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"go\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC 'go:hh of' >Hello",
+ "errors": [
+ "(1,38): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"go:hh of\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC \"W3C-//dfdf\" SYSTEM ggg>Hello",
+ "errors": [
+ "(1,38): unexpected-char-in-doctype",
+ "(1,48): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"W3C-//dfdf\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n \"http://www.w3.org/TR/html4/strict.dtd\">Hello",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE ...>Hello",
+ "errors": [
+ "(1,14): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "..."
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE ...><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">",
+ "errors": [
+ "(2,58): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">",
+ "errors": [
+ "(2,54): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] \"uri\" [ \n<!-- internal declarations -->\n]>",
+ "errors": [
+ "(1,23): expected-space-or-right-bracket-in-doctype",
+ "(2,30): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "root-element"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "]>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE root-element><html><head></head><body>]&gt;</body></html>",
+ "noQuirksBodyHtml": "\n]&gt;"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html PUBLIC\n \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\"\n \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\">",
+ "errors": [
+ "(3,53): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\" \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML SYSTEM \"http://www.w3.org/DTD/HTML4-strict.dtd\"><body><b>Mine!</b></body>",
+ "errors": [
+ "(1,63): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"\" \"http://www.w3.org/DTD/HTML4-strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Mine!"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b>Mine!</b></body></html>",
+ "noQuirksBodyHtml": "<b>Mine!</b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\"http://www.w3.org/TR/html4/strict.dtd\">",
+ "errors": [
+ "(1,50): unexpected-char-in-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"'http://www.w3.org/TR/html4/strict.dtd'>",
+ "errors": [
+ "(1,50): unexpected-char-in-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC\"-//W3C//DTD HTML 4.01//EN\"'http://www.w3.org/TR/html4/strict.dtd'>",
+ "errors": [
+ "(1,21): unexpected-char-in-doctype",
+ "(1,49): unexpected-char-in-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'>",
+ "errors": [
+ "(1,21): unexpected-char-in-doctype",
+ "(1,49): unexpected-char-in-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "domjs-unsafe.dat": [
+ {
+ "data": "<svg><![CDATA[foo\nbar]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(2,6): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo\nbar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[foo\rbar]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(2,6): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo\nbar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[foo\r\nbar]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(2,6): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo\nbar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
+ }
+ },
+ {
+ "data": "<script>a='\u0000'</script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "a='�'",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script>a='�'</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script>a='�'</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--\u0000</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,25): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--�</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--�</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--foo\u0000</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,28): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--foo�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--foo�</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--foo�</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-\u0000</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,30): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-�</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-�</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo--\u0000</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,31): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo--�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo--�</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo--�</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,29): expected-script-data-but-got-eof",
+ "(1,29): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-<</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-<</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-<S",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,31): expected-script-data-but-got-eof",
+ "(1,31): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-<S",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-<S</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-<S</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-</SCRIPT>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<p></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<p>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<p></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<p></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script></script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script></script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script></script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script></script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script>\u0000</script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,33): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script>�</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script>�</script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script>�</script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script>-\u0000</script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,34): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script>-�</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script>-�</script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script>-�</script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script>--\u0000</script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,35): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script>--�</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script>--�</script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script>--�</script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script>---</script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script>---</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script>---</script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script>---</script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script></scrip></SCRIPT>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script></scrip></SCRIPT></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script></scrip </SCRIPT>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script></scrip </SCRIPT></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script></scrip/</SCRIPT>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script></scrip/</SCRIPT></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"></scrip/></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "</scrip/>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"></scrip/></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"></scrip/></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"></scrip ></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "</scrip >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"></scrip ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"></scrip ></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--</scrip></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--</scrip>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--</scrip></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--</scrip </script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--</scrip ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--</scrip </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip </script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--</scrip/</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--</scrip/",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--</scrip/</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip/</script>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!DOCTYPE html>",
+ "errors": [
+ "(1,30): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><!DOCTYPE html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head><!DOCTYPE html></head>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></head><!DOCTYPE html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,34): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body></body><!DOCTYPE html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><!DOCTYPE html></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table></table></body></html>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "<select><!DOCTYPE html></select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<table><colgroup><!DOCTYPE html></colgroup></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,32): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup><!--test--></colgroup></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "comment": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><!--test--></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><!--test--></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup><html></colgroup></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,23): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup> foo</colgroup></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,32): foster-parenting-character-in-table",
+ "(1,32): foster-parenting-character-in-table",
+ "(1,32): foster-parenting-character-in-table",
+ "(1,32): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>foo<table><colgroup> </colgroup></table></body></html>",
+ "noQuirksBodyHtml": "foo<table><colgroup> </colgroup></table>"
+ }
+ },
+ {
+ "data": "<select><!--test--></select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "comment": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><!--test--></select></body></html>",
+ "noQuirksBodyHtml": "<select><!--test--></select>"
+ }
+ },
+ {
+ "data": "<select><html></select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<frameset><html></frameset>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,16): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<frameset></frameset><html>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,27): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<frameset></frameset><!DOCTYPE html>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,36): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><body></body></html><!DOCTYPE html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,41): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<svg><!DOCTYPE html></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<svg><font></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><font></font></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><font></font></svg>"
+ }
+ },
+ {
+ "data": "<svg><font id=foo></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><font id=\"foo\"></font></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><font id=\"foo\"></font></svg>"
+ }
+ },
+ {
+ "data": "<svg><font size=4></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-html-element-in-foreign-content",
+ "(1,31): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg><font size=\"4\"></font></body></html>",
+ "noQuirksBodyHtml": "<svg><font size=\"4\"></font></svg>"
+ }
+ },
+ {
+ "data": "<svg><font color=red></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-html-element-in-foreign-content",
+ "(1,34): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg><font color=\"red\"></font></body></html>",
+ "noQuirksBodyHtml": "<svg><font color=\"red\"></font></svg>"
+ }
+ },
+ {
+ "data": "<svg><font font=sans></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "font",
+ "value": "sans"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><font font=\"sans\"></font></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><font font=\"sans\"></font></svg>"
+ }
+ }
+ ],
+ "entities01.dat": [
+ {
+ "data": "FOO&gt;BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO>BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&gt;BAR</body></html>",
+ "noQuirksBodyHtml": "FOO&gt;BAR"
+ }
+ },
+ {
+ "data": "FOO&gtBAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,6): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO>BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&gt;BAR</body></html>",
+ "noQuirksBodyHtml": "FOO&gt;BAR"
+ }
+ },
+ {
+ "data": "FOO&gt BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,6): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO> BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&gt; BAR</body></html>",
+ "noQuirksBodyHtml": "FOO&gt; BAR"
+ }
+ },
+ {
+ "data": "FOO&gt;;;BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO>;;BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&gt;;;BAR</body></html>",
+ "noQuirksBodyHtml": "FOO&gt;;;BAR"
+ }
+ },
+ {
+ "data": "I'm &notit; I tell you",
+ "errors": [
+ "(1,4): expected-doctype-but-got-chars",
+ "(1,9): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "I'm ¬it; I tell you"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>I'm ¬it; I tell you</body></html>",
+ "noQuirksBodyHtml": "I'm ¬it; I tell you"
+ }
+ },
+ {
+ "data": "I'm &notin; I tell you",
+ "errors": [
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "I'm ∉ I tell you"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>I'm ∉ I tell you</body></html>",
+ "noQuirksBodyHtml": "I'm ∉ I tell you"
+ }
+ },
+ {
+ "data": "FOO& BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO& BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&amp; BAR</body></html>",
+ "noQuirksBodyHtml": "FOO&amp; BAR"
+ }
+ },
+ {
+ "data": "FOO&<BAR>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,9): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bar": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&",
+ "escaped": true
+ },
+ {
+ "tag": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&amp;<bar></bar></body></html>",
+ "noQuirksBodyHtml": "FOO&amp;<bar></bar>"
+ }
+ },
+ {
+ "data": "FOO&&&&gt;BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&&&>BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&amp;&amp;&amp;&gt;BAR</body></html>",
+ "noQuirksBodyHtml": "FOO&amp;&amp;&amp;&gt;BAR"
+ }
+ },
+ {
+ "data": "FOO&#41;BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO)BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO)BAR</body></html>",
+ "noQuirksBodyHtml": "FOO)BAR"
+ }
+ },
+ {
+ "data": "FOO&#x41;BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOABAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOABAR</body></html>",
+ "noQuirksBodyHtml": "FOOABAR"
+ }
+ },
+ {
+ "data": "FOO&#X41;BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOABAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOABAR</body></html>",
+ "noQuirksBodyHtml": "FOOABAR"
+ }
+ },
+ {
+ "data": "FOO&#BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,5): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&#BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&amp;#BAR</body></html>",
+ "noQuirksBodyHtml": "FOO&amp;#BAR"
+ }
+ },
+ {
+ "data": "FOO&#ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,5): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&#ZOO",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&amp;#ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO&amp;#ZOO"
+ }
+ },
+ {
+ "data": "FOO&#xBAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,7): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOºR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOºR</body></html>",
+ "noQuirksBodyHtml": "FOOºR"
+ }
+ },
+ {
+ "data": "FOO&#xZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,6): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&#xZOO",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&amp;#xZOO</body></html>",
+ "noQuirksBodyHtml": "FOO&amp;#xZOO"
+ }
+ },
+ {
+ "data": "FOO&#XZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,6): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&#XZOO",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&amp;#XZOO</body></html>",
+ "noQuirksBodyHtml": "FOO&amp;#XZOO"
+ }
+ },
+ {
+ "data": "FOO&#41BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,7): numeric-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO)BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO)BAR</body></html>",
+ "noQuirksBodyHtml": "FOO)BAR"
+ }
+ },
+ {
+ "data": "FOO&#x41BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,10): numeric-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO䆺R"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO䆺R</body></html>",
+ "noQuirksBodyHtml": "FOO䆺R"
+ }
+ },
+ {
+ "data": "FOO&#x41ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,8): numeric-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOAZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOAZOO</body></html>",
+ "noQuirksBodyHtml": "FOOAZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0000;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0078;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOxZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOxZOO</body></html>",
+ "noQuirksBodyHtml": "FOOxZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0079;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOyZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOyZOO</body></html>",
+ "noQuirksBodyHtml": "FOOyZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0080;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO€ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO€ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO€ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0081;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0082;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‚ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‚ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‚ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0083;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOƒZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOƒZOO</body></html>",
+ "noQuirksBodyHtml": "FOOƒZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0084;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO„ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO„ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO„ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0085;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO…ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO…ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO…ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0086;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO†ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO†ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO†ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0087;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‡ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‡ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‡ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0088;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOˆZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOˆZOO</body></html>",
+ "noQuirksBodyHtml": "FOOˆZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0089;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‰ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‰ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‰ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x008A;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOŠZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOŠZOO</body></html>",
+ "noQuirksBodyHtml": "FOOŠZOO"
+ }
+ },
+ {
+ "data": "FOO&#x008B;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‹ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‹ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‹ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x008C;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOŒZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOŒZOO</body></html>",
+ "noQuirksBodyHtml": "FOOŒZOO"
+ }
+ },
+ {
+ "data": "FOO&#x008D;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOO&#x008E;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOŽZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOŽZOO</body></html>",
+ "noQuirksBodyHtml": "FOOŽZOO"
+ }
+ },
+ {
+ "data": "FOO&#x008F;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0090;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0091;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‘ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‘ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‘ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0092;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO’ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO’ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO’ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0093;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO“ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO“ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO“ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0094;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO”ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO”ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO”ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0095;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO•ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO•ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO•ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0096;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO–ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO–ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO–ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0097;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO—ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO—ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO—ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0098;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO˜ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO˜ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO˜ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x0099;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO™ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO™ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO™ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x009A;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOšZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOšZOO</body></html>",
+ "noQuirksBodyHtml": "FOOšZOO"
+ }
+ },
+ {
+ "data": "FOO&#x009B;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO›ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO›ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO›ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x009C;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOœZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOœZOO</body></html>",
+ "noQuirksBodyHtml": "FOOœZOO"
+ }
+ },
+ {
+ "data": "FOO&#x009D;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOO&#x009E;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOžZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOžZOO</body></html>",
+ "noQuirksBodyHtml": "FOOžZOO"
+ }
+ },
+ {
+ "data": "FOO&#x009F;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOŸZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOŸZOO</body></html>",
+ "noQuirksBodyHtml": "FOOŸZOO"
+ }
+ },
+ {
+ "data": "FOO&#x00A0;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO ZOO",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&nbsp;ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO&nbsp;ZOO"
+ }
+ },
+ {
+ "data": "FOO&#xD7FF;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO퟿ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO퟿ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO퟿ZOO"
+ }
+ },
+ {
+ "data": "FOO&#xD800;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO&#xD801;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO&#xDFFE;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO&#xDFFF;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO&#xE000;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOO&#x10FFFE;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO􏿾ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO􏿾ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO􏿾ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x1087D4;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO􈟔ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO􈟔ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO􈟔ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x10FFFF;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO􏿿ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO􏿿ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO􏿿ZOO"
+ }
+ },
+ {
+ "data": "FOO&#x110000;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO&#xFFFFFF;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO&#11111111111",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity",
+ "(1,13): eof-in-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�</body></html>",
+ "noQuirksBodyHtml": "FOO�"
+ }
+ },
+ {
+ "data": "FOO&#1111111111",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity",
+ "(1,13): eof-in-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�</body></html>",
+ "noQuirksBodyHtml": "FOO�"
+ }
+ },
+ {
+ "data": "FOO&#111111111111",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity",
+ "(1,13): eof-in-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�</body></html>",
+ "noQuirksBodyHtml": "FOO�"
+ }
+ },
+ {
+ "data": "FOO&#11111111111ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,16): numeric-entity-without-semicolon",
+ "(1,16): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO&#1111111111ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): numeric-entity-without-semicolon",
+ "(1,15): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO&#111111111111ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,17): numeric-entity-without-semicolon",
+ "(1,17): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ }
+ ],
+ "entities02.dat": [
+ {
+ "data": "<div bar=\"ZZ&gt;YY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>YY"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ>YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ>YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&\"></div>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;\"></div>"
+ }
+ },
+ {
+ "data": "<div bar='ZZ&'></div>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=ZZ&></div>",
+ "errors": [
+ "(1,13): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&gt=YY\"></div>",
+ "errors": [
+ "(1,15): named-entity-without-semicolon",
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&gt=YY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;gt=YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gt=YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&gt0YY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&gt0YY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;gt0YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gt0YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&gt9YY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&gt9YY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;gt9YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gt9YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&gtaYY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&gtaYY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;gtaYY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gtaYY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&gtZYY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&gtZYY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;gtZYY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gtZYY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&gt YY\"></div>",
+ "errors": [
+ "(1,15): named-entity-without-semicolon",
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ> YY"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ> YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ> YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&gt\"></div>",
+ "errors": [
+ "(1,15): named-entity-without-semicolon",
+ "(1,17): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
+ }
+ },
+ {
+ "data": "<div bar='ZZ&gt'></div>",
+ "errors": [
+ "(1,15): named-entity-without-semicolon",
+ "(1,17): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=ZZ&gt></div>",
+ "errors": [
+ "(1,14): named-entity-without-semicolon",
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&pound_id=23\"></div>",
+ "errors": [
+ "(1,18): named-entity-without-semicolon",
+ "(1,26): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ£_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ£_id=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ£_id=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&prod_id=23\"></div>",
+ "errors": [
+ "(1,25): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&prod_id=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;prod_id=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;prod_id=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&pound;_id=23\"></div>",
+ "errors": [
+ "(1,27): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ£_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ£_id=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ£_id=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&prod;_id=23\"></div>",
+ "errors": [
+ "(1,26): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ∏_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ∏_id=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ∏_id=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&pound=23\"></div>",
+ "errors": [
+ "(1,18): named-entity-without-semicolon",
+ "(1,23): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&pound=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;pound=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;pound=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&prod=23\"></div>",
+ "errors": [
+ "(1,22): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&prod=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&amp;prod=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&amp;prod=23\"></div>"
+ }
+ },
+ {
+ "data": "<div>ZZ&pound_id=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,13): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ£_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ£_id=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ£_id=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ&prod_id=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ&prod_id=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ&amp;prod_id=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ&amp;prod_id=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ&pound;_id=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ£_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ£_id=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ£_id=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ&prod;_id=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ∏_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ∏_id=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ∏_id=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ&pound=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,13): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ£=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ£=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ£=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ&prod=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ&prod=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ&amp;prod=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ&amp;prod=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ&AElig=</div>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZÆ="
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZÆ=</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZÆ=</div>"
+ }
+ }
+ ],
+ "foreign-fragment.dat": [
+ {
+ "data": "<nobr>X",
+ "errors": [
+ "6: HTML start tag “nobr” in a foreign namespace context.",
+ "7: End of file seen and there were open elements.",
+ "6: Unclosed element “nobr”."
+ ],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg nobr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "nobr",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<nobr>X</nobr>",
+ "noQuirksBodyHtml": "<nobr>X</nobr>"
+ }
+ },
+ {
+ "data": "<font color></font>X",
+ "errors": [
+ "12: HTML start tag “font” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "color",
+ "value": ""
+ }
+ ]
+ },
+ {
+ "text": "X"
+ }
+ ],
+ "html": "<font color=\"\"></font>X",
+ "noQuirksBodyHtml": "<font color=\"\"></font>X"
+ }
+ },
+ {
+ "data": "<font></font>X",
+ "errors": [],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "text": "X"
+ }
+ ],
+ "html": "<font></font>X",
+ "noQuirksBodyHtml": "<font></font>X"
+ }
+ },
+ {
+ "data": "<g></path>X",
+ "errors": [
+ "10: End tag “path” did not match the name of the current open element (“g”).",
+ "11: End of file seen and there were open elements.",
+ "3: Unclosed element “g”."
+ ],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg g": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<g>X</g>",
+ "noQuirksBodyHtml": "<g>X</g>"
+ }
+ },
+ {
+ "data": "</path>X",
+ "errors": [
+ "5: Stray end tag “path”."
+ ],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</foreignObject>X",
+ "errors": [
+ "5: Stray end tag “foreignobject”."
+ ],
+ "fragment": {
+ "name": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</desc>X",
+ "errors": [
+ "5: Stray end tag “desc”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</title>X",
+ "errors": [
+ "5: Stray end tag “title”."
+ ],
+ "fragment": {
+ "name": "title",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</svg>X",
+ "errors": [
+ "5: Stray end tag “svg”."
+ ],
+ "fragment": {
+ "name": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mfenced>X",
+ "errors": [
+ "5: Stray end tag “mfenced”."
+ ],
+ "fragment": {
+ "name": "mfenced",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</malignmark>X",
+ "errors": [
+ "5: Stray end tag “malignmark”."
+ ],
+ "fragment": {
+ "name": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</math>X",
+ "errors": [
+ "5: Stray end tag “math”."
+ ],
+ "fragment": {
+ "name": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</annotation-xml>X",
+ "errors": [
+ "5: Stray end tag “annotation-xml”."
+ ],
+ "fragment": {
+ "name": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mtext>X",
+ "errors": [
+ "5: Stray end tag “mtext”."
+ ],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mi>X",
+ "errors": [
+ "5: Stray end tag “mi”."
+ ],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mo>X",
+ "errors": [
+ "5: Stray end tag “mo”."
+ ],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mn>X",
+ "errors": [
+ "5: Stray end tag “mn”."
+ ],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</ms>X",
+ "errors": [
+ "5: Stray end tag “ms”."
+ ],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><ms/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “ms”."
+ ],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "ms": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "ms",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><ms>X</ms>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><ms>X</ms></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mn/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “mn”."
+ ],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "mn": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "mn",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mn>X</mn>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mn>X</mn></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mo/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “mo”."
+ ],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "mo",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mo>X</mo>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mo>X</mo></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mi/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “mi”."
+ ],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "mi": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "mi",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mi>X</mi>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mi>X</mi></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mtext/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “mtext”."
+ ],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "mtext": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "mtext",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mtext>X</mtext>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mtext>X</mtext></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "5: HTML start tag “div” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "5: HTML start tag “div” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "title",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "title",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div><h1>X</h1></div>",
+ "errors": [
+ "5: HTML start tag “div” in a foreign namespace context.",
+ "9: HTML start tag “h1” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg div": true,
+ "svg h1": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "h1",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<div><h1>X</h1></div>",
+ "noQuirksBodyHtml": "<div><h1>X</h1></div>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "5: HTML start tag “div” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<plaintext><foo>",
+ "errors": [
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "<foo>",
+ "no_escape": true
+ }
+ ]
+ }
+ ],
+ "html": "<plaintext><foo></plaintext>",
+ "noQuirksBodyHtml": "<plaintext><foo></plaintext>"
+ }
+ },
+ {
+ "data": "<frameset>X",
+ "errors": [
+ "6: Stray start tag “frameset”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<head>X",
+ "errors": [
+ "6: Stray start tag “head”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<body>X",
+ "errors": [
+ "6: Stray start tag “body”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<html>X",
+ "errors": [
+ "6: Stray start tag “html”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<html class=\"foo\">X",
+ "errors": [
+ "6: Stray start tag “html”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<body class=\"foo\">X",
+ "errors": [
+ "6: Stray start tag “body”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ }
+ ],
+ "html5test-com.dat": [
+ {
+ "data": "<div<div>",
+ "errors": [
+ "(1,9): expected-doctype-but-got-start-tag",
+ "(1,9): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div<div": true
+ },
+ "tagWithLt": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div<div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div<div></div<div></body></html>",
+ "noQuirksBodyHtml": "<div<div></div<div>"
+ }
+ },
+ {
+ "data": "<div foo<bar=''>",
+ "errors": [
+ "(1,9): invalid-character-in-attribute-name",
+ "(1,16): expected-doctype-but-got-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "attrWithFunnyChar": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "foo<bar",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div foo<bar=\"\"></div></body></html>",
+ "noQuirksBodyHtml": "<div foo<bar=\"\"></div>"
+ }
+ },
+ {
+ "data": "<div foo=`bar`>",
+ "errors": [
+ "(1,10): equals-in-unquoted-attribute-value",
+ "(1,14): unexpected-character-in-unquoted-attribute-value",
+ "(1,15): expected-doctype-but-got-start-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "`bar`"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div foo=\"`bar`\"></div></body></html>",
+ "noQuirksBodyHtml": "<div foo=\"`bar`\"></div>"
+ }
+ },
+ {
+ "data": "<div \\\"foo=''>",
+ "errors": [
+ "(1,7): invalid-character-in-attribute-name",
+ "(1,14): expected-doctype-but-got-start-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "attrWithFunnyChar": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "\\\"foo",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div \\\"foo=\"\"></div></body></html>",
+ "noQuirksBodyHtml": "<div \\\"foo=\"\"></div>"
+ }
+ },
+ {
+ "data": "<a href='\\nbar'></a>",
+ "errors": [
+ "(1,16): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "\\nbar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"\\nbar\"></a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"\\nbar\"></a>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "&lang;&rang;",
+ "errors": [
+ "(1,6): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "⟨⟩"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>⟨⟩</body></html>",
+ "noQuirksBodyHtml": "⟨⟩"
+ }
+ },
+ {
+ "data": "&apos;",
+ "errors": [
+ "(1,6): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "'"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>'</body></html>",
+ "noQuirksBodyHtml": "'"
+ }
+ },
+ {
+ "data": "&ImaginaryI;",
+ "errors": [
+ "(1,12): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "ⅈ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>ⅈ</body></html>",
+ "noQuirksBodyHtml": "ⅈ"
+ }
+ },
+ {
+ "data": "&Kopf;",
+ "errors": [
+ "(1,6): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "𝕂"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>𝕂</body></html>",
+ "noQuirksBodyHtml": "𝕂"
+ }
+ },
+ {
+ "data": "&notinva;",
+ "errors": [
+ "(1,9): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "∉"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>∉</body></html>",
+ "noQuirksBodyHtml": "∉"
+ }
+ },
+ {
+ "data": "<?import namespace=\"foo\" implementation=\"#bar\">",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,47): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?import namespace=\"foo\" implementation=\"#bar\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?import namespace=\"foo\" implementation=\"#bar\"--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?import namespace=\"foo\" implementation=\"#bar\"-->"
+ }
+ },
+ {
+ "data": "<!--foo--bar-->",
+ "errors": [
+ "(1,10): unexpected-char-in-comment",
+ "(1,15): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "foo--bar"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--foo--bar--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--foo--bar-->"
+ }
+ },
+ {
+ "data": "<![CDATA[x]]>",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,13): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "[CDATA[x]]"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--[CDATA[x]]--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--[CDATA[x]]-->"
+ }
+ },
+ {
+ "data": "<textarea><!--</textarea>--></textarea>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,39): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<!--",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea>&lt;!--</textarea>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<textarea>&lt;!--</textarea>--&gt;"
+ }
+ },
+ {
+ "data": "<textarea><!--</textarea>-->",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<!--",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea>&lt;!--</textarea>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<textarea>&lt;!--</textarea>--&gt;"
+ }
+ },
+ {
+ "data": "<style><!--</style>--></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,30): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--</style></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<style><!--</style>--&gt;"
+ }
+ },
+ {
+ "data": "<style><!--</style>-->",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--</style></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<style><!--</style>--&gt;"
+ }
+ },
+ {
+ "data": "<ul><li>A </li> <li>B</li></ul>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "A "
+ }
+ ]
+ },
+ {
+ "text": " "
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ul><li>A </li> <li>B</li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li>A </li> <li>B</li></ul>"
+ }
+ },
+ {
+ "data": "<table><form><input type=hidden><input></form><div></div></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-form-in-table",
+ "(1,32): unexpected-hidden-input-in-table",
+ "(1,39): unexpected-start-tag-implies-table-voodoo",
+ "(1,46): unexpected-end-tag-implies-table-voodoo",
+ "(1,46): unexpected-end-tag",
+ "(1,51): unexpected-start-tag-implies-table-voodoo",
+ "(1,57): unexpected-end-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true,
+ "div": true,
+ "table": true,
+ "form": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "form"
+ },
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidden"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><input><div></div><table><form></form><input type=\"hidden\"></table></body></html>",
+ "noQuirksBodyHtml": "<input><div></div><table><form></form><input type=\"hidden\"></table>"
+ }
+ },
+ {
+ "data": "<i>A<b>B<p></i>C</b>D",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,15): adoption-agency-1.3",
+ "(1,20): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i"
+ },
+ {
+ "text": "C"
+ }
+ ]
+ },
+ {
+ "text": "D"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><i>A<b>B</b></i><b></b><p><b><i></i>C</b>D</p></body></html>",
+ "noQuirksBodyHtml": "<i>A<b>B</b></i><b></b><p><b><i></i>C</b>D</p>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<svg></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<math></math>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math></math></body></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ }
+ ],
+ "inbody01.dat": [
+ {
+ "data": "<button>1</foo>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-end-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><button>1</button></body></html>",
+ "noQuirksBodyHtml": "<button>1</button>"
+ }
+ },
+ {
+ "data": "<foo>1<p>2</foo>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-end-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo>1<p>2</p></foo></body></html>",
+ "noQuirksBodyHtml": "<foo>1<p>2</p></foo>"
+ }
+ },
+ {
+ "data": "<dd>1</foo>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dd": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><dd>1</dd></body></html>",
+ "noQuirksBodyHtml": "<dd>1</dd>"
+ }
+ },
+ {
+ "data": "<foo>1<dd>2</foo>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-end-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "dd": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo>1<dd>2</dd></foo></body></html>",
+ "noQuirksBodyHtml": "<foo>1<dd>2</dd></foo>"
+ }
+ }
+ ],
+ "isindex.dat": [
+ {
+ "data": "<isindex>",
+ "errors": [
+ "(1,9): expected-doctype-but-got-start-tag",
+ "(1,9): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "isindex": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "isindex"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><isindex></isindex></body></html>",
+ "noQuirksBodyHtml": "<isindex></isindex>"
+ }
+ },
+ {
+ "data": "<isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\">",
+ "errors": [
+ "(1,48): expected-doctype-but-got-start-tag",
+ "(1,48): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "isindex": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "isindex",
+ "attrs": [
+ {
+ "name": "action",
+ "value": "B"
+ },
+ {
+ "name": "foo",
+ "value": "D"
+ },
+ {
+ "name": "name",
+ "value": "A"
+ },
+ {
+ "name": "prompt",
+ "value": "C"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\"></isindex></body></html>",
+ "noQuirksBodyHtml": "<isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\"></isindex>"
+ }
+ },
+ {
+ "data": "<form><isindex>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true,
+ "isindex": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form",
+ "children": [
+ {
+ "tag": "isindex"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><form><isindex></isindex></form></body></html>",
+ "noQuirksBodyHtml": "<form><isindex></isindex></form>"
+ }
+ },
+ {
+ "data": "<!doctype html><isindex>x</isindex>x",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "isindex": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "isindex",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><isindex>x</isindex>x</body></html>",
+ "noQuirksBodyHtml": "<isindex>x</isindex>x"
+ }
+ }
+ ],
+ "main-element.dat": [
+ {
+ "data": "<!doctype html><p>foo<main>bar<p>baz",
+ "errors": [
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "main": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "main",
+ "children": [
+ {
+ "text": "bar"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p>foo</p><main>bar<p>baz</p></main></body></html>",
+ "noQuirksBodyHtml": "<p>foo</p><main>bar<p>baz</p></main>"
+ }
+ },
+ {
+ "data": "<!doctype html><main><p>foo</main>bar",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "main": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "main",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><main><p>foo</p></main>bar</body></html>",
+ "noQuirksBodyHtml": "<main><p>foo</p></main>bar"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>xxx<svg><x><g><a><main><b>",
+ "errors": [
+ " * (1,42) unexpected HTML-like start tag token in foreign content",
+ " * (1,42) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg x": true,
+ "svg g": true,
+ "svg a": true,
+ "svg main": true,
+ "b": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "xxx"
+ },
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "x",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "a",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "main",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>xxx<svg><x><g><a><main></main></a></g></x></svg><b></b></body></html>",
+ "noQuirksBodyHtml": "xxx<svg><x><g><a><main><b></b></main></a></g></x></svg>"
+ }
+ }
+ ],
+ "math.dat": [
+ {
+ "data": "<math><tr><td><mo><tr>",
+ "errors": [],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tr": true,
+ "math td": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tr",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "td",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tr><td><mo></mo></td></tr></math>",
+ "noQuirksBodyHtml": "<math><tr><td><mo></mo></td></tr></math>"
+ }
+ },
+ {
+ "data": "<math><tr><td><mo><tr>",
+ "errors": [],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tr": true,
+ "math td": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tr",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "td",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tr><td><mo></mo></td></tr></math>",
+ "noQuirksBodyHtml": "<math><tr><td><mo></mo></td></tr></math>"
+ }
+ },
+ {
+ "data": "<math><thead><mo><tbody>",
+ "errors": [],
+ "fragment": {
+ "name": "thead"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math thead": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "thead",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><thead><mo></mo></thead></math>",
+ "noQuirksBodyHtml": "<math><thead><mo></mo></thead></math>"
+ }
+ },
+ {
+ "data": "<math><tfoot><mo><tbody>",
+ "errors": [],
+ "fragment": {
+ "name": "tfoot"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tfoot": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tfoot",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tfoot><mo></mo></tfoot></math>",
+ "noQuirksBodyHtml": "<math><tfoot><mo></mo></tfoot></math>"
+ }
+ },
+ {
+ "data": "<math><tbody><mo><tfoot>",
+ "errors": [],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tbody": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tbody",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tbody><mo></mo></tbody></math>",
+ "noQuirksBodyHtml": "<math><tbody><mo></mo></tbody></math>"
+ }
+ },
+ {
+ "data": "<math><tbody><mo></table>",
+ "errors": [],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tbody": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tbody",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tbody><mo></mo></tbody></math>",
+ "noQuirksBodyHtml": "<math><tbody><mo></mo></tbody></math>"
+ }
+ },
+ {
+ "data": "<math><thead><mo></table>",
+ "errors": [],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math thead": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "thead",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><thead><mo></mo></thead></math>",
+ "noQuirksBodyHtml": "<math><thead><mo></mo></thead></math>"
+ }
+ },
+ {
+ "data": "<math><tfoot><mo></table>",
+ "errors": [],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tfoot": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tfoot",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tfoot><mo></mo></tfoot></math>",
+ "noQuirksBodyHtml": "<math><tfoot><mo></mo></tfoot></math>"
+ }
+ }
+ ],
+ "menuitem-element.dat": [
+ {
+ "data": "<menuitem>",
+ "errors": [
+ "10: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><menuitem></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem></menuitem>"
+ }
+ },
+ {
+ "data": "</menuitem>",
+ "errors": [
+ "11: End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.",
+ "11: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><menuitem>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem>A</menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><menuitem>A<menuitem>B",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ },
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem><menuitem>B</menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem>A</menuitem><menuitem>B</menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><menuitem>A<menu>B</menu>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "menu": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ },
+ {
+ "tag": "menu",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem><menu>B</menu></body></html>",
+ "noQuirksBodyHtml": "<menuitem>A</menuitem><menu>B</menu>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><menuitem>A<hr>B",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "hr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ },
+ {
+ "tag": "hr"
+ },
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem><hr>B</body></html>",
+ "noQuirksBodyHtml": "<menuitem>A</menuitem><hr>B"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><li><menuitem><li>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "li": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><li><menuitem></menuitem></li><li></li></body></html>",
+ "noQuirksBodyHtml": "<li><menuitem></menuitem></li><li></li>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><p></menuitem>x",
+ "errors": [
+ "39: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><p>x</p></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem><p>x</p></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><p><b></p><menuitem>",
+ "errors": [
+ "25: End tag “p” seen, but there were open elements.",
+ "21: Unclosed element “b”.",
+ "35: End of file seen and there were open elements."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><b></b></p><b><menuitem></menuitem></b></body></html>",
+ "noQuirksBodyHtml": "<p><b></b></p><b><menuitem></menuitem></b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><asdf></menuitem>x",
+ "errors": [
+ "40: End tag “menuitem” seen, but there were open elements.",
+ "31: Unclosed element “asdf”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "asdf": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "asdf"
+ }
+ ]
+ },
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><asdf></asdf></menuitem>x</body></html>",
+ "noQuirksBodyHtml": "<menuitem><asdf></asdf></menuitem>x"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html></menuitem>",
+ "errors": [
+ "26: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html></menuitem>",
+ "errors": [
+ "26: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><head></menuitem>",
+ "errors": [
+ "26: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><menuitem></select>",
+ "errors": [
+ "33: Stray start tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><option><menuitem>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "option": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><option><menuitem></menuitem></option></body></html>",
+ "noQuirksBodyHtml": "<option><menuitem></menuitem></option>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><option>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><option></option></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem><option></option></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem></body>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><p>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><p></p></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem><p></p></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><li>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><li></li></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem><li></li></menuitem>"
+ }
+ }
+ ],
+ "namespace-sensitivity.dat": [
+ {
+ "data": "<body><table><tr><td><svg><td><foreignObject><span></td>Foo",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg td": true,
+ "svg foreignObject": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Foo"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "td",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>Foo<table><tbody><tr><td><svg><td><foreignObject><span></span></foreignObject></td></svg></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "Foo<table><tbody><tr><td><svg><td><foreignObject><span></span></foreignObject></td></svg></td></tr></tbody></table>"
+ }
+ }
+ ],
+ "noscript01.dat": [
+ {
+ "data": "<head><noscript><!doctype html><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 31 Unexpected DOCTYPE. Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><html class=\"foo\"><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 34 html needs to be the first start tag."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "class",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html class=\"foo\"><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript></noscript>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript> </noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": " ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript> </noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript> </noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><!--foo--></noscript>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><basefont><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "basefont": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "basefont"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><basefont><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><basefont><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><bgsound><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "bgsound": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "bgsound"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><bgsound><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><bgsound><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><link><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "link": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "link"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><link><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><link><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><meta><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "meta": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><meta><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><meta><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><noframes>XXX</noscript></noframes></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "noframes": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "XXX</noscript>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><noframes>XXX</noscript></noframes></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><noframes>XXX</noscript></noframes></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><style>XXX</style></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "XXX",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><style>XXX</style></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><style>XXX</style></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript></br><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 21 Element br not allowed in a inhead-noscript context",
+ "Line: 1 Col: 21 Unexpected end tag (br). Treated as br element.",
+ "Line: 1 Col: 42 Unexpected end tag (noscript). Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true,
+ "br": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body><br><!--foo--></body></html>",
+ "noQuirksBodyHtml": "<noscript><br><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><head class=\"foo\"><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 34 Unexpected start tag (head)."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><noscript class=\"foo\"><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 34 Unexpected start tag (noscript)."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><noscript class=\"foo\"><!--foo--></noscript></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript></p><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 20 Unexpected end tag (p). Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><p></p><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><p><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 19 Element p not allowed in a inhead-noscript context",
+ "Line: 1 Col: 40 Unexpected end tag (noscript). Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true,
+ "p": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body><p><!--foo--></p></body></html>",
+ "noQuirksBodyHtml": "<noscript><p><!--foo--></p></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript>XXX<!--foo--></noscript></head>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 19 Unexpected non-space character. Expected inhead-noscript content",
+ "Line: 1 Col: 30 Unexpected end tag (noscript). Ignored.",
+ "Line: 1 Col: 37 Unexpected end tag (head). Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "XXX"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body>XXX<!--foo--></body></html>",
+ "noQuirksBodyHtml": "<noscript>XXX<!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-tag",
+ "(1,6): eof-in-head-noscript"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript></noscript>"
+ }
+ }
+ ],
+ "pending-spec-changes-plain-text-unsafe.dat": [
+ {
+ "data": "<body><table>\u0000filler\u0000text\u0000",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,14): invalid-codepoint",
+ "(1,14): invalid-codepoint-in-table-text",
+ "(1,21): invalid-codepoint",
+ "(1,21): invalid-codepoint-in-table-text",
+ "(1,26): invalid-codepoint",
+ "(1,26): invalid-codepoint-in-table-text",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "fillertext"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>fillertext<table></table></body></html>",
+ "noQuirksBodyHtml": "fillertext<table></table>"
+ }
+ }
+ ],
+ "pending-spec-changes.dat": [
+ {
+ "data": "<input type=\"hidden\"><frameset>",
+ "errors": [
+ "(1,21): expected-doctype-but-got-start-tag",
+ "(1,31): unexpected-start-tag",
+ "(1,31): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<input type=\"hidden\">"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><caption><svg>foo</table>bar",
+ "errors": [
+ "(1,47): unexpected-end-tag",
+ "(1,47): end-table-tag-in-caption"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg>foo</svg></caption></table>bar</body></html>",
+ "noQuirksBodyHtml": "<table><caption><svg>foo</svg></caption></table>bar"
+ }
+ },
+ {
+ "data": "<table><tr><td><svg><desc><td></desc><circle>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,30): unexpected-cell-end-tag",
+ "(1,37): unexpected-end-tag",
+ "(1,45): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg desc": true,
+ "circle": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "circle"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table>"
+ }
+ }
+ ],
+ "plain-text-unsafe.dat": [
+ {
+ "data": "FOO&#x000D;ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO\rZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO\rZOO</body></html>",
+ "noQuirksBodyHtml": "FOO\rZOO"
+ }
+ },
+ {
+ "data": "<html>\u0000<frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,7): invalid-codepoint",
+ "(1,7): invalid-codepoint-in-body",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html> \u0000 <frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,8): invalid-codepoint",
+ "(1,8): invalid-codepoint-in-body",
+ "(1,19): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<html>a\u0000a<frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,8): invalid-codepoint",
+ "(1,8): invalid-codepoint-in-body",
+ "(1,19): unexpected-start-tag",
+ "(1,30): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "aa"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>aa</body></html>",
+ "noQuirksBodyHtml": "aa"
+ }
+ },
+ {
+ "data": "<html>\u0000\u0000<frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,7): invalid-codepoint",
+ "(1,7): invalid-codepoint-in-body",
+ "(1,8): invalid-codepoint",
+ "(1,8): invalid-codepoint-in-body",
+ "(1,18): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html>\u0000\n <frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,7): invalid-codepoint",
+ "(1,7): invalid-codepoint-in-body",
+ "(2,11): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "\n "
+ }
+ },
+ {
+ "data": "<html><select>\u0000",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,15): invalid-codepoint",
+ "(1,15): invalid-codepoint-in-select",
+ "(1,15): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "\u0000",
+ "errors": [
+ "(1,1): invalid-codepoint",
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,1): invalid-codepoint-in-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body>\u0000",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,7): invalid-codepoint",
+ "(1,7): invalid-codepoint-in-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<plaintext>\u0000filler\u0000text\u0000",
+ "errors": [
+ "(1,11): expected-doctype-but-got-start-tag",
+ "(1,12): invalid-codepoint",
+ "(1,19): invalid-codepoint",
+ "(1,24): invalid-codepoint",
+ "(1,24): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "�filler�text�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><plaintext>�filler�text�</plaintext></body></html>",
+ "noQuirksBodyHtml": "<plaintext>�filler�text�</plaintext>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[\u0000filler\u0000text\u0000]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,30): invalid-codepoint",
+ "(1,30): invalid-codepoint",
+ "(1,30): invalid-codepoint",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�filler�text�"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�filler�text�</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�filler�text�</svg>"
+ }
+ },
+ {
+ "data": "<body><!\u0000>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,8): expected-dashes-or-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "comment": "�"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><!--�--></body></html>",
+ "noQuirksBodyHtml": "<!--�-->"
+ }
+ },
+ {
+ "data": "<body><!\u0000filler\u0000text>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,8): expected-dashes-or-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "comment": "�filler�text"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><!--�filler�text--></body></html>",
+ "noQuirksBodyHtml": "<!--�filler�text-->"
+ }
+ },
+ {
+ "data": "<body><svg><foreignObject>\u0000filler\u0000text",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,34): invalid-codepoint",
+ "(1,34): invalid-codepoint-in-body",
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "fillertext"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><foreignObject>fillertext</foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject>fillertext</foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000filler\u0000text",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,13): invalid-codepoint",
+ "(1,13): invalid-codepoint-in-foreign-content",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�filler�text"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�filler�text</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�filler�text</svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000<frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�"
+ },
+ {
+ "tag": "frameset",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�<frameset></frameset></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�<frameset></frameset></svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000 <frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "� "
+ },
+ {
+ "tag": "frameset",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>� <frameset></frameset></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>� <frameset></frameset></svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000a<frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�a"
+ },
+ {
+ "tag": "frameset",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�a<frameset></frameset></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�a<frameset></frameset></svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000</svg><frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,22): unexpected-start-tag",
+ "(1,22): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg>�</svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000 </svg><frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,23): unexpected-start-tag",
+ "(1,23): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg>� </svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000a</svg><frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,23): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�a</svg>"
+ }
+ },
+ {
+ "data": "<svg><path></path></svg><frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,34): unexpected-start-tag",
+ "(1,34): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg><path></path></svg>"
+ }
+ },
+ {
+ "data": "<svg><p><frameset>",
+ "errors": [
+ "(1, 5) expected-doctype-but-got-start-tag",
+ "(1, 8) unexpected-html-element-in-foreign-content",
+ "(1, 18) unexpected-start-tag",
+ "(1, 18) eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg><p><frameset></frameset></p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><pre>\r\n\r\nA</pre>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "\nA"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>\nA</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>\nA</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><pre>\r\rA</pre>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "\nA"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>\nA</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>\nA</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><pre>\rA</pre>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>A</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>A</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td><math><mtext>\u0000a",
+ "errors": [
+ "(1,44): invalid-codepoint",
+ "(1,44): invalid-codepoint-in-body",
+ "(1,45): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "math math": true,
+ "math mtext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mtext>a</mtext></math></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><math><mtext>a</mtext></math></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td><svg><foreignObject>\u0000a",
+ "errors": [
+ "(1,51): invalid-codepoint",
+ "(1,51): invalid-codepoint-in-body",
+ "(1,52): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg foreignObject": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><foreignObject>a</foreignObject></svg></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><foreignObject>a</foreignObject></svg></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mi>a\u0000b",
+ "errors": [
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>ab</mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi>ab</mi></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mo>a\u0000b",
+ "errors": [
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mo": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mo>ab</mo></math></body></html>",
+ "noQuirksBodyHtml": "<math><mo>ab</mo></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mn>a\u0000b",
+ "errors": [
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mn": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mn>ab</mn></math></body></html>",
+ "noQuirksBodyHtml": "<math><mn>ab</mn></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><ms>a\u0000b",
+ "errors": [
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math ms": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><ms>ab</ms></math></body></html>",
+ "noQuirksBodyHtml": "<math><ms>ab</ms></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mtext>a\u0000b",
+ "errors": [
+ "(1,30): invalid-codepoint",
+ "(1,30): invalid-codepoint-in-body",
+ "(1,31): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mtext>ab</mtext></math></body></html>",
+ "noQuirksBodyHtml": "<math><mtext>ab</mtext></math>"
+ }
+ }
+ ],
+ "ruby.dat": [
+ {
+ "data": "<html><ruby>a<rb>b<rb></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rb"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rb></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rb></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<rtc></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "rtc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rtc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rtc></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rtc></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<rp></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rp></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rp></rp></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<span></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,31): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b<span></span></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b<span></span></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rb></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rb"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rb></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rb></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rtc></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true,
+ "rtc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rtc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rtc></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rtc></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rp></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rp></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rp></rp></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<span></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,31): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b<span></span></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b<span></span></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rb></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rb"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b</rtc><rb></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b</rtc><rb></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rt>c<rt>d</ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b<rt>c</rt><rt>d</rt></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b<rt>c</rt><rt>d</rt></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rtc></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rtc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b</rtc><rtc></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b</rtc><rtc></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rp></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b<rp></rp></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b<rp></rp></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<span></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b<span></span></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b<span></span></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rb></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rb"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rb></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rb></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rtc></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "rtc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rtc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rtc></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rtc></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rp></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rp></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rp></rp></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<span></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,31): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b<span></span></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b<span></span></rp></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby><rtc><ruby>a<rb>b<rt></ruby></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rb": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby><rtc><ruby>a<rb>b</rb><rt></rt></ruby></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><rtc><ruby>a<rb>b</rb><rt></rt></ruby></rtc></ruby>"
+ }
+ }
+ ],
+ "scriptdata01.dat": [
+ {
+ "data": "FOO<script>'Hello'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'Hello'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'Hello'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'Hello'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script></script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script></script >BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script></script/>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,21): self-closing-flag-on-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script></script/ >BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,20): unexpected-character-after-solidus-in-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\"></scriptx>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,42): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "</scriptx>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\"></scriptx>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\"></scriptx>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script></script foo=\">\" dd>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,31): attributes-in-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!--'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!--'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!--'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!--'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!---'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!---'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!---'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!---'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-->'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-->'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-->'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-->'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-->'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-->'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-->'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-->'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-- potato'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-- potato'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-- potato'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-- potato'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-- <sCrIpt'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-- <sCrIpt'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-- <sCrIpt'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,56): expected-script-data-but-got-eof",
+ "(1,56): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt>'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,58): expected-script-data-but-got-eof",
+ "(1,58): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> -'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,59): expected-script-data-but-got-eof",
+ "(1,59): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> --'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-- <sCrIpt> -->'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> -->'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-- <sCrIpt> -->'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-- <sCrIpt> -->'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,61): expected-script-data-but-got-eof",
+ "(1,61): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> --!>'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,61): expected-script-data-but-got-eof",
+ "(1,61): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> -- >'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,56): expected-script-data-but-got-eof",
+ "(1,56): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt '</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,56): expected-script-data-but-got-eof",
+ "(1,56): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt/'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt\\'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt/'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "QUX"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX</body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX"
+ }
+ },
+ {
+ "data": "FOO<script><!--<script>-></script>--></script>QUX",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script>-></script>-->",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "QUX"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script><!--<script>-></script>--></script>QUX</body></html>",
+ "noQuirksBodyHtml": "FOO<script><!--<script>-></script>--></script>QUX"
+ }
+ }
+ ],
+ "tables01.dat": [
+ {
+ "data": "<table><th>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "th": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "th"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><th></th></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><th></th></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><col foo='bar'>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><col foo=\"bar\"></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><col foo=\"bar\"></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup></html>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,27): foster-parenting-character-in-table",
+ "(1,27): foster-parenting-character-in-table",
+ "(1,27): foster-parenting-character-in-table",
+ "(1,27): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>foo<table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "foo<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table></table><p>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table></table><p>foo</p></body></html>",
+ "noQuirksBodyHtml": "<table></table><p>foo</p>"
+ }
+ },
+ {
+ "data": "<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,30): unexpected-end-tag",
+ "(1,41): unexpected-end-tag",
+ "(1,48): unexpected-end-tag",
+ "(1,56): unexpected-end-tag",
+ "(1,61): unexpected-end-tag",
+ "(1,69): unexpected-end-tag",
+ "(1,74): unexpected-end-tag",
+ "(1,82): unexpected-end-tag",
+ "(1,87): unexpected-end-tag",
+ "(1,91): unexpected-cell-in-table-body",
+ "(1,91): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><select><option>3</select></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option>3</option></select><table></table></body></html>",
+ "noQuirksBodyHtml": "<select><option>3</option></select><table></table>"
+ }
+ },
+ {
+ "data": "<table><select><table></table></select></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-table-voodoo",
+ "(1,22): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,22): unexpected-start-tag-implies-end-tag",
+ "(1,39): unexpected-end-tag",
+ "(1,47): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select><table></table><table></table></body></html>",
+ "noQuirksBodyHtml": "<select></select><table></table><table></table>"
+ }
+ },
+ {
+ "data": "<table><select></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-table-voodoo",
+ "(1,23): unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select><table></table></body></html>",
+ "noQuirksBodyHtml": "<select></select><table></table>"
+ }
+ },
+ {
+ "data": "<table><select><option>A<tr><td>B</td></tr></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-table-voodoo",
+ "(1,28): unexpected-table-element-start-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option>A</option></select><table><tbody><tr><td>B</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select><option>A</option></select><table><tbody><tr><td>B</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td></body></caption></col></colgroup></html>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,18): unexpected-end-tag",
+ "(1,28): unexpected-end-tag",
+ "(1,34): unexpected-end-tag",
+ "(1,45): unexpected-end-tag",
+ "(1,52): unexpected-end-tag",
+ "(1,55): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>foo</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>foo</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td>A</table>B",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table>B</body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>B"
+ }
+ },
+ {
+ "data": "<table><tr><caption>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "caption": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "caption"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr></tr></tbody><caption></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody><caption></caption></table>"
+ }
+ },
+ {
+ "data": "<table><tr></body></caption></col></colgroup></html></td></th><td>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-end-tag-in-table-row",
+ "(1,28): unexpected-end-tag-in-table-row",
+ "(1,34): unexpected-end-tag-in-table-row",
+ "(1,45): unexpected-end-tag-in-table-row",
+ "(1,52): unexpected-end-tag-in-table-row",
+ "(1,57): unexpected-end-tag-in-table-row",
+ "(1,62): unexpected-end-tag-in-table-row",
+ "(1,69): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>foo</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>foo</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td><tr>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,15): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td><button><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,23): unexpected-cell-end-tag",
+ "(1,23): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "button"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><button></button></td><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><button></button></td><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tr><td><svg><desc><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,30): unexpected-cell-end-tag",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg desc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td></td></tr></tbody></table>"
+ }
+ }
+ ],
+ "template.dat": [
+ {
+ "data": "<body><template>Hello</template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template>Hello</template></body></html>",
+ "noQuirksBodyHtml": "<template>Hello</template>"
+ }
+ },
+ {
+ "data": "<template>Hello</template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template>Hello</template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template>Hello</template>"
+ }
+ },
+ {
+ "data": "<template></template><div></div>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template></template></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<template></template><div></div>"
+ }
+ },
+ {
+ "data": "<html><template>Hello</template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template>Hello</template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template>Hello</template>"
+ }
+ },
+ {
+ "data": "<head><template><div></div></template></head>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><div></div></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><div></div></template>"
+ }
+ },
+ {
+ "data": "<div><template><div><span></template><b>",
+ "errors": [
+ " * (1,6) missing DOCTYPE",
+ " * (1,38) mismatched template end tag",
+ " * (1,41) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "template": true,
+ "span": true,
+ "b": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><template><div><span></span></div></template><b></b></div></body></html>",
+ "noQuirksBodyHtml": "<div><template><div><span></span></div></template><b></b></div>"
+ }
+ },
+ {
+ "data": "<div><template></div>Hello",
+ "errors": [
+ " * (1,6) missing DOCTYPE",
+ " * (1,22) unexpected token in template",
+ " * (1,27) unexpected end of file in template",
+ " * (1,27) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><template>Hello</template></div></body></html>",
+ "noQuirksBodyHtml": "<div><template>Hello</template></div>"
+ }
+ },
+ {
+ "data": "<div></template></div>",
+ "errors": [
+ " * (1,6) missing DOCTYPE",
+ " * (1,17) unexpected template end tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><template></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template></template></table>"
+ }
+ },
+ {
+ "data": "<table><template></template></div>",
+ "errors": [
+ " * (1,8) missing DOCTYPE",
+ " * (1,35) unexpected token in table - foster parenting",
+ " * (1,35) unexpected end tag",
+ " * (1,35) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template></template></table>"
+ }
+ },
+ {
+ "data": "<table><div><template></template></div>",
+ "errors": [
+ " * (1,8) missing DOCTYPE",
+ " * (1,13) unexpected token in table - foster parenting",
+ " * (1,40) unexpected token in table - foster parenting",
+ " * (1,40) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "template": true,
+ "table": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><template></template></div><table></table></body></html>",
+ "noQuirksBodyHtml": "<div><template></template></div><table></table>"
+ }
+ },
+ {
+ "data": "<table><template></template><div></div>",
+ "errors": [
+ "no doctype",
+ "bad div in table",
+ "bad /div in table",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "table": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div><table><template></template></table></body></html>",
+ "noQuirksBodyHtml": "<div></div><table><template></template></table>"
+ }
+ },
+ {
+ "data": "<table> <template></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table> <template></template></table></body></html>",
+ "noQuirksBodyHtml": "<table> <template></template></table>"
+ }
+ },
+ {
+ "data": "<table><tbody><template></template></tbody>",
+ "errors": [
+ "no doctype",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tbody><template></tbody></template>",
+ "errors": [
+ "no doctype",
+ "bad /tbody",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tbody><template></template></tbody></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><thead><template></template></thead>",
+ "errors": [
+ "no doctype",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "thead": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><thead><template></template></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><thead><template></template></thead></table>"
+ }
+ },
+ {
+ "data": "<table><tfoot><template></template></tfoot>",
+ "errors": [
+ "no doctype",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tfoot": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tfoot",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tfoot><template></template></tfoot></table></body></html>",
+ "noQuirksBodyHtml": "<table><tfoot><template></template></tfoot></table>"
+ }
+ },
+ {
+ "data": "<select><template></template></select>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><template></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><template></template></select>"
+ }
+ },
+ {
+ "data": "<select><template><option></option></template></select>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "template": true,
+ "option": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><template><option></option></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><template><option></option></template></select>"
+ }
+ },
+ {
+ "data": "<template><option></option></select><option></option></template>",
+ "errors": [
+ "no doctype",
+ "bad /select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "option": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><option></option><option></option></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><option></option><option></option></template>"
+ }
+ },
+ {
+ "data": "<select><template></template><option></select>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "template": true,
+ "option": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><template></template><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><template></template><option></option></select>"
+ }
+ },
+ {
+ "data": "<select><option><template></template></select>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option><template></template></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option><template></template></option></select>"
+ }
+ },
+ {
+ "data": "<select><template>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><template></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><template></template></select>"
+ }
+ },
+ {
+ "data": "<select><option></option><template>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option></option><template></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option><template></template></select>"
+ }
+ },
+ {
+ "data": "<select><option></option><template><option>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option></option><template><option></option></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option><template><option></option></template></select>"
+ }
+ },
+ {
+ "data": "<table><thead><template><td></template></table>",
+ "errors": [
+ " * (1,8) missing DOCTYPE"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "thead": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><thead><template><td></td></template></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><thead><template><td></td></template></thead></table>"
+ }
+ },
+ {
+ "data": "<table><template><thead></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "thead": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><thead></thead></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><thead></thead></template></table>"
+ }
+ },
+ {
+ "data": "<body><table><template><td></tr><div></template></table>",
+ "errors": [
+ "no doctype",
+ "bad </tr>",
+ "missing </div>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "td": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><td><div></div></td></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><td><div></div></td></template></table>"
+ }
+ },
+ {
+ "data": "<table><template><thead></template></thead></table>",
+ "errors": [
+ "no doctype",
+ "bad /thead after /template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "thead": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><thead></thead></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><thead></thead></template></table>"
+ }
+ },
+ {
+ "data": "<table><thead><template><tr></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "thead": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><thead><template><tr></tr></template></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><thead><template><tr></tr></template></thead></table>"
+ }
+ },
+ {
+ "data": "<table><template><tr></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><tr></tr></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><tr></tr></template></table>"
+ }
+ },
+ {
+ "data": "<table><tr><template><td>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><template><td></td></template></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><template><td></td></template></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><template><tr><template><td></template></tr></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><tr><template><td></td></template></tr></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><tr><template><td></td></template></tr></template></table>"
+ }
+ },
+ {
+ "data": "<table><template><tr><template><td></td></template></tr></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><tr><template><td></td></template></tr></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><tr><template><td></td></template></tr></template></table>"
+ }
+ },
+ {
+ "data": "<table><template><td></template>",
+ "errors": [
+ "no doctype",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><td></td></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><td></td></template></table>"
+ }
+ },
+ {
+ "data": "<body><template><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><template><tr></tr></template><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><template><tr></tr></template><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><template><tr></tr></template><td></td></template>"
+ }
+ },
+ {
+ "data": "<table><colgroup><template><col>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><template><col></template></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><template><col></template></colgroup></table>"
+ }
+ },
+ {
+ "data": "<frameset><template><frame></frame></template></frameset>",
+ "errors": [
+ " * (1,11) missing DOCTYPE",
+ " * (1,21) unexpected start tag token",
+ " * (1,36) unexpected end tag token",
+ " * (1,47) unexpected end tag token"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<template><frame></frame></frameset><frame></frame></template>",
+ "errors": [
+ " * (1,11) missing DOCTYPE",
+ " * (1,18) unexpected start tag",
+ " * (1,26) unexpected end tag",
+ " * (1,37) unexpected end tag",
+ " * (1,44) unexpected start tag",
+ " * (1,52) unexpected end tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<template><div><frameset><span></span></div><span></span></template>",
+ "errors": [
+ "no doctype",
+ "bad frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "span": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><div><span></span></div><span></span></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><div><span></span></div><span></span></template>"
+ }
+ },
+ {
+ "data": "<body><template><div><frameset><span></span></div><span></span></template></body>",
+ "errors": [
+ "no doctype",
+ "bad frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "div": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><div><span></span></div><span></span></template></body></html>",
+ "noQuirksBodyHtml": "<template><div><span></span></div><span></span></template>"
+ }
+ },
+ {
+ "data": "<body><template><script>var i = 1;</script><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "script": true,
+ "td": true
+ },
+ "template": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "var i = 1;",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><script>var i = 1;</script><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><script>var i = 1;</script><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr><div></div></tr></template>",
+ "errors": [
+ "no doctype",
+ "foster-parented div",
+ "foster-parented /div"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><div></div></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><div></div></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr><td></td></template>",
+ "errors": [
+ "no doctype",
+ "unexpected <td>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><tr><td></td></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><tr><td></td></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td></tr><td></td></template>",
+ "errors": [
+ "no doctype",
+ "bad </tr>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td><tbody><td></td></template>",
+ "errors": [
+ "no doctype",
+ "bad <tbody>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td><caption></caption><td></td></template>",
+ "errors": [
+ " * (1,7) missing DOCTYPE",
+ " * (1,35) unexpected start tag in table row",
+ " * (1,45) unexpected end tag in table row"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td><colgroup></caption><td></td></template>",
+ "errors": [
+ " * (1,7) missing DOCTYPE",
+ " * (1,36) unexpected start tag in table row",
+ " * (1,46) unexpected end tag in table row"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td></table><td></td></template>",
+ "errors": [
+ "no doctype",
+ "bad </table>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr><tbody><tr></tr></template>",
+ "errors": [
+ "no doctype",
+ "bad <tbody>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr><caption><tr></tr></template>",
+ "errors": [
+ "no doctype",
+ "bad <caption>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr></table><tr></tr></template>",
+ "errors": [
+ "no doctype",
+ "bad </table>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><thead></thead><caption></caption><tbody></tbody></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "thead": true,
+ "caption": true,
+ "tbody": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ },
+ {
+ "tag": "caption"
+ },
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><thead></thead><caption></caption><tbody></tbody></template></body></html>",
+ "noQuirksBodyHtml": "<template><thead></thead><caption></caption><tbody></tbody></template>"
+ }
+ },
+ {
+ "data": "<body><template><thead></thead></table><tbody></tbody></template></body>",
+ "errors": [
+ "no doctype",
+ "bad </table>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "thead": true,
+ "tbody": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ },
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><thead></thead><tbody></tbody></template></body></html>",
+ "noQuirksBodyHtml": "<template><thead></thead><tbody></tbody></template>"
+ }
+ },
+ {
+ "data": "<body><template><div><tr></tr></div></template>",
+ "errors": [
+ "no doctype",
+ "bad tr",
+ "bad /tr"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><div></div></template></body></html>",
+ "noQuirksBodyHtml": "<template><div></div></template>"
+ }
+ },
+ {
+ "data": "<body><template><em>Hello</em></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "em": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><em>Hello</em></template></body></html>",
+ "noQuirksBodyHtml": "<template><em>Hello</em></template>"
+ }
+ },
+ {
+ "data": "<body><template><!--comment--></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true
+ },
+ "template": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "comment": "comment"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><!--comment--></template></body></html>",
+ "noQuirksBodyHtml": "<template><!--comment--></template>"
+ }
+ },
+ {
+ "data": "<body><template><style></style><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "style": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "style"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><style></style><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><style></style><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><meta><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "meta": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><meta><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><meta><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><link><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "link": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "link"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><link><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><link><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><template><tr></tr></template><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><template><tr></tr></template><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><template><tr></tr></template><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><table><colgroup><template><col></col></template></colgroup></table></body>",
+ "errors": [
+ "no doctype",
+ "bad /col"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><template><col></template></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><template><col></template></colgroup></table>"
+ }
+ },
+ {
+ "data": "<body a=b><template><div></div><body c=d><div></div></body></template></body>",
+ "errors": [
+ "no doctype",
+ "bad <body>",
+ "bad </body>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body a=\"b\"><template><div></div><div></div></template></body></html>",
+ "noQuirksBodyHtml": "<template><div></div><div></div></template>"
+ }
+ },
+ {
+ "data": "<html a=b><template><div><html b=c><span></template>",
+ "errors": [
+ "no doctype",
+ "bad <html>",
+ "missing end tags in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "span": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html a=\"b\"><head><template><div><span></span></div></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><div><span></span></div></template>"
+ }
+ },
+ {
+ "data": "<html a=b><template><col></col><html b=c><col></col></template>",
+ "errors": [
+ "no doctype",
+ "bad /col",
+ "bad html",
+ "bad /col"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "col": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ },
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html a=\"b\"><head><template><col><col></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><col><col></template>"
+ }
+ },
+ {
+ "data": "<html a=b><template><frame></frame><html b=c><frame></frame></template>",
+ "errors": [
+ "no doctype",
+ "bad frame",
+ "bad /frame",
+ "bad html",
+ "bad frame",
+ "bad /frame"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html a=\"b\"><head><template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr><template></template><td></td></template>",
+ "errors": [
+ "no doctype",
+ "unexpected <td>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><template></template><tr><td></td></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><template></template><tr><td></td></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><thead></thead><template><tr></tr></template><tr></tr><tfoot></tfoot></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "thead": true,
+ "tr": true,
+ "tbody": true,
+ "tfoot": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "tfoot"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><thead></thead><template><tr></tr></template><tbody><tr></tr></tbody><tfoot></tfoot></template></body></html>",
+ "noQuirksBodyHtml": "<template><thead></thead><template><tr></tr></template><tbody><tr></tr></tbody><tfoot></tfoot></template>"
+ }
+ },
+ {
+ "data": "<body><template><template><b><template></template></template>text</template>",
+ "errors": [
+ "no doctype",
+ "missing </b>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "b": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "text"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><template><b><template></template></b></template>text</template></body></html>",
+ "noQuirksBodyHtml": "<template><template><b><template></template></b></template>text</template>"
+ }
+ },
+ {
+ "data": "<body><template><col><colgroup>",
+ "errors": [
+ "no doctype",
+ "bad colgroup",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col></colgroup>",
+ "errors": [
+ "no doctype",
+ "bogus /colgroup",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col><colgroup></template></body>",
+ "errors": [
+ "no doctype",
+ "bad colgroup"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col><div>",
+ "errors": [
+ " * (1,7) missing DOCTYPE",
+ " * (1,27) unexpected token",
+ " * (1,27) unexpected end of file in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col></div>",
+ "errors": [
+ "no doctype",
+ "bad /div",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col>Hello",
+ "errors": [
+ "no doctype",
+ "unexpected text",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><i><menu>Foo</i>",
+ "errors": [
+ "no doctype",
+ "mising /menu",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "i": true,
+ "menu": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "menu",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><i></i><menu><i>Foo</i></menu></template></body></html>",
+ "noQuirksBodyHtml": "<template><i></i><menu><i>Foo</i></menu></template>"
+ }
+ },
+ {
+ "data": "<body><template></div><div>Foo</div><template></template><tr></tr>",
+ "errors": [
+ "no doctype",
+ "bogus /div",
+ "bogus tr",
+ "bogus /tr",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><div>Foo</div><template></template></template></body></html>",
+ "noQuirksBodyHtml": "<template><div>Foo</div><template></template></template>"
+ }
+ },
+ {
+ "data": "<body><div><template></div><tr><td>Foo</td></tr></template>",
+ "errors": [
+ " * (1,7) missing DOCTYPE",
+ " * (1,28) unexpected token in template",
+ " * (1,60) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><template><tr><td>Foo</td></tr></template></div></body></html>",
+ "noQuirksBodyHtml": "<div><template><tr><td>Foo</td></tr></template></div>"
+ }
+ },
+ {
+ "data": "<template></figcaption><sub><table></table>",
+ "errors": [
+ "no doctype",
+ "bad /figcaption",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "sub": true,
+ "table": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "sub",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><sub><table></table></sub></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><sub><table></table></sub></template>"
+ }
+ },
+ {
+ "data": "<template><template>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template></template></template>"
+ }
+ },
+ {
+ "data": "<template><div>",
+ "errors": [
+ "no doctype",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><div></div></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><div></div></template>"
+ }
+ },
+ {
+ "data": "<template><template><div>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><div></div></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><div></div></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><table>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "table": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><table></table></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><table></table></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><tbody>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "tbody": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><tbody></tbody></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><tbody></tbody></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><tr>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "tr": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><tr></tr></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><tr></tr></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><td>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "td": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><td></td></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><td></td></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><caption>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "caption": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "caption"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><caption></caption></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><caption></caption></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><colgroup>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "colgroup": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><colgroup></colgroup></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><colgroup></colgroup></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><col>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "col": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><col></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><col></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><tbody><select>",
+ "errors": [
+ " * (1,11) missing DOCTYPE",
+ " * (1,36) unexpected token in table - foster parenting",
+ " * (1,36) unexpected end of file in template",
+ " * (1,36) unexpected end of file in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "tbody": true,
+ "select": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tbody"
+ },
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><tbody></tbody><select></select></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><tbody></tbody><select></select></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><table>Foo",
+ "errors": [
+ "no doctype",
+ "foster-parenting text F",
+ "foster-parenting text o",
+ "foster-parenting text o",
+ "eof",
+ "eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "table": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Foo"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template>Foo<table></table></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template>Foo<table></table></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><frame>",
+ "errors": [
+ "no doctype",
+ "bad tag",
+ "eof",
+ "eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><script>var i",
+ "errors": [
+ "no doctype",
+ "eof in script",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "script": true,
+ "body": true
+ },
+ "template": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "var i",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><script>var i</script></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><script>var i</script></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><style>var i",
+ "errors": [
+ "no doctype",
+ "eof in style",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "style": true,
+ "body": true
+ },
+ "template": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "var i",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><style>var i</style></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><style>var i</style></template></template>"
+ }
+ },
+ {
+ "data": "<template><table></template><body><span>Foo",
+ "errors": [
+ "no doctype",
+ "missing /table",
+ "bad eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "table": true,
+ "body": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><table></table></template></head><body><span>Foo</span></body></html>",
+ "noQuirksBodyHtml": "<template><table></table></template><span>Foo</span>"
+ }
+ },
+ {
+ "data": "<template><td></template><body><span>Foo",
+ "errors": [
+ "no doctype",
+ "bad eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "td": true,
+ "body": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><td></td></template></head><body><span>Foo</span></body></html>",
+ "noQuirksBodyHtml": "<template><td></td></template><span>Foo</span>"
+ }
+ },
+ {
+ "data": "<template><object></template><body><span>Foo",
+ "errors": [
+ "no doctype",
+ "missing /object",
+ "bad eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "object": true,
+ "body": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "object"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><object></object></template></head><body><span>Foo</span></body></html>",
+ "noQuirksBodyHtml": "<template><object></object></template><span>Foo</span>"
+ }
+ },
+ {
+ "data": "<template><svg><template>",
+ "errors": [
+ "no doctype",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "svg svg": true,
+ "svg template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "template",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><svg><template></template></svg></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><svg><template></template></svg></template>"
+ }
+ },
+ {
+ "data": "<template><svg><foo><template><foreignObject><div></template><div>",
+ "errors": [
+ "no doctype",
+ "ugly template closure",
+ "bad eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "svg svg": true,
+ "svg foo": true,
+ "svg template": true,
+ "svg foreignObject": true,
+ "div": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foo",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "template",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><svg><foo><template><foreignObject><div></div></foreignObject></template></foo></svg></template></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<template><svg><foo><template><foreignObject><div></div></foreignObject></template></foo></svg></template><div></div>"
+ }
+ },
+ {
+ "data": "<dummy><template><span></dummy>",
+ "errors": [
+ "no doctype",
+ "bad end tag </dummy>",
+ "eof in template",
+ "eof in dummy"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dummy": true,
+ "template": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dummy",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><dummy><template><span></span></template></dummy></body></html>",
+ "noQuirksBodyHtml": "<dummy><template><span></span></template></dummy>"
+ }
+ },
+ {
+ "data": "<body><table><tr><td><select><template>Foo</template><caption>A</table>",
+ "errors": [
+ "no doctype",
+ "(1,62): unexpected-caption-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "select": true,
+ "template": true,
+ "caption": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><select><template>Foo</template></select></td></tr></tbody><caption>A</caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><select><template>Foo</template></select></td></tr></tbody><caption>A</caption></table>"
+ }
+ },
+ {
+ "data": "<body></body><template>",
+ "errors": [
+ "no doctype",
+ "(1,23): template-after-body",
+ "(1,24): eof-in-template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template></template></body></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<head></head><template>",
+ "errors": [
+ "no doctype",
+ "(1,23): template-after-head",
+ "(1,24): eof-in-template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<head></head><template>Foo</template>",
+ "errors": [
+ "no doctype",
+ "(1,23): template-after-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template>Foo</template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template>Foo</template>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML><dummy><table><template><table><template><table><script>",
+ "errors": [
+ "eof script",
+ "eof template",
+ "eof template",
+ "eof table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dummy": true,
+ "table": true,
+ "template": true,
+ "script": true
+ },
+ "doctype": true,
+ "template": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dummy",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dummy><table><template><table><template><table><script></script></table></template></table></template></table></dummy></body></html>",
+ "noQuirksBodyHtml": "<dummy><table><template><table><template><table><script></script></table></template></table></template></table></dummy>"
+ }
+ },
+ {
+ "data": "<template><a><table><a>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "a": true,
+ "table": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><a><a></a><table></table></a></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><a><a></a><table></table></a></template>"
+ }
+ }
+ ],
+ "tests1.dat": [
+ {
+ "data": "Test",
+ "errors": [
+ "(1,0): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Test"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>Test</body></html>",
+ "noQuirksBodyHtml": "Test"
+ }
+ },
+ {
+ "data": "<p>One<p>Two",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "One"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "Two"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p>One</p><p>Two</p></body></html>",
+ "noQuirksBodyHtml": "<p>One</p><p>Two</p>"
+ }
+ },
+ {
+ "data": "Line1<br>Line2<br>Line3<br>Line4",
+ "errors": [
+ "(1,0): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Line1"
+ },
+ {
+ "tag": "br"
+ },
+ {
+ "text": "Line2"
+ },
+ {
+ "tag": "br"
+ },
+ {
+ "text": "Line3"
+ },
+ {
+ "tag": "br"
+ },
+ {
+ "text": "Line4"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>Line1<br>Line2<br>Line3<br>Line4</body></html>",
+ "noQuirksBodyHtml": "Line1<br>Line2<br>Line3<br>Line4"
+ }
+ },
+ {
+ "data": "<html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<head>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></head>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></head><body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></head><body></body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head><body></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head><body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<head></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</head>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</body>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag element."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</html>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag element."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<b><table><td><i></table>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,25): unexpected-cell-end-tag",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
+ "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
+ }
+ },
+ {
+ "data": "<b><table><td></b><i></table>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,18): unexpected-end-tag",
+ "(1,29): unexpected-cell-end-tag",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table>X</b></body></html>",
+ "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table>X</b>"
+ }
+ },
+ {
+ "data": "<h1>Hello<h2>World",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-start-tag",
+ "(1,18): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h1": true,
+ "h2": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h1",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ },
+ {
+ "tag": "h2",
+ "children": [
+ {
+ "text": "World"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><h1>Hello</h1><h2>World</h2></body></html>",
+ "noQuirksBodyHtml": "<h1>Hello</h1><h2>World</h2>"
+ }
+ },
+ {
+ "data": "<a><p>X<a>Y</a>Z</p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-start-tag-implies-end-tag",
+ "(1,10): adoption-agency-1.3",
+ "(1,24): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "Y"
+ }
+ ]
+ },
+ {
+ "text": "Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><p><a>X</a><a>Y</a>Z</p></body></html>",
+ "noQuirksBodyHtml": "<a></a><p><a>X</a><a>Y</a>Z</p>"
+ }
+ },
+ {
+ "data": "<b><button>foo</b>bar",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,18): adoption-agency-1.3",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><button><b>foo</b>bar</button></body></html>",
+ "noQuirksBodyHtml": "<b></b><button><b>foo</b>bar</button>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><span><button>foo</span>bar",
+ "errors": [
+ "(1,39): unexpected-end-tag",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "span": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "text": "foobar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><span><button>foobar</button></span></body></html>",
+ "noQuirksBodyHtml": "<span><button>foobar</button></span>"
+ }
+ },
+ {
+ "data": "<p><b><div><marquee></p></b></div>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,28): unexpected-end-tag",
+ "(1,34): end-tag-too-early",
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "div": true,
+ "marquee": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "marquee",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b></b></p><div><b><marquee><p></p>X</marquee></b></div></body></html>",
+ "noQuirksBodyHtml": "<p><b></b></p><div><b><marquee><p></p>X</marquee></b></div>"
+ }
+ },
+ {
+ "data": "<script><div></script></div><title><p></title><p><p>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,28): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "title": true,
+ "body": true,
+ "p": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<div>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<p>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><div></script><title>&lt;p&gt;</title></head><body><p></p><p></p></body></html>",
+ "noQuirksBodyHtml": "<script><div></script><title>&lt;p&gt;</title><p></p><p></p>"
+ }
+ },
+ {
+ "data": "<!--><div>--<!-->",
+ "errors": [
+ "(1,5): incorrect-comment",
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,17): incorrect-comment",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "--"
+ },
+ {
+ "comment": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!----><html><head></head><body><div>--<!----></div></body></html>",
+ "noQuirksBodyHtml": "<!----><div>--<!----></div>"
+ }
+ },
+ {
+ "data": "<p><hr></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "hr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "hr"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p></p><hr><p></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><hr><p></p>"
+ }
+ },
+ {
+ "data": "<select><b><option><select><option></b></select>X",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-start-tag-in-select",
+ "(1,27): unexpected-select-in-select",
+ "(1,39): unexpected-end-tag",
+ "(1,48): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option></option></select><option>X</option></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select><option>X</option>"
+ }
+ },
+ {
+ "data": "<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,35): unexpected-start-tag-implies-end-tag",
+ "(1,40): unexpected-cell-end-tag",
+ "(1,43): unexpected-start-tag-implies-table-voodoo",
+ "(1,43): unexpected-start-tag-implies-end-tag",
+ "(1,43): unexpected-end-tag",
+ "(1,63): unexpected-start-tag-implies-end-tag",
+ "(1,64): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "text": "C"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "Y"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a><b>X</b>C</a><a>Y</a></body></html>",
+ "noQuirksBodyHtml": "<a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a><b>X</b>C</a><a>Y</a>"
+ }
+ },
+ {
+ "data": "<a X>0<b>1<a Y>2",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-end-tag",
+ "(1,15): adoption-agency-1.3",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "x",
+ "value": ""
+ }
+ ],
+ "children": [
+ {
+ "text": "0"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "y",
+ "value": ""
+ }
+ ],
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a x=\"\">0<b>1</b></a><b><a y=\"\">2</a></b></body></html>",
+ "noQuirksBodyHtml": "<a x=\"\">0<b>1</b></a><b><a y=\"\">2</a></b>"
+ }
+ },
+ {
+ "data": "<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X-->",
+ "errors": [
+ "(1,7): unexpected-dash-after-double-dash-in-comment",
+ "(1,14): expected-doctype-but-got-start-tag",
+ "(1,41): unexpected-start-tag-implies-table-voodoo",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): unexpected-cell-in-table-body",
+ "(1,63): unexpected-cell-end-tag",
+ "(1,71): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "div": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "th": true,
+ "i": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "-"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "helloexcite!"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "me!"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "th",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "please!"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!-----><html><head></head><body><font><div>helloexcite!<b>me!</b><table><tbody><tr><th><i>please!</i></th></tr><!--X--></tbody></table></div></font></body></html>",
+ "noQuirksBodyHtml": "<!-----><font><div>helloexcite!<b>me!</b><table><tbody><tr><th><i>please!</i></th></tr><!--X--></tbody></table></div></font>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do-->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "li": true,
+ "ul": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "hello"
+ }
+ ]
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "world"
+ },
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "text": "how"
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "do"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "you"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "do"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><li>hello</li><li>world<ul>how<li>do</li></ul>you</li></body><!--do--></html>",
+ "noQuirksBodyHtml": "<li>hello</li><li>world<ul>how<li>do</li></ul>you<!--do--></li>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E",
+ "errors": [
+ "(1,54): unexpected-end-tag-in-select",
+ "(1,55): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "option": true,
+ "optgroup": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ },
+ {
+ "tag": "optgroup",
+ "children": [
+ {
+ "text": "C"
+ },
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "DE"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>A<option>B</option><optgroup>C<select>DE</select></optgroup></body></html>",
+ "noQuirksBodyHtml": "A<option>B</option><optgroup>C<select>DE</select></optgroup>"
+ }
+ },
+ {
+ "data": "<",
+ "errors": [
+ "(1,1): expected-tag-name",
+ "(1,1): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "<",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&lt;</body></html>",
+ "noQuirksBodyHtml": "&lt;"
+ }
+ },
+ {
+ "data": "<#",
+ "errors": [
+ "(1,1): expected-tag-name",
+ "(1,1): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "<#",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&lt;#</body></html>",
+ "noQuirksBodyHtml": "&lt;#"
+ }
+ },
+ {
+ "data": "</",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-eof",
+ "(1,2): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "</",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&lt;/</body></html>",
+ "noQuirksBodyHtml": "&lt;/"
+ }
+ },
+ {
+ "data": "</#",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-char",
+ "(1,3): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "#"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--#--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--#-->"
+ }
+ },
+ {
+ "data": "<?",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,2): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?-->"
+ }
+ },
+ {
+ "data": "<?#",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,3): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?#"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?#--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?#-->"
+ }
+ },
+ {
+ "data": "<!",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,2): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!----><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!---->"
+ }
+ },
+ {
+ "data": "<!#",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,3): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "#"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--#--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--#-->"
+ }
+ },
+ {
+ "data": "<?COMMENT?>",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,11): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?COMMENT?"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?COMMENT?--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?COMMENT?-->"
+ }
+ },
+ {
+ "data": "<!COMMENT>",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,10): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "COMMENT"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--COMMENT--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--COMMENT-->"
+ }
+ },
+ {
+ "data": "</ COMMENT >",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-char",
+ "(1,12): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": " COMMENT "
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!-- COMMENT --><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- COMMENT -->"
+ }
+ },
+ {
+ "data": "<?COM--MENT?>",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,13): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?COM--MENT?"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?COM--MENT?--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?COM--MENT?-->"
+ }
+ },
+ {
+ "data": "<!COM--MENT>",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,12): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "COM--MENT"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--COM--MENT--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--COM--MENT-->"
+ }
+ },
+ {
+ "data": "</ COM--MENT >",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-char",
+ "(1,14): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": " COM--MENT "
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!-- COM--MENT --><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- COM--MENT -->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><style> EOF",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " EOF",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style> EOF</style></head><body></body></html>",
+ "noQuirksBodyHtml": "<style> EOF</style>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><script> <!-- </script> --> </script> EOF",
+ "errors": [
+ "(1,52): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": " <!-- ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "--> EOF",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script> <!-- </script> </head><body>--&gt; EOF</body></html>",
+ "noQuirksBodyHtml": "<script> <!-- </script> --&gt; EOF"
+ }
+ },
+ {
+ "data": "<b><p></b>TEST",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,10): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "text": "TEST"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><p><b></b>TEST</p></body></html>",
+ "noQuirksBodyHtml": "<b></b><p><b></b>TEST</p>"
+ }
+ },
+ {
+ "data": "<p id=a><b><p id=b></b>TEST",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,19): unexpected-end-tag",
+ "(1,23): adoption-agency-1.2"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "text": "TEST"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p id=\"a\"><b></b></p><p id=\"b\">TEST</p></body></html>",
+ "noQuirksBodyHtml": "<p id=\"a\"><b></b></p><p id=\"b\">TEST</p>"
+ }
+ },
+ {
+ "data": "<b id=a><p><b id=b></p></b>TEST",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-end-tag",
+ "(1,27): adoption-agency-1.2",
+ "(1,31): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "TEST"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b id=\"a\"><p><b id=\"b\"></b></p>TEST</b></body></html>",
+ "noQuirksBodyHtml": "<b id=\"a\"><p><b id=\"b\"></b></p>TEST</b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body>",
+ "errors": [
+ "(1,61): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true,
+ "div": true,
+ "p": true,
+ "u": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "U-test"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "Test"
+ },
+ {
+ "tag": "u"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>U-test</title></head><body><div><p>Test<u></u></p></div></body></html>",
+ "noQuirksBodyHtml": "<title>U-test</title><div><p>Test<u></u></p></div>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><font><table></font></table></font>",
+ "errors": [
+ "(1,35): unexpected-end-tag-implies-table-voodoo",
+ "(1,35): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><font><table></table></font></body></html>",
+ "noQuirksBodyHtml": "<font><table></table></font>"
+ }
+ },
+ {
+ "data": "<font><p>hello<b>cruel</font>world",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,29): adoption-agency-1.3",
+ "(1,29): adoption-agency-1.3",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "p": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "hello"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "cruel"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "world"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><font></font><p><font>hello<b>cruel</b></font><b>world</b></p></body></html>",
+ "noQuirksBodyHtml": "<font></font><p><font>hello<b>cruel</b></font><b>world</b></p>"
+ }
+ },
+ {
+ "data": "<b>Test</i>Test",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "TestTest"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>TestTest</b></body></html>",
+ "noQuirksBodyHtml": "<b>TestTest</b>"
+ }
+ },
+ {
+ "data": "<b>A<cite>B<div>C",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "cite": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "text": "B"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "C"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>A<cite>B<div>C</div></cite></b></body></html>",
+ "noQuirksBodyHtml": "<b>A<cite>B<div>C</div></cite></b>"
+ }
+ },
+ {
+ "data": "<b>A<cite>B<div>C</cite>D",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "cite": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "text": "B"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "CD"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>A<cite>B<div>CD</div></cite></b></body></html>",
+ "noQuirksBodyHtml": "<b>A<cite>B<div>CD</div></cite></b>"
+ }
+ },
+ {
+ "data": "<b>A<cite>B<div>C</b>D",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,21): adoption-agency-1.3",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "cite": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "C"
+ }
+ ]
+ },
+ {
+ "text": "D"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>A<cite>B</cite></b><div><b>C</b>D</div></body></html>",
+ "noQuirksBodyHtml": "<b>A<cite>B</cite></b><div><b>C</b>D</div>"
+ }
+ },
+ {
+ "data": "",
+ "errors": [
+ "(1,0): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<DIV>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,5): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,9): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc</div></body></html>",
+ "noQuirksBodyHtml": "<div> abc</div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,13): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def</b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def</b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i></i></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i></i></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi</i></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi</i></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi <p></p></i></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi <p></p></i></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": " jkl"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi <p> jkl</p></i></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi <p> jkl</p></i></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b></p></i></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b></p></i></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b> mno</p></i></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b> mno</p></i></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,47): adoption-agency-1.3",
+ "(1,47): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i></p></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i></p></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,47): adoption-agency-1.3",
+ "(1,51): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno "
+ }
+ ]
+ },
+ {
+ "text": " pqr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr</p></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr</p></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,47): adoption-agency-1.3",
+ "(1,56): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno "
+ }
+ ]
+ },
+ {
+ "text": " pqr "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,47): adoption-agency-1.3",
+ "(1,60): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno "
+ }
+ ]
+ },
+ {
+ "text": " pqr "
+ }
+ ]
+ },
+ {
+ "text": " stu"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p> stu</div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p> stu</div>"
+ }
+ },
+ {
+ "data": "<test attribute---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->",
+ "errors": [
+ "(1,1040): expected-doctype-but-got-start-tag",
+ "(1,1040): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "test": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "test",
+ "attrs": [
+ {
+ "name": "attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=\"\"></test></body></html>",
+ "noQuirksBodyHtml": "<test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=\"\"></test>"
+ }
+ },
+ {
+ "data": "<a href=\"blah\">aba<table><a href=\"foo\">br<tr><td></td></tr>x</table>aoe",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag",
+ "(1,39): unexpected-start-tag-implies-table-voodoo",
+ "(1,39): unexpected-start-tag-implies-end-tag",
+ "(1,39): unexpected-end-tag",
+ "(1,45): foster-parenting-character-in-table",
+ "(1,45): foster-parenting-character-in-table",
+ "(1,68): foster-parenting-character-in-table",
+ "(1,71): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "aba"
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "br"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "aoe"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"blah\">aba<a href=\"foo\">br</a><a href=\"foo\">x</a><table><tbody><tr><td></td></tr></tbody></table></a><a href=\"foo\">aoe</a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"blah\">aba<a href=\"foo\">br</a><a href=\"foo\">x</a><table><tbody><tr><td></td></tr></tbody></table></a><a href=\"foo\">aoe</a>"
+ }
+ },
+ {
+ "data": "<a href=\"blah\">aba<table><tr><td><a href=\"foo\">br</td></tr>x</table>aoe",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag",
+ "(1,54): unexpected-cell-end-tag",
+ "(1,68): unexpected text in table",
+ "(1,71): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "abax"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "aoe"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"blah\">abax<table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table>aoe</a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"blah\">abax<table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table>aoe</a>"
+ }
+ },
+ {
+ "data": "<table><a href=\"blah\">aba<tr><td><a href=\"foo\">br</td></tr>x</table>aoe",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-start-tag-implies-table-voodoo",
+ "(1,29): foster-parenting-character-in-table",
+ "(1,29): foster-parenting-character-in-table",
+ "(1,29): foster-parenting-character-in-table",
+ "(1,54): unexpected-cell-end-tag",
+ "(1,68): foster-parenting-character-in-table",
+ "(1,71): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "aba"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "aoe"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"blah\">aba</a><a href=\"blah\">x</a><table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table><a href=\"blah\">aoe</a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"blah\">aba</a><a href=\"blah\">x</a><table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table><a href=\"blah\">aoe</a>"
+ }
+ },
+ {
+ "data": "<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,45): end-tag-too-early",
+ "(1,47): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "marquee": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "text": "aa"
+ },
+ {
+ "tag": "marquee",
+ "children": [
+ {
+ "text": "aa"
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "text": "bb"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "aa"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"a\">aa<marquee>aa<a href=\"b\">bb</a></marquee>aa</a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"a\">aa<marquee>aa<a href=\"b\">bb</a></marquee>aa</a>"
+ }
+ },
+ {
+ "data": "<wbr><strike><code></strike><code><strike></code>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,28): adoption-agency-1.3",
+ "(1,49): adoption-agency-1.3",
+ "(1,49): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "wbr": true,
+ "strike": true,
+ "code": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "wbr"
+ },
+ {
+ "tag": "strike",
+ "children": [
+ {
+ "tag": "code"
+ }
+ ]
+ },
+ {
+ "tag": "code",
+ "children": [
+ {
+ "tag": "code",
+ "children": [
+ {
+ "tag": "strike"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><wbr><strike><code></code></strike><code><code><strike></strike></code></code></body></html>",
+ "noQuirksBodyHtml": "<wbr><strike><code></code></strike><code><code><strike></strike></code></code>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><spacer>foo",
+ "errors": [
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "spacer": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "spacer",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><spacer>foo</spacer></body></html>",
+ "noQuirksBodyHtml": "<spacer>foo</spacer>"
+ }
+ },
+ {
+ "data": "<title><meta></title><link><title><meta></title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "link": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<meta>",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "tag": "link"
+ },
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<meta>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>&lt;meta&gt;</title><link><title>&lt;meta&gt;</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&lt;meta&gt;</title><link><title>&lt;meta&gt;</title>"
+ }
+ },
+ {
+ "data": "<style><!--</style><meta><script>--><link></script>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "meta": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "--><link>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--</style><meta><script>--><link></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<style><!--</style><meta><script>--><link></script>"
+ }
+ },
+ {
+ "data": "<head><meta></head><link>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,25): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "link": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "link"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><meta><link></head><body></body></html>",
+ "noQuirksBodyHtml": "<meta><link>"
+ }
+ },
+ {
+ "data": "<table><tr><tr><td><td><span><th><span>X</table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,33): unexpected-cell-end-tag",
+ "(1,48): unexpected-cell-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "span": true,
+ "th": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "tag": "th",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr></tr><tr><td></td><td><span></span></td><th><span>X</span></th></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr><tr><td></td><td><span></span></td><th><span>X</span></th></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<body><body><base><link><meta><title><p></title><body><p></body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,12): unexpected-start-tag",
+ "(1,54): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "base": true,
+ "link": true,
+ "meta": true,
+ "title": true,
+ "p": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "base"
+ },
+ {
+ "tag": "link"
+ },
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<p>",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><base><link><meta><title>&lt;p&gt;</title><p></p></body></html>",
+ "noQuirksBodyHtml": "<base><link><meta><title>&lt;p&gt;</title><p></p>"
+ }
+ },
+ {
+ "data": "<textarea><p></textarea>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<p>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea>&lt;p&gt;</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>&lt;p&gt;</textarea>"
+ }
+ },
+ {
+ "data": "<p><image></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-start-tag-treated-as"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "img": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><img></p></body></html>",
+ "noQuirksBodyHtml": "<p><img></p>"
+ }
+ },
+ {
+ "data": "<a><table><a></table><p><a><div><a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-start-tag-implies-table-voodoo",
+ "(1,13): unexpected-start-tag-implies-end-tag",
+ "(1,13): adoption-agency-1.3",
+ "(1,27): unexpected-start-tag-implies-end-tag",
+ "(1,27): adoption-agency-1.2",
+ "(1,32): unexpected-end-tag",
+ "(1,35): unexpected-start-tag-implies-end-tag",
+ "(1,35): adoption-agency-1.2",
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "p": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><a></a><table></table></a><p><a></a></p><div><a></a></div></body></html>",
+ "noQuirksBodyHtml": "<a><a></a><table></table></a><p><a></a></p><div><a></a></div>"
+ }
+ },
+ {
+ "data": "<head></p><meta><p>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><meta></head><body><p></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><meta><p></p>"
+ }
+ },
+ {
+ "data": "<head></html><meta><p>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,19): expected-eof-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><meta><p></p></body></html>",
+ "noQuirksBodyHtml": "<meta><p></p>"
+ }
+ },
+ {
+ "data": "<b><table><td><i></table>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,25): unexpected-cell-end-tag",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
+ "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
+ }
+ },
+ {
+ "data": "<b><table><td></b><i></table>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,18): unexpected-end-tag",
+ "(1,29): unexpected-cell-end-tag",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
+ "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
+ }
+ },
+ {
+ "data": "<h1><h2>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,8): unexpected-start-tag",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h1": true,
+ "h2": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h1"
+ },
+ {
+ "tag": "h2"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><h1></h1><h2></h2></body></html>",
+ "noQuirksBodyHtml": "<h1></h1><h2></h2>"
+ }
+ },
+ {
+ "data": "<a><p><a></a></p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,9): unexpected-start-tag-implies-end-tag",
+ "(1,9): adoption-agency-1.3",
+ "(1,21): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><p><a></a><a></a></p></body></html>",
+ "noQuirksBodyHtml": "<a></a><p><a></a><a></a></p>"
+ }
+ },
+ {
+ "data": "<b><button></b></button></b>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,15): adoption-agency-1.3",
+ "(1,28): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><button><b></b></button></body></html>",
+ "noQuirksBodyHtml": "<b></b><button><b></b></button>"
+ }
+ },
+ {
+ "data": "<p><b><div><marquee></p></b></div>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,28): unexpected-end-tag",
+ "(1,34): end-tag-too-early",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "div": true,
+ "marquee": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "marquee",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b></b></p><div><b><marquee><p></p></marquee></b></div></body></html>",
+ "noQuirksBodyHtml": "<p><b></b></p><div><b><marquee><p></p></marquee></b></div>"
+ }
+ },
+ {
+ "data": "<script></script></div><title></title><p><p>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "title": true,
+ "body": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ },
+ {
+ "tag": "title"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script><title></title></head><body><p></p><p></p></body></html>",
+ "noQuirksBodyHtml": "<script></script><title></title><p></p><p></p>"
+ }
+ },
+ {
+ "data": "<p><hr></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "hr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "hr"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p></p><hr><p></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><hr><p></p>"
+ }
+ },
+ {
+ "data": "<select><b><option><select><option></b></select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-start-tag-in-select",
+ "(1,27): unexpected-select-in-select",
+ "(1,39): unexpected-end-tag",
+ "(1,48): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option></option></select><option></option></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select><option></option>"
+ }
+ },
+ {
+ "data": "<html><head><title></title><body></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title></title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title></title>"
+ }
+ },
+ {
+ "data": "<a><table><td><a><table></table><a></tr><a></table><a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,35): unexpected-start-tag-implies-end-tag",
+ "(1,40): unexpected-cell-end-tag",
+ "(1,43): unexpected-start-tag-implies-table-voodoo",
+ "(1,43): unexpected-start-tag-implies-end-tag",
+ "(1,43): unexpected-end-tag",
+ "(1,54): unexpected-start-tag-implies-end-tag",
+ "(1,54): adoption-agency-1.2",
+ "(1,54): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a></a></body></html>",
+ "noQuirksBodyHtml": "<a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a></a>"
+ }
+ },
+ {
+ "data": "<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,45): end-tag-too-early",
+ "(1,58): end-tag-too-early",
+ "(1,69): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true,
+ "div": true,
+ "address": true,
+ "b": true,
+ "em": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "li"
+ }
+ ]
+ },
+ {
+ "tag": "li"
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "address"
+ }
+ ]
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ul><li></li><div><li></li></div><li></li><li><div></div></li><li><address></address></li><li><b><em></em></b></li><li></li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li></li><div><li></li></div><li></li><li><div></div></li><li><address></address></li><li><b><em></em></b></li><li></li></ul>"
+ }
+ },
+ {
+ "data": "<ul><li><ul></li><li>a</li></ul></li></ul>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ul><li><ul><li>a</li></ul></li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li><ul><li>a</li></ul></li></ul>"
+ }
+ },
+ {
+ "data": "<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true,
+ "noframes": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ },
+ {
+ "tag": "noframes"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset><frame><frameset><frame></frameset><noframes></noframes></frameset></html>",
+ "noQuirksBodyHtml": "<noframes></noframes>"
+ }
+ },
+ {
+ "data": "<h1><table><td><h3></table><h3></h1>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-cell-in-table-body",
+ "(1,27): unexpected-cell-end-tag",
+ "(1,31): unexpected-start-tag",
+ "(1,36): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h1": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "h3": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h1",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "h3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "h3"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><h1><table><tbody><tr><td><h3></h3></td></tr></tbody></table></h1><h3></h3></body></html>",
+ "noQuirksBodyHtml": "<h1><table><tbody><tr><td><h3></h3></td></tr></tbody></table></h1><h3></h3>"
+ }
+ },
+ {
+ "data": "<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "col": true,
+ "thead": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ },
+ {
+ "tag": "col"
+ },
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ },
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><col></colgroup><colgroup><col><col><col></colgroup><colgroup><col><col></colgroup><thead><tr><td></td></tr></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><col></colgroup><colgroup><col><col><col></colgroup><colgroup><col><col></colgroup><thead><tr><td></td></tr></thead></table>"
+ }
+ },
+ {
+ "data": "<table><col><tbody><col><tr><col><td><col></table><col>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,37): unexpected-cell-in-table-body",
+ "(1,55): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "col": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody"
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><col></colgroup><tbody></tbody><colgroup><col></colgroup><tbody><tr></tr></tbody><colgroup><col></colgroup><tbody><tr><td></td></tr></tbody><colgroup><col></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><col></colgroup><tbody></tbody><colgroup><col></colgroup><tbody><tr></tr></tbody><colgroup><col></colgroup><tbody><tr><td></td></tr></tbody><colgroup><col></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,52): unexpected-cell-in-table-body",
+ "(1,80): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ },
+ {
+ "tag": "tbody"
+ },
+ {
+ "tag": "colgroup"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "colgroup"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup></colgroup><tbody></tbody><colgroup></colgroup><tbody><tr></tr></tbody><colgroup></colgroup><tbody><tr><td></td></tr></tbody><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup></colgroup><tbody></tbody><colgroup></colgroup><tbody><tr></tr></tbody><colgroup></colgroup><tbody><tr><td></td></tr></tbody><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>",
+ "errors": [
+ "(1,9): expected-doctype-but-got-end-tag",
+ "(1,9): unexpected-end-tag-before-html",
+ "(1,13): unexpected-end-tag-before-html",
+ "(1,18): unexpected-end-tag-before-html",
+ "(1,22): unexpected-end-tag-before-html",
+ "(1,26): unexpected-end-tag-before-html",
+ "(1,35): unexpected-end-tag-before-html",
+ "(1,39): unexpected-end-tag-before-html",
+ "(1,47): unexpected-end-tag-before-html",
+ "(1,52): unexpected-end-tag-before-html",
+ "(1,58): unexpected-end-tag-before-html",
+ "(1,64): unexpected-end-tag-before-html",
+ "(1,72): unexpected-end-tag-before-html",
+ "(1,79): unexpected-end-tag-before-html",
+ "(1,88): unexpected-end-tag-before-html",
+ "(1,93): unexpected-end-tag-before-html",
+ "(1,98): unexpected-end-tag-before-html",
+ "(1,103): unexpected-end-tag-before-html",
+ "(1,108): unexpected-end-tag-before-html",
+ "(1,113): unexpected-end-tag-before-html",
+ "(1,118): unexpected-end-tag-before-html",
+ "(1,130): unexpected-end-tag-after-body",
+ "(1,130): unexpected-end-tag-treated-as",
+ "(1,134): unexpected-end-tag",
+ "(1,140): unexpected-end-tag",
+ "(1,148): unexpected-end-tag",
+ "(1,155): unexpected-end-tag",
+ "(1,163): unexpected-end-tag",
+ "(1,172): unexpected-end-tag",
+ "(1,180): unexpected-end-tag",
+ "(1,185): unexpected-end-tag",
+ "(1,190): unexpected-end-tag",
+ "(1,195): unexpected-end-tag",
+ "(1,203): unexpected-end-tag",
+ "(1,210): unexpected-end-tag",
+ "(1,217): unexpected-end-tag",
+ "(1,225): unexpected-end-tag",
+ "(1,230): unexpected-end-tag",
+ "(1,238): unexpected-end-tag",
+ "(1,244): unexpected-end-tag",
+ "(1,251): unexpected-end-tag",
+ "(1,258): unexpected-end-tag",
+ "(1,269): unexpected-end-tag",
+ "(1,279): unexpected-end-tag",
+ "(1,287): unexpected-end-tag",
+ "(1,296): unexpected-end-tag",
+ "(1,300): unexpected-end-tag",
+ "(1,305): unexpected-end-tag",
+ "(1,310): unexpected-end-tag",
+ "(1,320): unexpected-end-tag",
+ "(1,331): unexpected-end-tag",
+ "(1,339): unexpected-end-tag",
+ "(1,347): unexpected-end-tag",
+ "(1,355): unexpected-end-tag",
+ "(1,365): end-tag-too-early",
+ "(1,378): end-tag-too-early",
+ "(1,387): end-tag-too-early",
+ "(1,393): end-tag-too-early",
+ "(1,399): end-tag-too-early",
+ "(1,404): end-tag-too-early",
+ "(1,415): end-tag-too-early",
+ "(1,425): end-tag-too-early",
+ "(1,432): end-tag-too-early",
+ "(1,437): end-tag-too-early",
+ "(1,442): end-tag-too-early",
+ "(1,447): unexpected-end-tag",
+ "(1,454): unexpected-end-tag",
+ "(1,460): unexpected-end-tag",
+ "(1,467): unexpected-end-tag",
+ "(1,476): end-tag-too-early",
+ "(1,486): end-tag-too-early",
+ "(1,495): end-tag-too-early",
+ "(1,513): expected-eof-but-got-end-tag",
+ "(1,513): unexpected-end-tag",
+ "(1,520): unexpected-end-tag",
+ "(1,529): unexpected-end-tag",
+ "(1,537): unexpected-end-tag",
+ "(1,547): unexpected-end-tag",
+ "(1,557): unexpected-end-tag",
+ "(1,568): unexpected-end-tag",
+ "(1,579): unexpected-end-tag",
+ "(1,590): unexpected-end-tag",
+ "(1,599): unexpected-end-tag",
+ "(1,611): unexpected-end-tag",
+ "(1,622): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><br><p></p></body></html>",
+ "noQuirksBodyHtml": "<br><p></p>"
+ }
+ },
+ {
+ "data": "<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-end-tag-implies-table-voodoo",
+ "(1,20): unexpected-end-tag",
+ "(1,24): unexpected-end-tag-implies-table-voodoo",
+ "(1,24): unexpected-end-tag",
+ "(1,29): unexpected-end-tag-implies-table-voodoo",
+ "(1,29): unexpected-end-tag",
+ "(1,33): unexpected-end-tag-implies-table-voodoo",
+ "(1,33): unexpected-end-tag",
+ "(1,37): unexpected-end-tag-implies-table-voodoo",
+ "(1,37): unexpected-end-tag",
+ "(1,46): unexpected-end-tag-implies-table-voodoo",
+ "(1,46): unexpected-end-tag",
+ "(1,50): unexpected-end-tag-implies-table-voodoo",
+ "(1,50): unexpected-end-tag",
+ "(1,58): unexpected-end-tag-implies-table-voodoo",
+ "(1,58): unexpected-end-tag",
+ "(1,63): unexpected-end-tag-implies-table-voodoo",
+ "(1,63): unexpected-end-tag",
+ "(1,69): unexpected-end-tag-implies-table-voodoo",
+ "(1,69): end-tag-too-early",
+ "(1,75): unexpected-end-tag-implies-table-voodoo",
+ "(1,75): unexpected-end-tag",
+ "(1,83): unexpected-end-tag-implies-table-voodoo",
+ "(1,83): unexpected-end-tag",
+ "(1,90): unexpected-end-tag-implies-table-voodoo",
+ "(1,90): unexpected-end-tag",
+ "(1,99): unexpected-end-tag-implies-table-voodoo",
+ "(1,99): unexpected-end-tag",
+ "(1,104): unexpected-end-tag-implies-table-voodoo",
+ "(1,104): end-tag-too-early",
+ "(1,109): unexpected-end-tag-implies-table-voodoo",
+ "(1,109): end-tag-too-early",
+ "(1,114): unexpected-end-tag-implies-table-voodoo",
+ "(1,114): end-tag-too-early",
+ "(1,119): unexpected-end-tag-implies-table-voodoo",
+ "(1,119): end-tag-too-early",
+ "(1,124): unexpected-end-tag-implies-table-voodoo",
+ "(1,124): end-tag-too-early",
+ "(1,129): unexpected-end-tag-implies-table-voodoo",
+ "(1,129): end-tag-too-early",
+ "(1,136): unexpected-end-tag-in-table-row",
+ "(1,141): unexpected-end-tag-implies-table-voodoo",
+ "(1,141): unexpected-end-tag-treated-as",
+ "(1,145): unexpected-end-tag-implies-table-voodoo",
+ "(1,145): unexpected-end-tag",
+ "(1,151): unexpected-end-tag-implies-table-voodoo",
+ "(1,151): unexpected-end-tag",
+ "(1,159): unexpected-end-tag-implies-table-voodoo",
+ "(1,159): unexpected-end-tag",
+ "(1,166): unexpected-end-tag-implies-table-voodoo",
+ "(1,166): unexpected-end-tag",
+ "(1,174): unexpected-end-tag-implies-table-voodoo",
+ "(1,174): unexpected-end-tag",
+ "(1,183): unexpected-end-tag-implies-table-voodoo",
+ "(1,183): unexpected-end-tag",
+ "(1,196): unexpected-end-tag",
+ "(1,201): unexpected-end-tag",
+ "(1,206): unexpected-end-tag",
+ "(1,214): unexpected-end-tag",
+ "(1,221): unexpected-end-tag",
+ "(1,228): unexpected-end-tag",
+ "(1,236): unexpected-end-tag",
+ "(1,241): unexpected-end-tag",
+ "(1,249): unexpected-end-tag",
+ "(1,255): unexpected-end-tag",
+ "(1,262): unexpected-end-tag",
+ "(1,269): unexpected-end-tag",
+ "(1,280): unexpected-end-tag",
+ "(1,290): unexpected-end-tag",
+ "(1,298): unexpected-end-tag",
+ "(1,307): unexpected-end-tag",
+ "(1,311): unexpected-end-tag",
+ "(1,316): unexpected-end-tag",
+ "(1,321): unexpected-end-tag",
+ "(1,331): unexpected-end-tag",
+ "(1,342): unexpected-end-tag",
+ "(1,350): unexpected-end-tag",
+ "(1,358): unexpected-end-tag",
+ "(1,366): unexpected-end-tag",
+ "(1,376): end-tag-too-early",
+ "(1,389): end-tag-too-early",
+ "(1,398): end-tag-too-early",
+ "(1,404): end-tag-too-early",
+ "(1,410): end-tag-too-early",
+ "(1,415): end-tag-too-early",
+ "(1,426): end-tag-too-early",
+ "(1,436): end-tag-too-early",
+ "(1,443): end-tag-too-early",
+ "(1,448): end-tag-too-early",
+ "(1,453): end-tag-too-early",
+ "(1,458): unexpected-end-tag",
+ "(1,465): unexpected-end-tag",
+ "(1,471): unexpected-end-tag",
+ "(1,478): unexpected-end-tag",
+ "(1,487): end-tag-too-early",
+ "(1,497): end-tag-too-early",
+ "(1,506): end-tag-too-early",
+ "(1,524): expected-eof-but-got-end-tag",
+ "(1,524): unexpected-end-tag",
+ "(1,531): unexpected-end-tag",
+ "(1,540): unexpected-end-tag",
+ "(1,548): unexpected-end-tag",
+ "(1,558): unexpected-end-tag",
+ "(1,568): unexpected-end-tag",
+ "(1,579): unexpected-end-tag",
+ "(1,590): unexpected-end-tag",
+ "(1,601): unexpected-end-tag",
+ "(1,610): unexpected-end-tag",
+ "(1,622): unexpected-end-tag",
+ "(1,633): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><br><table><tbody><tr></tr></tbody></table><p></p></body></html>",
+ "noQuirksBodyHtml": "<br><table><tbody><tr></tr></tbody></table><p></p>"
+ }
+ },
+ {
+ "data": "<frameset>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,10): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "tests10.dat": [
+ {
+ "data": "<!DOCTYPE html><svg></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg></svg><![CDATA[a]]>",
+ "errors": [
+ "(1,28) expected-dashes-or-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "comment": "[CDATA[a]]"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg><!--[CDATA[a]]--></body></html>",
+ "noQuirksBodyHtml": "<svg></svg><!--[CDATA[a]]-->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><select><svg></svg></select>",
+ "errors": [
+ "(1,34) unexpected-start-tag-in-select",
+ "(1,40) unexpected-end-tag-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><select><option><svg></svg></option></select>",
+ "errors": [
+ "(1,42) unexpected-start-tag-in-select",
+ "(1,48) unexpected-end-tag-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><svg></svg></table>",
+ "errors": [
+ "(1,33) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg><table></table></body></html>",
+ "noQuirksBodyHtml": "<svg></svg><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><svg><g>foo</g></svg></table>",
+ "errors": [
+ "(1,33) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g></svg><table></table></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g></svg><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table>",
+ "errors": [
+ "(1,33) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table></table></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table>",
+ "errors": [
+ "(1,40) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "table": true,
+ "tbody": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table>",
+ "errors": [
+ "(1,44) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg g": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</p></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</p></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+ "errors": [
+ "(1,65) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g><p>baz</p></svg></caption></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux",
+ "errors": [
+ "(1,73) unexpected-end-tag",
+ "(1,73) expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ },
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g>baz</svg></caption></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g>baz</svg></caption></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+ "errors": [
+ "(1,43) foster-parenting-start-tag svg",
+ "(1,66) unexpected HTML-like start tag token in foreign content",
+ "(1,66) foster-parenting-start-tag",
+ "(1,67) foster-parenting-character",
+ "(1,68) foster-parenting-character",
+ "(1,69) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true,
+ "table": true,
+ "colgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p><table><colgroup></colgroup></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg><table><colgroup></colgroup></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+ "errors": [
+ "(1,49) unexpected-start-tag-in-select",
+ "(1,52) unexpected-start-tag-in-select",
+ "(1,59) unexpected-end-tag-in-select",
+ "(1,62) unexpected-start-tag-in-select",
+ "(1,69) unexpected-end-tag-in-select",
+ "(1,72) unexpected-start-tag-in-select",
+ "(1,83) unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "select": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "foobarbaz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+ "errors": [
+ "(1,36) unexpected-start-tag-implies-table-voodoo",
+ "(1,41) unexpected-start-tag-in-select",
+ "(1,44) unexpected-start-tag-in-select",
+ "(1,51) unexpected-end-tag-in-select",
+ "(1,54) unexpected-start-tag-in-select",
+ "(1,61) unexpected-end-tag-in-select",
+ "(1,64) unexpected-start-tag-in-select",
+ "(1,75) unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "foobarbaz"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select>foobarbaz</select><table></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<select>foobarbaz</select><table></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz",
+ "errors": [
+ "(1,40) expected-eof-but-got-start-tag",
+ "(1,63) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz",
+ "errors": [
+ "(1,33) unexpected-start-tag-after-body",
+ "(1,56) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset><svg><g></g><g></g><p><span>",
+ "errors": [
+ "(1,30) unexpected-start-tag-in-frameset",
+ "(1,33) unexpected-start-tag-in-frameset",
+ "(1,37) unexpected-end-tag-in-frameset",
+ "(1,40) unexpected-start-tag-in-frameset",
+ "(1,44) unexpected-end-tag-in-frameset",
+ "(1,47) unexpected-start-tag-in-frameset",
+ "(1,53) unexpected-start-tag-in-frameset",
+ "(1,53) eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg><g></g><g></g><p><span></span></p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span>",
+ "errors": [
+ "(1,41) unexpected-start-tag-after-frameset",
+ "(1,44) unexpected-start-tag-after-frameset",
+ "(1,48) unexpected-end-tag-after-frameset",
+ "(1,51) unexpected-start-tag-after-frameset",
+ "(1,55) unexpected-end-tag-after-frameset",
+ "(1,58) unexpected-start-tag-after-frameset",
+ "(1,64) unexpected-start-tag-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg><g></g><g></g><p><span></span></p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\"><svg xlink:href=\"foo\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg xlink:href=\"foo\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g>bar</svg></body></html>",
+ "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g>bar</svg>"
+ }
+ },
+ {
+ "data": "<svg></path>",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,12) unexpected-end-tag",
+ "(1,12) unexpected-end-tag",
+ "(1,12) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<div><svg></div>a",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,16) unexpected-end-tag",
+ "(1,16) end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg></svg></div>a</body></html>",
+ "noQuirksBodyHtml": "<div><svg></svg></div>a"
+ }
+ },
+ {
+ "data": "<div><svg><path></div>a",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,22) unexpected-end-tag",
+ "(1,22) end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path></path></svg></div>a</body></html>",
+ "noQuirksBodyHtml": "<div><svg><path></path></svg></div>a"
+ }
+ },
+ {
+ "data": "<div><svg><path></svg><path>",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,22) unexpected-end-tag",
+ "(1,28) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true,
+ "path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "tag": "path"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path></path></svg><path></path></div></body></html>",
+ "noQuirksBodyHtml": "<div><svg><path></path></svg><path></path></div>"
+ }
+ },
+ {
+ "data": "<div><svg><path><foreignObject><math></div>a",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,43) unexpected-end-tag",
+ "(1,43) end-tag-too-early",
+ "(1,44) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true,
+ "svg foreignObject": true,
+ "math math": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path><foreignObject><math>a</math></foreignObject></path></svg></div></body></html>",
+ "noQuirksBodyHtml": "<div><svg><path><foreignObject><math>a</math></foreignObject></path></svg></div>"
+ }
+ },
+ {
+ "data": "<div><svg><path><foreignObject><p></div>a",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,40) end-tag-too-early",
+ "(1,41) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true,
+ "svg foreignObject": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path><foreignObject><p>a</p></foreignObject></path></svg></div></body></html>",
+ "noQuirksBodyHtml": "<div><svg><path><foreignObject><p>a</p></foreignObject></path></svg></div>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><desc><div><svg><ul>a",
+ "errors": [
+ "(1,40) unexpected-html-element-in-foreign-content",
+ "(1,41) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg desc": true,
+ "div": true,
+ "ul": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><desc><div><svg></svg><ul>a</ul></div></desc></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><desc><div><svg><ul>a</ul></svg></div></desc></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><desc><svg><ul>a",
+ "errors": [
+ "(1,35) unexpected-html-element-in-foreign-content",
+ "(1,36) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg desc": true,
+ "ul": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><desc><svg></svg><ul>a</ul></desc></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><desc><svg><ul>a</ul></svg></desc></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><p><svg><desc><p>",
+ "errors": [
+ "(1,32) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "svg svg": true,
+ "svg desc": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><svg><desc><p></p></desc></svg></p></body></html>",
+ "noQuirksBodyHtml": "<p><svg><desc><p></p></desc></svg></p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><p><svg><title><p>",
+ "errors": [
+ "(1,33) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "svg svg": true,
+ "svg title": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><svg><title><p></p></title></svg></p></body></html>",
+ "noQuirksBodyHtml": "<p><svg><title><p></p></title></svg></p>"
+ }
+ },
+ {
+ "data": "<div><svg><path><foreignObject><p></foreignObject><p>",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,50) unexpected-end-tag",
+ "(1,53) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true,
+ "svg foreignObject": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path><foreignObject><p></p><p></p></foreignObject></path></svg></div></body></html>",
+ "noQuirksBodyHtml": "<div><svg><path><foreignObject><p></p><p></p></foreignObject></path></svg></div>"
+ }
+ },
+ {
+ "data": "<math><mi><div><object><div><span></span></div></object></div></mi><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,71) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "div": true,
+ "object": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "object",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mi><div><object><div><span></span></div></object></div></mi><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi><div><object><div><span></span></div></object></div></mi><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,83) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<svg><script></script><path>",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,28) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg script": true,
+ "svg path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "script",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><script></script><path></path></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><script></script><path></path></svg>"
+ }
+ },
+ {
+ "data": "<table><svg></svg><tr>",
+ "errors": [
+ "(1,7) expected-doctype-but-got-start-tag",
+ "(1,12) unexpected-start-tag-implies-table-voodoo",
+ "(1,22) eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<svg></svg><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<math><mi><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,18) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mi><mglyph></mglyph></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi><mglyph></mglyph></mi></math>"
+ }
+ },
+ {
+ "data": "<math><mi><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,22) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mi><malignmark></malignmark></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi><malignmark></malignmark></mi></math>"
+ }
+ },
+ {
+ "data": "<math><mo><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,18) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mo": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mo><mglyph></mglyph></mo></math></body></html>",
+ "noQuirksBodyHtml": "<math><mo><mglyph></mglyph></mo></math>"
+ }
+ },
+ {
+ "data": "<math><mo><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,22) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mo": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mo><malignmark></malignmark></mo></math></body></html>",
+ "noQuirksBodyHtml": "<math><mo><malignmark></malignmark></mo></math>"
+ }
+ },
+ {
+ "data": "<math><mn><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,18) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mn": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mn><mglyph></mglyph></mn></math></body></html>",
+ "noQuirksBodyHtml": "<math><mn><mglyph></mglyph></mn></math>"
+ }
+ },
+ {
+ "data": "<math><mn><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,22) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mn": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mn><malignmark></malignmark></mn></math></body></html>",
+ "noQuirksBodyHtml": "<math><mn><malignmark></malignmark></mn></math>"
+ }
+ },
+ {
+ "data": "<math><ms><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,18) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math ms": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><ms><mglyph></mglyph></ms></math></body></html>",
+ "noQuirksBodyHtml": "<math><ms><mglyph></mglyph></ms></math>"
+ }
+ },
+ {
+ "data": "<math><ms><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,22) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math ms": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><ms><malignmark></malignmark></ms></math></body></html>",
+ "noQuirksBodyHtml": "<math><ms><malignmark></malignmark></ms></math>"
+ }
+ },
+ {
+ "data": "<math><mtext><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,21) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mtext><mglyph></mglyph></mtext></math></body></html>",
+ "noQuirksBodyHtml": "<math><mtext><mglyph></mglyph></mtext></math>"
+ }
+ },
+ {
+ "data": "<math><mtext><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,25) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mtext><malignmark></malignmark></mtext></math></body></html>",
+ "noQuirksBodyHtml": "<math><mtext><malignmark></malignmark></mtext></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><svg></svg></annotation-xml><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,54) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "math mi": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><svg></svg></annotation-xml><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg></svg></annotation-xml><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,144) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "div": true,
+ "math mi": true,
+ "span": true,
+ "svg path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,153) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "math mi": true,
+ "math mo": true,
+ "span": true,
+ "svg path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi></mi></math>"
+ }
+ }
+ ],
+ "tests11.dat": [
+ {
+ "data": "<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "attributeName",
+ "value": ""
+ },
+ {
+ "name": "attributeType",
+ "value": ""
+ },
+ {
+ "name": "baseFrequency",
+ "value": ""
+ },
+ {
+ "name": "baseProfile",
+ "value": ""
+ },
+ {
+ "name": "calcMode",
+ "value": ""
+ },
+ {
+ "name": "clipPathUnits",
+ "value": ""
+ },
+ {
+ "name": "diffuseConstant",
+ "value": ""
+ },
+ {
+ "name": "edgeMode",
+ "value": ""
+ },
+ {
+ "name": "filterUnits",
+ "value": ""
+ },
+ {
+ "name": "glyphRef",
+ "value": ""
+ },
+ {
+ "name": "gradientTransform",
+ "value": ""
+ },
+ {
+ "name": "gradientUnits",
+ "value": ""
+ },
+ {
+ "name": "kernelMatrix",
+ "value": ""
+ },
+ {
+ "name": "kernelUnitLength",
+ "value": ""
+ },
+ {
+ "name": "keyPoints",
+ "value": ""
+ },
+ {
+ "name": "keySplines",
+ "value": ""
+ },
+ {
+ "name": "keyTimes",
+ "value": ""
+ },
+ {
+ "name": "lengthAdjust",
+ "value": ""
+ },
+ {
+ "name": "limitingConeAngle",
+ "value": ""
+ },
+ {
+ "name": "markerHeight",
+ "value": ""
+ },
+ {
+ "name": "markerUnits",
+ "value": ""
+ },
+ {
+ "name": "markerWidth",
+ "value": ""
+ },
+ {
+ "name": "maskContentUnits",
+ "value": ""
+ },
+ {
+ "name": "maskUnits",
+ "value": ""
+ },
+ {
+ "name": "numOctaves",
+ "value": ""
+ },
+ {
+ "name": "pathLength",
+ "value": ""
+ },
+ {
+ "name": "patternContentUnits",
+ "value": ""
+ },
+ {
+ "name": "patternTransform",
+ "value": ""
+ },
+ {
+ "name": "patternUnits",
+ "value": ""
+ },
+ {
+ "name": "pointsAtX",
+ "value": ""
+ },
+ {
+ "name": "pointsAtY",
+ "value": ""
+ },
+ {
+ "name": "pointsAtZ",
+ "value": ""
+ },
+ {
+ "name": "preserveAlpha",
+ "value": ""
+ },
+ {
+ "name": "preserveAspectRatio",
+ "value": ""
+ },
+ {
+ "name": "primitiveUnits",
+ "value": ""
+ },
+ {
+ "name": "refX",
+ "value": ""
+ },
+ {
+ "name": "refY",
+ "value": ""
+ },
+ {
+ "name": "repeatCount",
+ "value": ""
+ },
+ {
+ "name": "repeatDur",
+ "value": ""
+ },
+ {
+ "name": "requiredExtensions",
+ "value": ""
+ },
+ {
+ "name": "requiredFeatures",
+ "value": ""
+ },
+ {
+ "name": "specularConstant",
+ "value": ""
+ },
+ {
+ "name": "specularExponent",
+ "value": ""
+ },
+ {
+ "name": "spreadMethod",
+ "value": ""
+ },
+ {
+ "name": "startOffset",
+ "value": ""
+ },
+ {
+ "name": "stdDeviation",
+ "value": ""
+ },
+ {
+ "name": "stitchTiles",
+ "value": ""
+ },
+ {
+ "name": "surfaceScale",
+ "value": ""
+ },
+ {
+ "name": "systemLanguage",
+ "value": ""
+ },
+ {
+ "name": "tableValues",
+ "value": ""
+ },
+ {
+ "name": "targetX",
+ "value": ""
+ },
+ {
+ "name": "targetY",
+ "value": ""
+ },
+ {
+ "name": "textLength",
+ "value": ""
+ },
+ {
+ "name": "viewBox",
+ "value": ""
+ },
+ {
+ "name": "viewTarget",
+ "value": ""
+ },
+ {
+ "name": "xChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "yChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "zoomAndPan",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' DIFFUSECONSTANT='' EDGEMODE='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "attributeName",
+ "value": ""
+ },
+ {
+ "name": "attributeType",
+ "value": ""
+ },
+ {
+ "name": "baseFrequency",
+ "value": ""
+ },
+ {
+ "name": "baseProfile",
+ "value": ""
+ },
+ {
+ "name": "calcMode",
+ "value": ""
+ },
+ {
+ "name": "clipPathUnits",
+ "value": ""
+ },
+ {
+ "name": "diffuseConstant",
+ "value": ""
+ },
+ {
+ "name": "edgeMode",
+ "value": ""
+ },
+ {
+ "name": "filterUnits",
+ "value": ""
+ },
+ {
+ "name": "glyphRef",
+ "value": ""
+ },
+ {
+ "name": "gradientTransform",
+ "value": ""
+ },
+ {
+ "name": "gradientUnits",
+ "value": ""
+ },
+ {
+ "name": "kernelMatrix",
+ "value": ""
+ },
+ {
+ "name": "kernelUnitLength",
+ "value": ""
+ },
+ {
+ "name": "keyPoints",
+ "value": ""
+ },
+ {
+ "name": "keySplines",
+ "value": ""
+ },
+ {
+ "name": "keyTimes",
+ "value": ""
+ },
+ {
+ "name": "lengthAdjust",
+ "value": ""
+ },
+ {
+ "name": "limitingConeAngle",
+ "value": ""
+ },
+ {
+ "name": "markerHeight",
+ "value": ""
+ },
+ {
+ "name": "markerUnits",
+ "value": ""
+ },
+ {
+ "name": "markerWidth",
+ "value": ""
+ },
+ {
+ "name": "maskContentUnits",
+ "value": ""
+ },
+ {
+ "name": "maskUnits",
+ "value": ""
+ },
+ {
+ "name": "numOctaves",
+ "value": ""
+ },
+ {
+ "name": "pathLength",
+ "value": ""
+ },
+ {
+ "name": "patternContentUnits",
+ "value": ""
+ },
+ {
+ "name": "patternTransform",
+ "value": ""
+ },
+ {
+ "name": "patternUnits",
+ "value": ""
+ },
+ {
+ "name": "pointsAtX",
+ "value": ""
+ },
+ {
+ "name": "pointsAtY",
+ "value": ""
+ },
+ {
+ "name": "pointsAtZ",
+ "value": ""
+ },
+ {
+ "name": "preserveAlpha",
+ "value": ""
+ },
+ {
+ "name": "preserveAspectRatio",
+ "value": ""
+ },
+ {
+ "name": "primitiveUnits",
+ "value": ""
+ },
+ {
+ "name": "refX",
+ "value": ""
+ },
+ {
+ "name": "refY",
+ "value": ""
+ },
+ {
+ "name": "repeatCount",
+ "value": ""
+ },
+ {
+ "name": "repeatDur",
+ "value": ""
+ },
+ {
+ "name": "requiredExtensions",
+ "value": ""
+ },
+ {
+ "name": "requiredFeatures",
+ "value": ""
+ },
+ {
+ "name": "specularConstant",
+ "value": ""
+ },
+ {
+ "name": "specularExponent",
+ "value": ""
+ },
+ {
+ "name": "spreadMethod",
+ "value": ""
+ },
+ {
+ "name": "startOffset",
+ "value": ""
+ },
+ {
+ "name": "stdDeviation",
+ "value": ""
+ },
+ {
+ "name": "stitchTiles",
+ "value": ""
+ },
+ {
+ "name": "surfaceScale",
+ "value": ""
+ },
+ {
+ "name": "systemLanguage",
+ "value": ""
+ },
+ {
+ "name": "tableValues",
+ "value": ""
+ },
+ {
+ "name": "targetX",
+ "value": ""
+ },
+ {
+ "name": "targetY",
+ "value": ""
+ },
+ {
+ "name": "textLength",
+ "value": ""
+ },
+ {
+ "name": "viewBox",
+ "value": ""
+ },
+ {
+ "name": "viewTarget",
+ "value": ""
+ },
+ {
+ "name": "xChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "yChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "zoomAndPan",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' diffuseconstant='' edgemode='' filterunits='' filterres='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "attributeName",
+ "value": ""
+ },
+ {
+ "name": "attributeType",
+ "value": ""
+ },
+ {
+ "name": "baseFrequency",
+ "value": ""
+ },
+ {
+ "name": "baseProfile",
+ "value": ""
+ },
+ {
+ "name": "calcMode",
+ "value": ""
+ },
+ {
+ "name": "clipPathUnits",
+ "value": ""
+ },
+ {
+ "name": "diffuseConstant",
+ "value": ""
+ },
+ {
+ "name": "edgeMode",
+ "value": ""
+ },
+ {
+ "name": "filterUnits",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ },
+ {
+ "name": "glyphRef",
+ "value": ""
+ },
+ {
+ "name": "gradientTransform",
+ "value": ""
+ },
+ {
+ "name": "gradientUnits",
+ "value": ""
+ },
+ {
+ "name": "kernelMatrix",
+ "value": ""
+ },
+ {
+ "name": "kernelUnitLength",
+ "value": ""
+ },
+ {
+ "name": "keyPoints",
+ "value": ""
+ },
+ {
+ "name": "keySplines",
+ "value": ""
+ },
+ {
+ "name": "keyTimes",
+ "value": ""
+ },
+ {
+ "name": "lengthAdjust",
+ "value": ""
+ },
+ {
+ "name": "limitingConeAngle",
+ "value": ""
+ },
+ {
+ "name": "markerHeight",
+ "value": ""
+ },
+ {
+ "name": "markerUnits",
+ "value": ""
+ },
+ {
+ "name": "markerWidth",
+ "value": ""
+ },
+ {
+ "name": "maskContentUnits",
+ "value": ""
+ },
+ {
+ "name": "maskUnits",
+ "value": ""
+ },
+ {
+ "name": "numOctaves",
+ "value": ""
+ },
+ {
+ "name": "pathLength",
+ "value": ""
+ },
+ {
+ "name": "patternContentUnits",
+ "value": ""
+ },
+ {
+ "name": "patternTransform",
+ "value": ""
+ },
+ {
+ "name": "patternUnits",
+ "value": ""
+ },
+ {
+ "name": "pointsAtX",
+ "value": ""
+ },
+ {
+ "name": "pointsAtY",
+ "value": ""
+ },
+ {
+ "name": "pointsAtZ",
+ "value": ""
+ },
+ {
+ "name": "preserveAlpha",
+ "value": ""
+ },
+ {
+ "name": "preserveAspectRatio",
+ "value": ""
+ },
+ {
+ "name": "primitiveUnits",
+ "value": ""
+ },
+ {
+ "name": "refX",
+ "value": ""
+ },
+ {
+ "name": "refY",
+ "value": ""
+ },
+ {
+ "name": "repeatCount",
+ "value": ""
+ },
+ {
+ "name": "repeatDur",
+ "value": ""
+ },
+ {
+ "name": "requiredExtensions",
+ "value": ""
+ },
+ {
+ "name": "requiredFeatures",
+ "value": ""
+ },
+ {
+ "name": "specularConstant",
+ "value": ""
+ },
+ {
+ "name": "specularExponent",
+ "value": ""
+ },
+ {
+ "name": "spreadMethod",
+ "value": ""
+ },
+ {
+ "name": "startOffset",
+ "value": ""
+ },
+ {
+ "name": "stdDeviation",
+ "value": ""
+ },
+ {
+ "name": "stitchTiles",
+ "value": ""
+ },
+ {
+ "name": "surfaceScale",
+ "value": ""
+ },
+ {
+ "name": "systemLanguage",
+ "value": ""
+ },
+ {
+ "name": "tableValues",
+ "value": ""
+ },
+ {
+ "name": "targetX",
+ "value": ""
+ },
+ {
+ "name": "targetY",
+ "value": ""
+ },
+ {
+ "name": "textLength",
+ "value": ""
+ },
+ {
+ "name": "viewBox",
+ "value": ""
+ },
+ {
+ "name": "viewTarget",
+ "value": ""
+ },
+ {
+ "name": "xChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "yChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "zoomAndPan",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" filterres=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" filterres=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "attributename",
+ "value": ""
+ },
+ {
+ "name": "attributetype",
+ "value": ""
+ },
+ {
+ "name": "basefrequency",
+ "value": ""
+ },
+ {
+ "name": "baseprofile",
+ "value": ""
+ },
+ {
+ "name": "calcmode",
+ "value": ""
+ },
+ {
+ "name": "clippathunits",
+ "value": ""
+ },
+ {
+ "name": "diffuseconstant",
+ "value": ""
+ },
+ {
+ "name": "edgemode",
+ "value": ""
+ },
+ {
+ "name": "filterunits",
+ "value": ""
+ },
+ {
+ "name": "glyphref",
+ "value": ""
+ },
+ {
+ "name": "gradienttransform",
+ "value": ""
+ },
+ {
+ "name": "gradientunits",
+ "value": ""
+ },
+ {
+ "name": "kernelmatrix",
+ "value": ""
+ },
+ {
+ "name": "kernelunitlength",
+ "value": ""
+ },
+ {
+ "name": "keypoints",
+ "value": ""
+ },
+ {
+ "name": "keysplines",
+ "value": ""
+ },
+ {
+ "name": "keytimes",
+ "value": ""
+ },
+ {
+ "name": "lengthadjust",
+ "value": ""
+ },
+ {
+ "name": "limitingconeangle",
+ "value": ""
+ },
+ {
+ "name": "markerheight",
+ "value": ""
+ },
+ {
+ "name": "markerunits",
+ "value": ""
+ },
+ {
+ "name": "markerwidth",
+ "value": ""
+ },
+ {
+ "name": "maskcontentunits",
+ "value": ""
+ },
+ {
+ "name": "maskunits",
+ "value": ""
+ },
+ {
+ "name": "numoctaves",
+ "value": ""
+ },
+ {
+ "name": "pathlength",
+ "value": ""
+ },
+ {
+ "name": "patterncontentunits",
+ "value": ""
+ },
+ {
+ "name": "patterntransform",
+ "value": ""
+ },
+ {
+ "name": "patternunits",
+ "value": ""
+ },
+ {
+ "name": "pointsatx",
+ "value": ""
+ },
+ {
+ "name": "pointsaty",
+ "value": ""
+ },
+ {
+ "name": "pointsatz",
+ "value": ""
+ },
+ {
+ "name": "preservealpha",
+ "value": ""
+ },
+ {
+ "name": "preserveaspectratio",
+ "value": ""
+ },
+ {
+ "name": "primitiveunits",
+ "value": ""
+ },
+ {
+ "name": "refx",
+ "value": ""
+ },
+ {
+ "name": "refy",
+ "value": ""
+ },
+ {
+ "name": "repeatcount",
+ "value": ""
+ },
+ {
+ "name": "repeatdur",
+ "value": ""
+ },
+ {
+ "name": "requiredextensions",
+ "value": ""
+ },
+ {
+ "name": "requiredfeatures",
+ "value": ""
+ },
+ {
+ "name": "specularconstant",
+ "value": ""
+ },
+ {
+ "name": "specularexponent",
+ "value": ""
+ },
+ {
+ "name": "spreadmethod",
+ "value": ""
+ },
+ {
+ "name": "startoffset",
+ "value": ""
+ },
+ {
+ "name": "stddeviation",
+ "value": ""
+ },
+ {
+ "name": "stitchtiles",
+ "value": ""
+ },
+ {
+ "name": "surfacescale",
+ "value": ""
+ },
+ {
+ "name": "systemlanguage",
+ "value": ""
+ },
+ {
+ "name": "tablevalues",
+ "value": ""
+ },
+ {
+ "name": "targetx",
+ "value": ""
+ },
+ {
+ "name": "targety",
+ "value": ""
+ },
+ {
+ "name": "textlength",
+ "value": ""
+ },
+ {
+ "name": "viewbox",
+ "value": ""
+ },
+ {
+ "name": "viewtarget",
+ "value": ""
+ },
+ {
+ "name": "xchannelselector",
+ "value": ""
+ },
+ {
+ "name": "ychannelselector",
+ "value": ""
+ },
+ {
+ "name": "zoomandpan",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math attributename=\"\" attributetype=\"\" basefrequency=\"\" baseprofile=\"\" calcmode=\"\" clippathunits=\"\" diffuseconstant=\"\" edgemode=\"\" filterunits=\"\" glyphref=\"\" gradienttransform=\"\" gradientunits=\"\" kernelmatrix=\"\" kernelunitlength=\"\" keypoints=\"\" keysplines=\"\" keytimes=\"\" lengthadjust=\"\" limitingconeangle=\"\" markerheight=\"\" markerunits=\"\" markerwidth=\"\" maskcontentunits=\"\" maskunits=\"\" numoctaves=\"\" pathlength=\"\" patterncontentunits=\"\" patterntransform=\"\" patternunits=\"\" pointsatx=\"\" pointsaty=\"\" pointsatz=\"\" preservealpha=\"\" preserveaspectratio=\"\" primitiveunits=\"\" refx=\"\" refy=\"\" repeatcount=\"\" repeatdur=\"\" requiredextensions=\"\" requiredfeatures=\"\" specularconstant=\"\" specularexponent=\"\" spreadmethod=\"\" startoffset=\"\" stddeviation=\"\" stitchtiles=\"\" surfacescale=\"\" systemlanguage=\"\" tablevalues=\"\" targetx=\"\" targety=\"\" textlength=\"\" viewbox=\"\" viewtarget=\"\" xchannelselector=\"\" ychannelselector=\"\" zoomandpan=\"\"></math></body></html>",
+ "noQuirksBodyHtml": "<math attributename=\"\" attributetype=\"\" basefrequency=\"\" baseprofile=\"\" calcmode=\"\" clippathunits=\"\" diffuseconstant=\"\" edgemode=\"\" filterunits=\"\" glyphref=\"\" gradienttransform=\"\" gradientunits=\"\" kernelmatrix=\"\" kernelunitlength=\"\" keypoints=\"\" keysplines=\"\" keytimes=\"\" lengthadjust=\"\" limitingconeangle=\"\" markerheight=\"\" markerunits=\"\" markerwidth=\"\" maskcontentunits=\"\" maskunits=\"\" numoctaves=\"\" pathlength=\"\" patterncontentunits=\"\" patterntransform=\"\" patternunits=\"\" pointsatx=\"\" pointsaty=\"\" pointsatz=\"\" preservealpha=\"\" preserveaspectratio=\"\" primitiveunits=\"\" refx=\"\" refy=\"\" repeatcount=\"\" repeatdur=\"\" requiredextensions=\"\" requiredfeatures=\"\" specularconstant=\"\" specularexponent=\"\" spreadmethod=\"\" startoffset=\"\" stddeviation=\"\" stitchtiles=\"\" surfacescale=\"\" systemlanguage=\"\" tablevalues=\"\" targetx=\"\" targety=\"\" textlength=\"\" viewbox=\"\" viewtarget=\"\" xchannelselector=\"\" ychannelselector=\"\" zoomandpan=\"\"></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg contentScriptType='' contentStyleType='' externalResourcesRequired='' filterRes=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "contentscripttype",
+ "value": ""
+ },
+ {
+ "name": "contentstyletype",
+ "value": ""
+ },
+ {
+ "name": "externalresourcesrequired",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg contentScriptType=\"\" contentStyleType=\"\" externalResourcesRequired=\"\" filterres=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' EXTERNALRESOURCESREQUIRED='' FILTERRES=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "contentscripttype",
+ "value": ""
+ },
+ {
+ "name": "contentstyletype",
+ "value": ""
+ },
+ {
+ "name": "externalresourcesrequired",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg contentScriptType=\"\" contentStyleType=\"\" externalResourcesRequired=\"\" filterres=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg contentscripttype='' contentstyletype='' externalresourcesrequired='' filterres=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "contentscripttype",
+ "value": ""
+ },
+ {
+ "name": "contentstyletype",
+ "value": ""
+ },
+ {
+ "name": "externalresourcesrequired",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg contentScriptType=\"\" contentStyleType=\"\" externalResourcesRequired=\"\" filterres=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><math contentScriptType='' contentStyleType='' externalResourcesRequired='' filterRes=''></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "contentscripttype",
+ "value": ""
+ },
+ {
+ "name": "contentstyletype",
+ "value": ""
+ },
+ {
+ "name": "externalresourcesrequired",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></math></body></html>",
+ "noQuirksBodyHtml": "<math contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg altGlyph": true,
+ "svg altGlyphDef": true,
+ "svg altGlyphItem": true,
+ "svg animateColor": true,
+ "svg animateMotion": true,
+ "svg animateTransform": true,
+ "svg clipPath": true,
+ "svg feBlend": true,
+ "svg feColorMatrix": true,
+ "svg feComponentTransfer": true,
+ "svg feComposite": true,
+ "svg feConvolveMatrix": true,
+ "svg feDiffuseLighting": true,
+ "svg feDisplacementMap": true,
+ "svg feDistantLight": true,
+ "svg feFlood": true,
+ "svg feFuncA": true,
+ "svg feFuncB": true,
+ "svg feFuncG": true,
+ "svg feFuncR": true,
+ "svg feGaussianBlur": true,
+ "svg feImage": true,
+ "svg feMerge": true,
+ "svg feMergeNode": true,
+ "svg feMorphology": true,
+ "svg feOffset": true,
+ "svg fePointLight": true,
+ "svg feSpecularLighting": true,
+ "svg feSpotLight": true,
+ "svg feTile": true,
+ "svg feTurbulence": true,
+ "svg foreignObject": true,
+ "svg glyphRef": true,
+ "svg linearGradient": true,
+ "svg radialGradient": true,
+ "svg textPath": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "altGlyph",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphDef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphItem",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateColor",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateMotion",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateTransform",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "clipPath",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feBlend",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feColorMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComponentTransfer",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComposite",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feConvolveMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDiffuseLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDisplacementMap",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDistantLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFlood",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncA",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncB",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncG",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncR",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feGaussianBlur",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feImage",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMerge",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMergeNode",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMorphology",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feOffset",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "fePointLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpecularLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpotLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTile",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTurbulence",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "glyphRef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "linearGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "radialGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "textPath",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg altGlyph": true,
+ "svg altGlyphDef": true,
+ "svg altGlyphItem": true,
+ "svg animateColor": true,
+ "svg animateMotion": true,
+ "svg animateTransform": true,
+ "svg clipPath": true,
+ "svg feBlend": true,
+ "svg feColorMatrix": true,
+ "svg feComponentTransfer": true,
+ "svg feComposite": true,
+ "svg feConvolveMatrix": true,
+ "svg feDiffuseLighting": true,
+ "svg feDisplacementMap": true,
+ "svg feDistantLight": true,
+ "svg feFlood": true,
+ "svg feFuncA": true,
+ "svg feFuncB": true,
+ "svg feFuncG": true,
+ "svg feFuncR": true,
+ "svg feGaussianBlur": true,
+ "svg feImage": true,
+ "svg feMerge": true,
+ "svg feMergeNode": true,
+ "svg feMorphology": true,
+ "svg feOffset": true,
+ "svg fePointLight": true,
+ "svg feSpecularLighting": true,
+ "svg feSpotLight": true,
+ "svg feTile": true,
+ "svg feTurbulence": true,
+ "svg foreignObject": true,
+ "svg glyphRef": true,
+ "svg linearGradient": true,
+ "svg radialGradient": true,
+ "svg textPath": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "altGlyph",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphDef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphItem",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateColor",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateMotion",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateTransform",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "clipPath",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feBlend",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feColorMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComponentTransfer",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComposite",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feConvolveMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDiffuseLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDisplacementMap",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDistantLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFlood",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncA",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncB",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncG",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncR",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feGaussianBlur",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feImage",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMerge",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMergeNode",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMorphology",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feOffset",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "fePointLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpecularLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpotLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTile",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTurbulence",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "glyphRef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "linearGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "radialGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "textPath",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg altGlyph": true,
+ "svg altGlyphDef": true,
+ "svg altGlyphItem": true,
+ "svg animateColor": true,
+ "svg animateMotion": true,
+ "svg animateTransform": true,
+ "svg clipPath": true,
+ "svg feBlend": true,
+ "svg feColorMatrix": true,
+ "svg feComponentTransfer": true,
+ "svg feComposite": true,
+ "svg feConvolveMatrix": true,
+ "svg feDiffuseLighting": true,
+ "svg feDisplacementMap": true,
+ "svg feDistantLight": true,
+ "svg feFlood": true,
+ "svg feFuncA": true,
+ "svg feFuncB": true,
+ "svg feFuncG": true,
+ "svg feFuncR": true,
+ "svg feGaussianBlur": true,
+ "svg feImage": true,
+ "svg feMerge": true,
+ "svg feMergeNode": true,
+ "svg feMorphology": true,
+ "svg feOffset": true,
+ "svg fePointLight": true,
+ "svg feSpecularLighting": true,
+ "svg feSpotLight": true,
+ "svg feTile": true,
+ "svg feTurbulence": true,
+ "svg foreignObject": true,
+ "svg glyphRef": true,
+ "svg linearGradient": true,
+ "svg radialGradient": true,
+ "svg textPath": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "altGlyph",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphDef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphItem",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateColor",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateMotion",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateTransform",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "clipPath",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feBlend",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feColorMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComponentTransfer",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComposite",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feConvolveMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDiffuseLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDisplacementMap",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDistantLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFlood",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncA",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncB",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncG",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncR",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feGaussianBlur",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feImage",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMerge",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMergeNode",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMorphology",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feOffset",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "fePointLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpecularLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpotLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTile",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTurbulence",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "glyphRef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "linearGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "radialGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "textPath",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math altglyph": true,
+ "math altglyphdef": true,
+ "math altglyphitem": true,
+ "math animatecolor": true,
+ "math animatemotion": true,
+ "math animatetransform": true,
+ "math clippath": true,
+ "math feblend": true,
+ "math fecolormatrix": true,
+ "math fecomponenttransfer": true,
+ "math fecomposite": true,
+ "math feconvolvematrix": true,
+ "math fediffuselighting": true,
+ "math fedisplacementmap": true,
+ "math fedistantlight": true,
+ "math feflood": true,
+ "math fefunca": true,
+ "math fefuncb": true,
+ "math fefuncg": true,
+ "math fefuncr": true,
+ "math fegaussianblur": true,
+ "math feimage": true,
+ "math femerge": true,
+ "math femergenode": true,
+ "math femorphology": true,
+ "math feoffset": true,
+ "math fepointlight": true,
+ "math fespecularlighting": true,
+ "math fespotlight": true,
+ "math fetile": true,
+ "math feturbulence": true,
+ "math foreignobject": true,
+ "math glyphref": true,
+ "math lineargradient": true,
+ "math radialgradient": true,
+ "math textpath": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "altglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "altglyphdef",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "altglyphitem",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "animatecolor",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "animatemotion",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "animatetransform",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "clippath",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feblend",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fecolormatrix",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fecomponenttransfer",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fecomposite",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feconvolvematrix",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fediffuselighting",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fedisplacementmap",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fedistantlight",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feflood",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fefunca",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fefuncb",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fefuncg",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fefuncr",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fegaussianblur",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feimage",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "femerge",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "femergenode",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "femorphology",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feoffset",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fepointlight",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fespecularlighting",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fespotlight",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fetile",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feturbulence",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "foreignobject",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "glyphref",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "lineargradient",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "radialgradient",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "textpath",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><altglyph></altglyph><altglyphdef></altglyphdef><altglyphitem></altglyphitem><animatecolor></animatecolor><animatemotion></animatemotion><animatetransform></animatetransform><clippath></clippath><feblend></feblend><fecolormatrix></fecolormatrix><fecomponenttransfer></fecomponenttransfer><fecomposite></fecomposite><feconvolvematrix></feconvolvematrix><fediffuselighting></fediffuselighting><fedisplacementmap></fedisplacementmap><fedistantlight></fedistantlight><feflood></feflood><fefunca></fefunca><fefuncb></fefuncb><fefuncg></fefuncg><fefuncr></fefuncr><fegaussianblur></fegaussianblur><feimage></feimage><femerge></femerge><femergenode></femergenode><femorphology></femorphology><feoffset></feoffset><fepointlight></fepointlight><fespecularlighting></fespecularlighting><fespotlight></fespotlight><fetile></fetile><feturbulence></feturbulence><foreignobject></foreignobject><glyphref></glyphref><lineargradient></lineargradient><radialgradient></radialgradient><textpath></textpath></math></body></html>",
+ "noQuirksBodyHtml": "<math><altglyph></altglyph><altglyphdef></altglyphdef><altglyphitem></altglyphitem><animatecolor></animatecolor><animatemotion></animatemotion><animatetransform></animatetransform><clippath></clippath><feblend></feblend><fecolormatrix></fecolormatrix><fecomponenttransfer></fecomponenttransfer><fecomposite></fecomposite><feconvolvematrix></feconvolvematrix><fediffuselighting></fediffuselighting><fedisplacementmap></fedisplacementmap><fedistantlight></fedistantlight><feflood></feflood><fefunca></fefunca><fefuncb></fefuncb><fefuncg></fefuncg><fefuncr></fefuncr><fegaussianblur></fegaussianblur><feimage></feimage><femerge></femerge><femergenode></femergenode><femorphology></femorphology><feoffset></feoffset><fepointlight></fepointlight><fespecularlighting></fespecularlighting><fespotlight></fespotlight><fetile></fetile><feturbulence></feturbulence><foreignobject></foreignobject><glyphref></glyphref><lineargradient></lineargradient><radialgradient></radialgradient><textpath></textpath></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg><solidColor /></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg solidcolor": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "solidcolor",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><solidcolor></solidcolor></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><solidcolor></solidcolor></svg>"
+ }
+ }
+ ],
+ "tests12.dat": [
+ {
+ "data": "<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mtext": true,
+ "i": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "svg desc": true,
+ "b": true,
+ "svg g": true,
+ "svg foreignObject": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "eggs"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "spam"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</p></body></html>",
+ "noQuirksBodyHtml": "<p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true,
+ "i": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "svg desc": true,
+ "b": true,
+ "svg g": true,
+ "svg foreignObject": true,
+ "p": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "eggs"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "spam"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</body></html>",
+ "noQuirksBodyHtml": "foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar"
+ }
+ }
+ ],
+ "tests14.dat": [
+ {
+ "data": "<!DOCTYPE html><html><body><xyz:abc></xyz:abc>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xyz:abc": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xyz:abc"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><xyz:abc></xyz:abc></body></html>",
+ "noQuirksBodyHtml": "<xyz:abc></xyz:abc>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xyz:abc": true,
+ "span": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xyz:abc"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><xyz:abc></xyz:abc><span></span></body></html>",
+ "noQuirksBodyHtml": "<xyz:abc></xyz:abc><span></span>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc>",
+ "errors": [
+ "(1,38): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xyz:abc": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "abc:def",
+ "value": "gh"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xyz:abc"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html abc:def=\"gh\"><head></head><body><xyz:abc></xyz:abc></body></html>",
+ "noQuirksBodyHtml": "<xyz:abc></xyz:abc>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo>",
+ "errors": [
+ "(1,53): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "xml:lang",
+ "value": "bar"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html xml:lang=\"bar\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html 123=456>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "123",
+ "value": "456"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html 123=\"456\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html 123=456><html 789=012>",
+ "errors": [
+ "(1,43): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "123",
+ "value": "456"
+ },
+ {
+ "name": "789",
+ "value": "012"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html 123=\"456\" 789=\"012\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><body 789=012>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "789",
+ "value": "012"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body 789=\"012\"></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "tests15.dat": [
+ {
+ "data": "<!DOCTYPE html><p><b><i><u></p> <p>X",
+ "errors": [
+ "(1,31): unexpected-end-tag",
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "i": true,
+ "u": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "u"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "u",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><b><i><u></u></i></b></p><b><i><u> <p>X</p></u></i></b></body></html>",
+ "noQuirksBodyHtml": "<p><b><i><u></u></i></b></p><b><i><u> <p>X</p></u></i></b>"
+ }
+ },
+ {
+ "data": "<p><b><i><u></p>\n<p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-end-tag",
+ "(2,4): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "i": true,
+ "u": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "u"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "u",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b><i><u></u></i></b></p><b><i><u>\n<p>X</p></u></i></b></body></html>",
+ "noQuirksBodyHtml": "<p><b><i><u></u></i></b></p><b><i><u>\n<p>X</p></u></i></b>"
+ }
+ },
+ {
+ "data": "<!doctype html></html> <head>",
+ "errors": [
+ "(1,29): expected-eof-but-got-start-tag",
+ "(1,29): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> </body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html></body><meta>",
+ "errors": [
+ "(1,28): unexpected-start-tag-after-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "meta"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><meta></body></html>",
+ "noQuirksBodyHtml": "<meta>"
+ }
+ },
+ {
+ "data": "<html></html><!-- foo -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ },
+ {
+ "comment": " foo "
+ }
+ ],
+ "html": "<html><head></head><body></body></html><!-- foo -->",
+ "noQuirksBodyHtml": "<!-- foo -->"
+ }
+ },
+ {
+ "data": "<!doctype html></body><title>X</title>",
+ "errors": [
+ "(1,29): unexpected-start-tag-after-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>X</title></body></html>",
+ "noQuirksBodyHtml": "<title>X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> X<meta></table>",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,30): foster-parenting-start-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " X"
+ },
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> X<meta><table></table></body></html>",
+ "noQuirksBodyHtml": " X<meta><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> x</table>",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " x"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> x<table></table></body></html>",
+ "noQuirksBodyHtml": " x<table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> x </table>",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,25): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " x "
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> x <table></table></body></html>",
+ "noQuirksBodyHtml": " x <table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr> x</table>",
+ "errors": [
+ "(1,27): foster-parenting-character",
+ "(1,28): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " x"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> x<table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": " x<table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table>X<style> <tr>x </style> </table>",
+ "errors": [
+ "(1,23): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <tr>x ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<table><style> <tr>x </style> </table></body></html>",
+ "noQuirksBodyHtml": "X<table><style> <tr>x </style> </table>"
+ }
+ },
+ {
+ "data": "<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div>",
+ "errors": [
+ "(1,30): foster-parenting-start-tag",
+ "(1,31): foster-parenting-character",
+ "(1,32): foster-parenting-character",
+ "(1,33): foster-parenting-character",
+ "(1,37): foster-parenting-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div><a>foo</a><table> <tbody><tr><td>bar</td> </tr></tbody></table></div></body></html>",
+ "noQuirksBodyHtml": "<div><a>foo</a><table> <tbody><tr><td>bar</td> </tr></tbody></table></div>"
+ }
+ },
+ {
+ "data": "<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,7): unexpected-start-tag-ignored",
+ "(1,15): unexpected-end-tag",
+ "(1,23): unexpected-end-tag",
+ "(1,33): unexpected-start-tag",
+ "(1,99): expected-named-closing-tag-but-got-eof",
+ "(1,99): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true,
+ "noframes": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "</frameset><noframes>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes></noframes></frameset></html>",
+ "noQuirksBodyHtml": "<noframes></frameset><noframes></noframes>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><object></html>",
+ "errors": [
+ "(1,30): expected-body-in-scope",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "object": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "object"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><object></object></body></html>",
+ "noQuirksBodyHtml": "<object></object>"
+ }
+ }
+ ],
+ "tests16.dat": [
+ {
+ "data": "<!doctype html><script>",
+ "errors": [
+ "(1,23): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script>a",
+ "errors": [
+ "(1,24): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script>a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script>a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><",
+ "errors": [
+ "(1,24): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></",
+ "errors": [
+ "(1,25): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></S",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</S",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></S</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></S</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SC",
+ "errors": [
+ "(1,27): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SC",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SC</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SC</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCR",
+ "errors": [
+ "(1,28): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SCR</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCR</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCRI",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRI",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SCRI</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRI</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCRIP",
+ "errors": [
+ "(1,30): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRIP",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SCRIP</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRIP</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCRIPT",
+ "errors": [
+ "(1,31): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRIPT",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SCRIPT</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRIPT</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCRIPT ",
+ "errors": [
+ "(1,32): expected-attribute-name-but-got-eof",
+ "(1,32): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></s",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></s</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></sc",
+ "errors": [
+ "(1,27): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</sc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></sc</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></sc</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></scr",
+ "errors": [
+ "(1,28): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scr",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></scr</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scr</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></scri",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scri",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></scri</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scri</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></scrip",
+ "errors": [
+ "(1,30): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scrip",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></scrip</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scrip</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></script",
+ "errors": [
+ "(1,31): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></script ",
+ "errors": [
+ "(1,32): expected-attribute-name-but-got-eof",
+ "(1,32): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!",
+ "errors": [
+ "(1,25): expected-script-data-but-got-eof",
+ "(1,25): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!a",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!-",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!-",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!-</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!-</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!-a",
+ "errors": [
+ "(1,27): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!-a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!-a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!-a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--",
+ "errors": [
+ "(1,27): expected-named-closing-tag-but-got-eof",
+ "(1,27): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--a",
+ "errors": [
+ "(1,28): expected-named-closing-tag-but-got-eof",
+ "(1,28): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<",
+ "errors": [
+ "(1,28): expected-named-closing-tag-but-got-eof",
+ "(1,28): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<a",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--</",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--</",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--</</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--</script",
+ "errors": [
+ "(1,35): expected-named-closing-tag-but-got-eof",
+ "(1,35): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--</script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--</script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--</script ",
+ "errors": [
+ "(1,36): expected-attribute-name-but-got-eof",
+ "(1,36): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<s",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<s</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script",
+ "errors": [
+ "(1,34): expected-named-closing-tag-but-got-eof",
+ "(1,34): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script ",
+ "errors": [
+ "(1,35): eof-in-script-in-script",
+ "(1,35): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script <",
+ "errors": [
+ "(1,36): eof-in-script-in-script",
+ "(1,36): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script <",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script <</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script <</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script <a",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script <a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script <a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script <a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </s",
+ "errors": [
+ "(1,38): eof-in-script-in-script",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </s</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script",
+ "errors": [
+ "(1,43): eof-in-script-in-script",
+ "(1,43): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </scripta",
+ "errors": [
+ "(1,44): eof-in-script-in-script",
+ "(1,44): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </scripta",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </scripta</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </scripta</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script ",
+ "errors": [
+ "(1,44): expected-named-closing-tag-but-got-eof",
+ "(1,44): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script>",
+ "errors": [
+ "(1,44): expected-named-closing-tag-but-got-eof",
+ "(1,44): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script/",
+ "errors": [
+ "(1,44): expected-named-closing-tag-but-got-eof",
+ "(1,44): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script/",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script/</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script/</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script <",
+ "errors": [
+ "(1,45): expected-named-closing-tag-but-got-eof",
+ "(1,45): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script <",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script <</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script <</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script <a",
+ "errors": [
+ "(1,46): expected-named-closing-tag-but-got-eof",
+ "(1,46): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script <a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script <a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script <a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </",
+ "errors": [
+ "(1,46): expected-named-closing-tag-but-got-eof",
+ "(1,46): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script </",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </script",
+ "errors": [
+ "(1,52): expected-named-closing-tag-but-got-eof",
+ "(1,52): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script </script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </script ",
+ "errors": [
+ "(1,53): expected-attribute-name-but-got-eof",
+ "(1,53): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </script/",
+ "errors": [
+ "(1,53): unexpected-EOF-after-solidus-in-tag",
+ "(1,53): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script -",
+ "errors": [
+ "(1,36): eof-in-script-in-script",
+ "(1,36): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script -</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script -a",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script -a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script -<",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script -<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -<</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --a",
+ "errors": [
+ "(1,38): eof-in-script-in-script",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --<",
+ "errors": [
+ "(1,38): eof-in-script-in-script",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --<</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script -->",
+ "errors": [
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --><",
+ "errors": [
+ "(1,39): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --><",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --><</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --><</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></",
+ "errors": [
+ "(1,40): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --></",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></script",
+ "errors": [
+ "(1,46): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --></script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></script ",
+ "errors": [
+ "(1,47): expected-attribute-name-but-got-eof",
+ "(1,47): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></script/",
+ "errors": [
+ "(1,47): unexpected-EOF-after-solidus-in-tag",
+ "(1,47): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script><\\/script>--></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script><\\/script>-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script><\\/script>--></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script><\\/script>--></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></scr'+'ipt>--></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></scr'+'ipt>-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></scr'+'ipt>--></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt>--></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>--><!--</script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>--><!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>--><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>--><!--</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>-- ></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>-- >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>-- ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>-- ></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>- -></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>- ->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>- -></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>- -></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>- - ></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>- - >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>- - ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>- - ></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>-></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>-></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>-></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script>--!></script>X",
+ "errors": [
+ "(1,49): expected-named-closing-tag-but-got-eof",
+ "(1,49): unexpected-EOF-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script>--!></script>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script>--!></script>X</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script>--!></script>X</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<scr'+'ipt></script>--></script>",
+ "errors": [
+ "(1,59): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<scr'+'ipt>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<scr'+'ipt></script></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<script><!--<scr'+'ipt></script>--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></scr'+'ipt></script>X",
+ "errors": [
+ "(1,57): expected-named-closing-tag-but-got-eof",
+ "(1,57): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></scr'+'ipt></script>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></scr'+'ipt></script>X</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt></script>X</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--<style></style>--></style>",
+ "errors": [
+ "(1,52): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--<style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--<style></style></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<style><!--<style></style>--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--</style>X",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--</style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style><!--</style>X"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--...</style>...--></style>",
+ "errors": [
+ "(1,51): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "...-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--...</style></head><body>...--&gt;</body></html>",
+ "noQuirksBodyHtml": "<style><!--...</style>...--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--...<style><!--...--!></style>--></style>",
+ "errors": [
+ "(1,66): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...<style><!--...--!>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--...<style><!--...--!></style></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<style><!--...<style><!--...--!></style>--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--...</style><!-- --><style>@import ...</style>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "@import ...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--...</style><!-- --><style>@import ...</style></head><body></body></html>",
+ "noQuirksBodyHtml": "<style><!--...</style><!-- --><style>@import ...</style>"
+ }
+ },
+ {
+ "data": "<!doctype html><style>...<style><!--...</style><!-- --></style>",
+ "errors": [
+ "(1,63): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "...<style><!--...",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": " "
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style>...<style><!--...</style><!-- --></head><body></body></html>",
+ "noQuirksBodyHtml": "<style>...<style><!--...</style><!-- -->"
+ }
+ },
+ {
+ "data": "<!doctype html><style>...<!--[if IE]><style>...</style>X",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "...<!--[if IE]><style>...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style>...<!--[if IE]><style>...</style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style>...<!--[if IE]><style>...</style>X"
+ }
+ },
+ {
+ "data": "<!doctype html><title><!--<title></title>--></title>",
+ "errors": [
+ "(1,52): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--<title>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>&lt;!--&lt;title&gt;</title></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<title>&lt;!--&lt;title&gt;</title>--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><title>&lt;/title></title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "</title>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>&lt;/title&gt;</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&lt;/title&gt;</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><title>foo/title><link></head><body>X",
+ "errors": [
+ "(1,52): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "foo/title><link></head><body>X",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>foo/title&gt;&lt;link&gt;&lt;/head&gt;&lt;body&gt;X</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>foo/title&gt;&lt;link&gt;&lt;/head&gt;&lt;body&gt;X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><!--<noscript></noscript>--></noscript>",
+ "errors": [
+ "(1,64): unexpected-end-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--<noscript>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><!--<noscript></noscript></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><!--<noscript></noscript>--></noscript>",
+ "errors": [],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "<noscript></noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><!--<noscript></noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>",
+ "errors": [],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><!--</noscript></head><body>X<noscript>--></noscript></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>",
+ "errors": [],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "</noscript>X<noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><!--</noscript>X<noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><iframe></noscript>X",
+ "errors": [],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<iframe>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><iframe></noscript></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><iframe></noscript>X",
+ "errors": [
+ " * (1,34) unexpected token in head noscript",
+ " * (1,46) unexpected EOF"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true,
+ "iframe": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "</noscript>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript></noscript></head><body><iframe></noscript>X</iframe></body></html>",
+ "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noframes><!--<noframes></noframes>--></noframes>",
+ "errors": [
+ "(1,64): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noframes": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "<!--<noframes>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noframes><!--<noframes></noframes></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<noframes><!--<noframes></noframes>--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><noframes><body><script><!--...</script></body></noframes></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noframes": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "<body><script><!--...</script></body>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noframes><body><script><!--...</script></body></noframes></head><body></body></html>",
+ "noQuirksBodyHtml": "<noframes><body><script><!--...</script></body></noframes>"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea><!--<textarea></textarea>--></textarea>",
+ "errors": [
+ "(1,64): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<!--<textarea>",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea>&lt;!--&lt;textarea&gt;</textarea>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<textarea>&lt;!--&lt;textarea&gt;</textarea>--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea>&lt;/textarea></textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "</textarea>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea>&lt;/textarea&gt;</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>&lt;/textarea&gt;</textarea>"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea>&lt;</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea>&lt;</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>&lt;</textarea>"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea>a&lt;b</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "a<b",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea>a&lt;b</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>a&lt;b</textarea>"
+ }
+ },
+ {
+ "data": "<!doctype html><iframe><!--<iframe></iframe>--></iframe>",
+ "errors": [
+ "(1,56): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "<!--<iframe>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><iframe><!--<iframe></iframe>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<iframe><!--<iframe></iframe>--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><iframe>...<!--X->...<!--/X->...</iframe>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "...<!--X->...<!--/X->...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><iframe>...<!--X->...<!--/X->...</iframe></body></html>",
+ "noQuirksBodyHtml": "<iframe>...<!--X->...<!--/X->...</iframe>"
+ }
+ },
+ {
+ "data": "<!doctype html><xmp><!--<xmp></xmp>--></xmp>",
+ "errors": [
+ "(1,44): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xmp": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xmp",
+ "children": [
+ {
+ "text": "<!--<xmp>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><xmp><!--<xmp></xmp>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<xmp><!--<xmp></xmp>--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><noembed><!--<noembed></noembed>--></noembed>",
+ "errors": [
+ "(1,60): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "noembed": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "noembed",
+ "children": [
+ {
+ "text": "<!--<noembed>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><noembed><!--<noembed></noembed>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<noembed><!--<noembed></noembed>--&gt;"
+ }
+ },
+ {
+ "data": "<script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,8): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<script>a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,9): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script>a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script>a</script>"
+ }
+ },
+ {
+ "data": "<script><",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,9): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><</script>"
+ }
+ },
+ {
+ "data": "<script></",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,10): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></</script>"
+ }
+ },
+ {
+ "data": "<script></S",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</S",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></S</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></S</script>"
+ }
+ },
+ {
+ "data": "<script></SC",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SC",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SC</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SC</script>"
+ }
+ },
+ {
+ "data": "<script></SCR",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,13): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SCR</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCR</script>"
+ }
+ },
+ {
+ "data": "<script></SCRI",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRI",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SCRI</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRI</script>"
+ }
+ },
+ {
+ "data": "<script></SCRIP",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,15): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRIP",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SCRIP</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRIP</script>"
+ }
+ },
+ {
+ "data": "<script></SCRIPT",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,16): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRIPT",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SCRIPT</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRIPT</script>"
+ }
+ },
+ {
+ "data": "<script></SCRIPT ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,17): expected-attribute-name-but-got-eof",
+ "(1,17): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<script></s",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></s</script>"
+ }
+ },
+ {
+ "data": "<script></sc",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</sc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></sc</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></sc</script>"
+ }
+ },
+ {
+ "data": "<script></scr",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,13): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scr",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></scr</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scr</script>"
+ }
+ },
+ {
+ "data": "<script></scri",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scri",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></scri</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scri</script>"
+ }
+ },
+ {
+ "data": "<script></scrip",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,15): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scrip",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></scrip</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scrip</script>"
+ }
+ },
+ {
+ "data": "<script></script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,16): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script</script>"
+ }
+ },
+ {
+ "data": "<script></script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,17): expected-attribute-name-but-got-eof",
+ "(1,17): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<script><!",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,10): expected-script-data-but-got-eof",
+ "(1,10): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!</script>"
+ }
+ },
+ {
+ "data": "<script><!a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!a</script>"
+ }
+ },
+ {
+ "data": "<script><!-",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!-",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!-</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!-</script>"
+ }
+ },
+ {
+ "data": "<script><!-a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!-a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!-a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!-a</script>"
+ }
+ },
+ {
+ "data": "<script><!--",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): expected-named-closing-tag-but-got-eof",
+ "(1,12): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script>"
+ }
+ },
+ {
+ "data": "<script><!--a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,13): expected-named-closing-tag-but-got-eof",
+ "(1,13): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,13): expected-named-closing-tag-but-got-eof",
+ "(1,13): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<</script>"
+ }
+ },
+ {
+ "data": "<script><!--<a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof",
+ "(1,14): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<a</script>"
+ }
+ },
+ {
+ "data": "<script><!--</",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof",
+ "(1,14): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--</",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--</</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</</script>"
+ }
+ },
+ {
+ "data": "<script><!--</script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,20): expected-named-closing-tag-but-got-eof",
+ "(1,20): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--</script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--</script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script</script>"
+ }
+ },
+ {
+ "data": "<script><!--</script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,21): expected-attribute-name-but-got-eof",
+ "(1,21): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script>"
+ }
+ },
+ {
+ "data": "<script><!--<s",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof",
+ "(1,14): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<s</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,19): expected-named-closing-tag-but-got-eof",
+ "(1,19): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,20): eof-in-script-in-script",
+ "(1,20): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script <",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,21): eof-in-script-in-script",
+ "(1,21): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script <",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script <</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script <</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script <a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-script-in-script",
+ "(1,22): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script <a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script <a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script <a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-script-in-script",
+ "(1,22): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </s",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): eof-in-script-in-script",
+ "(1,23): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </s</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,28): eof-in-script-in-script",
+ "(1,28): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </scripta",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,29): eof-in-script-in-script",
+ "(1,29): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </scripta",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </scripta</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </scripta</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script/",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script/",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script/</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script/</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script <",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,30): expected-named-closing-tag-but-got-eof",
+ "(1,30): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script <",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script <</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script <</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script <a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,31): expected-named-closing-tag-but-got-eof",
+ "(1,31): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script <a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script <a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script <a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,31): expected-named-closing-tag-but-got-eof",
+ "(1,31): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script </",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,37): expected-named-closing-tag-but-got-eof",
+ "(1,37): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script </script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,38): expected-attribute-name-but-got-eof",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </script/",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,38): unexpected-EOF-after-solidus-in-tag",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script -",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,21): eof-in-script-in-script",
+ "(1,21): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script -</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script -a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-script-in-script",
+ "(1,22): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script -a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-script-in-script",
+ "(1,22): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): eof-in-script-in-script",
+ "(1,23): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script -->",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --><",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,24): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --><",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --><</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --><</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,25): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --></",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,31): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --></script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,32): expected-attribute-name-but-got-eof",
+ "(1,32): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></script/",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,32): unexpected-EOF-after-solidus-in-tag",
+ "(1,32): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script><\\/script>--></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script><\\/script>-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script><\\/script>--></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script><\\/script>--></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></scr'+'ipt>--></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></scr'+'ipt>-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></scr'+'ipt>--></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt>--></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>--><!--</script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>--><!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>--><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>--><!--</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>-- ></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>-- >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>-- ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>-- ></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>- -></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>- ->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>- -></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>- -></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>- - ></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>- - >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>- - ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>- - ></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>-></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>-></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>-></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script>--!></script>X",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,34): expected-named-closing-tag-but-got-eof",
+ "(1,34): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script>--!></script>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script>--!></script>X</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script>--!></script>X</script>"
+ }
+ },
+ {
+ "data": "<script><!--<scr'+'ipt></script>--></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,44): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<scr'+'ipt>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<scr'+'ipt></script></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<script><!--<scr'+'ipt></script>--&gt;"
+ }
+ },
+ {
+ "data": "<script><!--<script></scr'+'ipt></script>X",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,42): expected-named-closing-tag-but-got-eof",
+ "(1,42): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></scr'+'ipt></script>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></scr'+'ipt></script>X</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt></script>X</script>"
+ }
+ },
+ {
+ "data": "<style><!--<style></style>--></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,37): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--<style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--<style></style></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<style><!--<style></style>--&gt;"
+ }
+ },
+ {
+ "data": "<style><!--</style>X",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--</style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style><!--</style>X"
+ }
+ },
+ {
+ "data": "<style><!--...</style>...--></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,36): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "...-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--...</style></head><body>...--&gt;</body></html>",
+ "noQuirksBodyHtml": "<style><!--...</style>...--&gt;"
+ }
+ },
+ {
+ "data": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X"
+ }
+ },
+ {
+ "data": "<style><!--...<style><!--...--!></style>--></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,51): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...<style><!--...--!>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--...<style><!--...--!></style></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<style><!--...<style><!--...--!></style>--&gt;"
+ }
+ },
+ {
+ "data": "<style><!--...</style><!-- --><style>@import ...</style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "@import ...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--...</style><!-- --><style>@import ...</style></head><body></body></html>",
+ "noQuirksBodyHtml": "<style><!--...</style><!-- --><style>@import ...</style>"
+ }
+ },
+ {
+ "data": "<style>...<style><!--...</style><!-- --></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,48): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "...<style><!--...",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": " "
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style>...<style><!--...</style><!-- --></head><body></body></html>",
+ "noQuirksBodyHtml": "<style>...<style><!--...</style><!-- -->"
+ }
+ },
+ {
+ "data": "<style>...<!--[if IE]><style>...</style>X",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "...<!--[if IE]><style>...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style>...<!--[if IE]><style>...</style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style>...<!--[if IE]><style>...</style>X"
+ }
+ },
+ {
+ "data": "<title><!--<title></title>--></title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,37): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--<title>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>&lt;!--&lt;title&gt;</title></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<title>&lt;!--&lt;title&gt;</title>--&gt;"
+ }
+ },
+ {
+ "data": "<title>&lt;/title></title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "</title>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>&lt;/title&gt;</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&lt;/title&gt;</title>"
+ }
+ },
+ {
+ "data": "<title>foo/title><link></head><body>X",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "foo/title><link></head><body>X",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>foo/title&gt;&lt;link&gt;&lt;/head&gt;&lt;body&gt;X</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>foo/title&gt;&lt;link&gt;&lt;/head&gt;&lt;body&gt;X</title>"
+ }
+ },
+ {
+ "data": "<noscript><!--<noscript></noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,49): unexpected-end-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--<noscript>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--<noscript></noscript></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><!--<noscript></noscript>--></noscript>",
+ "errors": [
+ " * (1,11) missing DOCTYPE"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "<noscript></noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--<noscript></noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><!--</noscript>X<noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--</noscript></head><body>X<noscript>--></noscript></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><!--</noscript>X<noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "</noscript>X<noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--</noscript>X<noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><iframe></noscript>X",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<iframe>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><iframe></noscript></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><iframe></noscript>X",
+ "errors": [
+ " * (1,11) missing DOCTYPE",
+ " * (1,19) unexpected token in head noscript",
+ " * (1,31) unexpected EOF"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "</noscript>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body><iframe></noscript>X</iframe></body></html>",
+ "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
+ }
+ },
+ {
+ "data": "<noframes><!--<noframes></noframes>--></noframes>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,49): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noframes": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "<!--<noframes>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noframes><!--<noframes></noframes></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<noframes><!--<noframes></noframes>--&gt;"
+ }
+ },
+ {
+ "data": "<noframes><body><script><!--...</script></body></noframes></html>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noframes": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "<body><script><!--...</script></body>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noframes><body><script><!--...</script></body></noframes></head><body></body></html>",
+ "noQuirksBodyHtml": "<noframes><body><script><!--...</script></body></noframes>"
+ }
+ },
+ {
+ "data": "<textarea><!--<textarea></textarea>--></textarea>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,49): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<!--<textarea>",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea>&lt;!--&lt;textarea&gt;</textarea>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<textarea>&lt;!--&lt;textarea&gt;</textarea>--&gt;"
+ }
+ },
+ {
+ "data": "<textarea>&lt;/textarea></textarea>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "</textarea>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea>&lt;/textarea&gt;</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>&lt;/textarea&gt;</textarea>"
+ }
+ },
+ {
+ "data": "<iframe><!--<iframe></iframe>--></iframe>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,41): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "<!--<iframe>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><iframe><!--<iframe></iframe>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<iframe><!--<iframe></iframe>--&gt;"
+ }
+ },
+ {
+ "data": "<iframe>...<!--X->...<!--/X->...</iframe>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "...<!--X->...<!--/X->...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><iframe>...<!--X->...<!--/X->...</iframe></body></html>",
+ "noQuirksBodyHtml": "<iframe>...<!--X->...<!--/X->...</iframe>"
+ }
+ },
+ {
+ "data": "<xmp><!--<xmp></xmp>--></xmp>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,29): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xmp": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xmp",
+ "children": [
+ {
+ "text": "<!--<xmp>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><xmp><!--<xmp></xmp>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<xmp><!--<xmp></xmp>--&gt;"
+ }
+ },
+ {
+ "data": "<noembed><!--<noembed></noembed>--></noembed>",
+ "errors": [
+ "(1,9): expected-doctype-but-got-start-tag",
+ "(1,45): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "noembed": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "noembed",
+ "children": [
+ {
+ "text": "<!--<noembed>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><noembed><!--<noembed></noembed>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<noembed><!--<noembed></noembed>--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><table>\n",
+ "errors": [
+ "(2,0): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table>\n</table></body></html>",
+ "noQuirksBodyHtml": "<table>\n</table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><span><font></span><span>",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,45): unexpected-end-tag",
+ "(1,51): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "span": true,
+ "font": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "font"
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><span><font></font></span><font><span></span></font></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><span><font></font></span><font><span></span></font></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><form><table></form><form></table></form>",
+ "errors": [
+ "(1,35): unexpected-end-tag-implies-table-voodoo",
+ "(1,35): unexpected-end-tag",
+ "(1,41): unexpected-form-in-table",
+ "(1,56): unexpected-end-tag",
+ "(1,56): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><form><table><form></form></table></form></body></html>",
+ "noQuirksBodyHtml": "<form><table><form></form></table></form>"
+ }
+ }
+ ],
+ "tests17.dat": [
+ {
+ "data": "<!doctype html><table><tbody><select><tr>",
+ "errors": [
+ "(1,37): unexpected-start-tag-implies-table-voodoo",
+ "(1,41): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,41): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select></select><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><select><td>",
+ "errors": [
+ "(1,34): unexpected-start-tag-implies-table-voodoo",
+ "(1,38): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select></select><table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><td><select><td>",
+ "errors": [
+ "(1,42): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select></select></td><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><select></select></td><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><th><select><td>",
+ "errors": [
+ "(1,42): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "th": true,
+ "select": true,
+ "td": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "th",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><th><select></select></th><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><th><select></select></th><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><caption><select><tr>",
+ "errors": [
+ "(1,43): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,43): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "select": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><select></select></caption><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><select></select></caption><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><tr>",
+ "errors": [
+ "(1,27): unexpected-start-tag-in-select",
+ "(1,27): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><td>",
+ "errors": [
+ "(1,27): unexpected-start-tag-in-select",
+ "(1,27): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><th>",
+ "errors": [
+ "(1,27): unexpected-start-tag-in-select",
+ "(1,27): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><tbody>",
+ "errors": [
+ "(1,30): unexpected-start-tag-in-select",
+ "(1,30): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><thead>",
+ "errors": [
+ "(1,30): unexpected-start-tag-in-select",
+ "(1,30): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><tfoot>",
+ "errors": [
+ "(1,30): unexpected-start-tag-in-select",
+ "(1,30): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><caption>",
+ "errors": [
+ "(1,32): unexpected-start-tag-in-select",
+ "(1,32): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr></table>a",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr></tr></tbody></table>a</body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody></table>a"
+ }
+ }
+ ],
+ "tests18.dat": [
+ {
+ "data": "<!doctype html><plaintext></plaintext>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><plaintext></plaintext>",
+ "errors": [
+ "(1,33): foster-parenting-start-tag",
+ "(1,34): foster-parenting-character",
+ "(1,35): foster-parenting-character",
+ "(1,36): foster-parenting-character",
+ "(1,37): foster-parenting-character",
+ "(1,38): foster-parenting-character",
+ "(1,39): foster-parenting-character",
+ "(1,40): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,42): foster-parenting-character",
+ "(1,43): foster-parenting-character",
+ "(1,44): foster-parenting-character",
+ "(1,45): foster-parenting-character",
+ "(1,45): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true,
+ "table": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table></table></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tbody><plaintext></plaintext>",
+ "errors": [
+ "(1,40): foster-parenting-start-tag",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,52): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true,
+ "table": true,
+ "tbody": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tbody><tr><plaintext></plaintext>",
+ "errors": [
+ "(1,44): foster-parenting-start-tag",
+ "(1,45): foster-parenting-character",
+ "(1,46): foster-parenting-character",
+ "(1,47): foster-parenting-character",
+ "(1,48): foster-parenting-character",
+ "(1,49): foster-parenting-character",
+ "(1,50): foster-parenting-character",
+ "(1,51): foster-parenting-character",
+ "(1,52): foster-parenting-character",
+ "(1,53): foster-parenting-character",
+ "(1,54): foster-parenting-character",
+ "(1,55): foster-parenting-character",
+ "(1,56): foster-parenting-character",
+ "(1,56): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><plaintext></plaintext>",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,49): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "plaintext": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><plaintext></plaintext></plaintext></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><plaintext></plaintext></plaintext></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><caption><plaintext></plaintext>",
+ "errors": [
+ "(1,54): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "plaintext": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><plaintext></plaintext></plaintext></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><plaintext></plaintext></plaintext></caption></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><style></script></style>abc",
+ "errors": [
+ "(1,51): foster-parenting-character",
+ "(1,52): foster-parenting-character",
+ "(1,53): foster-parenting-character",
+ "(1,53): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "abc"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>abc<table><tbody><tr><style></script></style></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "abc<table><tbody><tr><style></script></style></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><script></style></script>abc",
+ "errors": [
+ "(1,52): foster-parenting-character",
+ "(1,53): foster-parenting-character",
+ "(1,54): foster-parenting-character",
+ "(1,54): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "script": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "abc"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>abc<table><tbody><tr><script></style></script></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "abc<table><tbody><tr><script></style></script></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><caption><style></script></style>abc",
+ "errors": [
+ "(1,58): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "</script>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><style></script></style>abc</caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><style></script></style>abc</caption></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><style></script></style>abc",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,53): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "</script>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><style></script></style>abc</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><style></script></style>abc</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><script></style></script>abc",
+ "errors": [
+ "(1,51): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "script": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</style>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select></body></html>",
+ "noQuirksBodyHtml": "<select><script></style></script>abc</select>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><select><script></style></script>abc",
+ "errors": [
+ "(1,30): unexpected-start-tag-implies-table-voodoo",
+ "(1,58): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "script": true,
+ "table": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</style>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select><table></table></body></html>",
+ "noQuirksBodyHtml": "<select><script></style></script>abc</select><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><select><script></style></script>abc",
+ "errors": [
+ "(1,34): unexpected-start-tag-implies-table-voodoo",
+ "(1,62): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "script": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</style>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select><script></style></script>abc</select><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></frameset><noframes>abc",
+ "errors": [
+ "(1,49): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "abc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html>",
+ "noQuirksBodyHtml": "<noframes>abc</noframes>"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc-->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "abc",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": "abc"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes><!--abc--></html>",
+ "noQuirksBodyHtml": "<noframes>abc</noframes><!--abc-->"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></frameset></html><noframes>abc",
+ "errors": [
+ "(1,56): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "abc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html>",
+ "noQuirksBodyHtml": "<noframes>abc</noframes>"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc-->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "abc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "abc"
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html><!--abc-->",
+ "noQuirksBodyHtml": "<noframes>abc</noframes><!--abc-->"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr></tbody><tfoot>",
+ "errors": [
+ "(1,41): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "tfoot": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "tfoot"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr></tr></tbody><tfoot></tfoot></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody><tfoot></tfoot></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><svg></svg>abc<td>",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,44): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg></svg>abc</td><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg></svg>abc</td><td></td></tr></tbody></table>"
+ }
+ }
+ ],
+ "tests19.dat": [
+ {
+ "data": "<!doctype html><math><mn DefinitionUrl=\"foo\">",
+ "errors": [
+ "(1,45): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mn": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "definitionURL",
+ "value": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mn definitionURL=\"foo\"></mn></math></body></html>",
+ "noQuirksBodyHtml": "<math><mn definitionURL=\"foo\"></mn></math>"
+ }
+ },
+ {
+ "data": "<!doctype html><html></p><!--foo-->",
+ "errors": [
+ "(1,25): end-tag-after-implied-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "comment": "foo"
+ },
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><!--foo--><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<p></p><!--foo-->"
+ }
+ },
+ {
+ "data": "<!doctype html><head></head></p><!--foo-->",
+ "errors": [
+ "(1,32): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "comment": "foo"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><!--foo--><body></body></html>",
+ "noQuirksBodyHtml": "<p></p><!--foo-->"
+ }
+ },
+ {
+ "data": "<!doctype html><body><p><pre>",
+ "errors": [
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "pre"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><pre></pre></body></html>",
+ "noQuirksBodyHtml": "<p></p><pre></pre>"
+ }
+ },
+ {
+ "data": "<!doctype html><body><p><listing>",
+ "errors": [
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "listing": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "listing"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><listing></listing></body></html>",
+ "noQuirksBodyHtml": "<p></p><listing></listing>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><plaintext>",
+ "errors": [
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "plaintext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "plaintext"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><plaintext></plaintext></body></html>",
+ "noQuirksBodyHtml": "<p></p><plaintext></plaintext>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><h1>",
+ "errors": [
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><h1></h1></body></html>",
+ "noQuirksBodyHtml": "<p></p><h1></h1>"
+ }
+ },
+ {
+ "data": "<!doctype html><isindex type=\"hidden\">",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "isindex": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "isindex",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidden"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><isindex type=\"hidden\"></isindex></body></html>",
+ "noQuirksBodyHtml": "<isindex type=\"hidden\"></isindex>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><p><rp>",
+ "errors": [
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "p": true,
+ "rp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><p></p><rp></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><p></p><rp></rp></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><div><span><rp>",
+ "errors": [
+ "(1,36): XXX-undefined-error",
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "span": true,
+ "rp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><div><span><rp></rp></span></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><span><rp></rp></span></div></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><div><p><rp>",
+ "errors": [
+ "(1,33): XXX-undefined-error",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "p": true,
+ "rp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><div><p></p><rp></rp></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><p></p><rp></rp></div></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><p><rt>",
+ "errors": [
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "p": true,
+ "rt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><p></p><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><p></p><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><div><span><rt>",
+ "errors": [
+ "(1,36): XXX-undefined-error",
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "span": true,
+ "rt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><div><span><rt></rt></span></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><span><rt></rt></span></div></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><div><p><rt>",
+ "errors": [
+ "(1,33): XXX-undefined-error",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "p": true,
+ "rt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><div><p></p><rt></rt></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><p></p><rt></rt></div></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rt>c<rb>d</ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rt": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b<rt>c</rt></rtc><rb>d</rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b<rt>c</rt></rtc><rb>d</rb></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><math/><foo>",
+ "errors": [
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "foo": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math><foo></foo></body></html>",
+ "noQuirksBodyHtml": "<math></math><foo></foo>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg/><foo>",
+ "errors": [
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "foo": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg><foo></foo></body></html>",
+ "noQuirksBodyHtml": "<svg></svg><foo></foo>"
+ }
+ },
+ {
+ "data": "<!doctype html><div></body><!--foo-->",
+ "errors": [
+ "(1,27): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div></div></body><!--foo--></html>",
+ "noQuirksBodyHtml": "<div><!--foo--></div>"
+ }
+ },
+ {
+ "data": "<!doctype html><h1><div><h3><span></h1>foo",
+ "errors": [
+ "(1,39): end-tag-too-early",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h1": true,
+ "div": true,
+ "h3": true,
+ "span": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h1",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "h3",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><h1><div><h3><span></span></h3>foo</div></h1></body></html>",
+ "noQuirksBodyHtml": "<h1><div><h3><span></span></h3>foo</div></h1>"
+ }
+ },
+ {
+ "data": "<!doctype html><p></h3>foo",
+ "errors": [
+ "(1,23): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p>foo</p></body></html>",
+ "noQuirksBodyHtml": "<p>foo</p>"
+ }
+ },
+ {
+ "data": "<!doctype html><h3><li>abc</h2>foo",
+ "errors": [
+ "(1,31): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h3": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h3",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><h3><li>abc</li></h3>foo</body></html>",
+ "noQuirksBodyHtml": "<h3><li>abc</li></h3>foo"
+ }
+ },
+ {
+ "data": "<!doctype html><table>abc<!--foo-->",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,25): foster-parenting-character",
+ "(1,35): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "abc"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>abc<table><!--foo--></table></body></html>",
+ "noQuirksBodyHtml": "abc<table><!--foo--></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> <!--foo-->",
+ "errors": [
+ "(1,34): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table> <!--foo--></table></body></html>",
+ "noQuirksBodyHtml": "<table> <!--foo--></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> b <!--foo-->",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,25): foster-parenting-character",
+ "(1,35): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " b "
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> b <table><!--foo--></table></body></html>",
+ "noQuirksBodyHtml": " b <table><!--foo--></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><option><option>",
+ "errors": [
+ "(1,39): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option><option></option></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><option></optgroup>",
+ "errors": [
+ "(1,42): unexpected-end-tag-in-select",
+ "(1,42): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><option></optgroup>",
+ "errors": [
+ "(1,42): unexpected-end-tag-in-select",
+ "(1,42): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><dd><optgroup><dd>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dd": true,
+ "optgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "tag": "optgroup"
+ }
+ ]
+ },
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dd><optgroup></optgroup></dd><dd></dd></body></html>",
+ "noQuirksBodyHtml": "<dd><optgroup></optgroup></dd><dd></dd>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mi><p><h1>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mi": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mi><p></p><h1></h1></mi></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mi><p></p><h1></h1></mi></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mo><p><h1>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mo": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mo><p></p><h1></h1></mo></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mo><p></p><h1></h1></mo></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mn><p><h1>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mn": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mn><p></p><h1></h1></mn></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mn><p></p><h1></h1></mn></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><ms><p><h1>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math ms": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><ms><p></p><h1></h1></ms></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><ms><p></p><h1></h1></ms></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mtext><p><h1>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mtext": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mtext><p></p><h1></h1></mtext></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mtext><p></p><h1></h1></mtext></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></noframes>",
+ "errors": [
+ "(1,36): unexpected-end-tag-in-frameset",
+ "(1,36): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><html c=d><body></html><html a=b>",
+ "errors": [
+ "(1,48): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ },
+ {
+ "name": "c",
+ "value": "d"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html c=\"d\" a=\"b\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><html c=d><frameset></frameset></html><html a=b>",
+ "errors": [
+ "(1,63): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ },
+ {
+ "name": "c",
+ "value": "d"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html c=\"d\" a=\"b\"><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html><!--foo-->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ },
+ {
+ "comment": "foo"
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html><!--foo-->",
+ "noQuirksBodyHtml": "<!--foo-->"
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html> ",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset> </html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html>abc",
+ "errors": [
+ "(1,50): expected-eof-but-got-char",
+ "(1,51): expected-eof-but-got-char",
+ "(1,52): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "abc"
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html><p>",
+ "errors": [
+ "(1,52): expected-eof-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<p></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html></p>",
+ "errors": [
+ "(1,53): expected-eof-but-got-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<p></p>"
+ }
+ },
+ {
+ "data": "<html><frameset></frameset></html><!doctype html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,49): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><body><frameset>",
+ "errors": [
+ "(1,31): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><p><frameset><frame>",
+ "errors": [
+ "(1,28): unexpected-start-tag",
+ "(1,35): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<p></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p>a<frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p>a</p></body></html>",
+ "noQuirksBodyHtml": "<p>a</p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p> <frameset><frame>",
+ "errors": [
+ "(1,29): unexpected-start-tag",
+ "(1,36): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<p> </p>"
+ }
+ },
+ {
+ "data": "<!doctype html><pre><frameset>",
+ "errors": [
+ "(1,30): unexpected-start-tag",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre></pre></body></html>",
+ "noQuirksBodyHtml": "<pre></pre>"
+ }
+ },
+ {
+ "data": "<!doctype html><listing><frameset>",
+ "errors": [
+ "(1,34): unexpected-start-tag",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "listing": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "listing"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><listing></listing></body></html>",
+ "noQuirksBodyHtml": "<listing></listing>"
+ }
+ },
+ {
+ "data": "<!doctype html><li><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><li></li></body></html>",
+ "noQuirksBodyHtml": "<li></li>"
+ }
+ },
+ {
+ "data": "<!doctype html><dd><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dd": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dd></dd></body></html>",
+ "noQuirksBodyHtml": "<dd></dd>"
+ }
+ },
+ {
+ "data": "<!doctype html><dt><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dt"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dt></dt></body></html>",
+ "noQuirksBodyHtml": "<dt></dt>"
+ }
+ },
+ {
+ "data": "<!doctype html><button><frameset>",
+ "errors": [
+ "(1,33): unexpected-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><button></button></body></html>",
+ "noQuirksBodyHtml": "<button></button>"
+ }
+ },
+ {
+ "data": "<!doctype html><applet><frameset>",
+ "errors": [
+ "(1,33): unexpected-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "applet": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "applet"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><applet></applet></body></html>",
+ "noQuirksBodyHtml": "<applet></applet>"
+ }
+ },
+ {
+ "data": "<!doctype html><marquee><frameset>",
+ "errors": [
+ "(1,34): unexpected-start-tag",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "marquee": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "marquee"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><marquee></marquee></body></html>",
+ "noQuirksBodyHtml": "<marquee></marquee>"
+ }
+ },
+ {
+ "data": "<!doctype html><object><frameset>",
+ "errors": [
+ "(1,33): unexpected-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "object": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "object"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><object></object></body></html>",
+ "noQuirksBodyHtml": "<object></object>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><frameset>",
+ "errors": [
+ "(1,32): unexpected-start-tag-implies-table-voodoo",
+ "(1,32): unexpected-start-tag",
+ "(1,32): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table></table></body></html>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><area><frameset>",
+ "errors": [
+ "(1,31): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "area": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "area"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><area></body></html>",
+ "noQuirksBodyHtml": "<area>"
+ }
+ },
+ {
+ "data": "<!doctype html><basefont><frameset>",
+ "errors": [
+ "(1,35): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "basefont": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "basefont"
+ }
+ ]
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><basefont></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<basefont>"
+ }
+ },
+ {
+ "data": "<!doctype html><bgsound><frameset>",
+ "errors": [
+ "(1,34): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "bgsound": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "bgsound"
+ }
+ ]
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><bgsound></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<bgsound>"
+ }
+ },
+ {
+ "data": "<!doctype html><br><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><br></body></html>",
+ "noQuirksBodyHtml": "<br>"
+ }
+ },
+ {
+ "data": "<!doctype html><embed><frameset>",
+ "errors": [
+ "(1,32): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "embed": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "embed"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><embed></body></html>",
+ "noQuirksBodyHtml": "<embed>"
+ }
+ },
+ {
+ "data": "<!doctype html><img><frameset>",
+ "errors": [
+ "(1,30): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><img></body></html>",
+ "noQuirksBodyHtml": "<img>"
+ }
+ },
+ {
+ "data": "<!doctype html><input><frameset>",
+ "errors": [
+ "(1,32): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><input></body></html>",
+ "noQuirksBodyHtml": "<input>"
+ }
+ },
+ {
+ "data": "<!doctype html><keygen><frameset>",
+ "errors": [
+ "(1,33): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "keygen": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "keygen"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><keygen></body></html>",
+ "noQuirksBodyHtml": "<keygen>"
+ }
+ },
+ {
+ "data": "<!doctype html><wbr><frameset>",
+ "errors": [
+ "(1,30): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "wbr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "wbr"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><wbr></body></html>",
+ "noQuirksBodyHtml": "<wbr>"
+ }
+ },
+ {
+ "data": "<!doctype html><hr><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "hr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "hr"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><hr></body></html>",
+ "noQuirksBodyHtml": "<hr>"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea></textarea><frameset>",
+ "errors": [
+ "(1,46): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea></textarea>"
+ }
+ },
+ {
+ "data": "<!doctype html><xmp></xmp><frameset>",
+ "errors": [
+ "(1,36): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xmp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xmp"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><xmp></xmp></body></html>",
+ "noQuirksBodyHtml": "<xmp></xmp>"
+ }
+ },
+ {
+ "data": "<!doctype html><iframe></iframe><frameset>",
+ "errors": [
+ "(1,42): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><iframe></iframe></body></html>",
+ "noQuirksBodyHtml": "<iframe></iframe>"
+ }
+ },
+ {
+ "data": "<!doctype html><select></select><frameset>",
+ "errors": [
+ "(1,42): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg></svg><frameset><frame>",
+ "errors": [
+ "(1,36): unexpected-start-tag",
+ "(1,43): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><math></math><frameset><frame>",
+ "errors": [
+ "(1,38): unexpected-start-tag",
+ "(1,45): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg><foreignObject><div> <frameset><frame>",
+ "errors": [
+ "(1,51): unexpected-start-tag",
+ "(1,58): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><div> </div></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg>a</svg><frameset><frame>",
+ "errors": [
+ "(1,37): unexpected-start-tag",
+ "(1,44): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg>a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>a</svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg> </svg><frameset><frame>",
+ "errors": [
+ "(1,37): unexpected-start-tag",
+ "(1,44): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<svg> </svg>"
+ }
+ },
+ {
+ "data": "<html>aaa<frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,19): unexpected-start-tag",
+ "(1,30): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "aaa"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>aaa</body></html>",
+ "noQuirksBodyHtml": "aaa"
+ }
+ },
+ {
+ "data": "<html> a <frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,19): unexpected-start-tag",
+ "(1,30): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "a "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>a </body></html>",
+ "noQuirksBodyHtml": " a "
+ }
+ },
+ {
+ "data": "<!doctype html><div><frameset>",
+ "errors": [
+ "(1,30): unexpected-start-tag",
+ "(1,30): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<!doctype html><div><body><frameset>",
+ "errors": [
+ "(1,26): unexpected-start-tag",
+ "(1,36): unexpected-start-tag",
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math></p>a",
+ "errors": [
+ "(1,28): unexpected-end-tag",
+ "(1,28): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math></math></p>a</body></html>",
+ "noQuirksBodyHtml": "<p><math></math></p>a"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mn><span></p>a",
+ "errors": [
+ "(1,38): unexpected-end-tag",
+ "(1,39): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mn": true,
+ "span": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mn><span><p></p>a</span></mn></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mn><span><p></p>a</span></mn></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><math></html>",
+ "errors": [
+ "(1,28): unexpected-end-tag",
+ "(1,28): expected-one-end-tag-but-got-another",
+ "(1,28): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ },
+ {
+ "data": "<!doctype html><meta charset=\"ascii\">",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta",
+ "attrs": [
+ {
+ "name": "charset",
+ "value": "ascii"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><meta charset=\"ascii\"></head><body></body></html>",
+ "noQuirksBodyHtml": "<meta charset=\"ascii\">"
+ }
+ },
+ {
+ "data": "<!doctype html><meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\">",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta",
+ "attrs": [
+ {
+ "name": "content",
+ "value": "text/html;charset=ascii"
+ },
+ {
+ "name": "http-equiv",
+ "value": "content-type"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\"></head><body></body></html>",
+ "noQuirksBodyHtml": "<meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\">"
+ }
+ },
+ {
+ "data": "<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\">",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "comment": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ {
+ "tag": "meta",
+ "attrs": [
+ {
+ "name": "charset",
+ "value": "utf8"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\"></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\">"
+ }
+ },
+ {
+ "data": "<!doctype html><html a=b><head></head><html c=d>",
+ "errors": [
+ "(1,48): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ },
+ {
+ "name": "c",
+ "value": "d"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html a=\"b\" c=\"d\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><image/>",
+ "errors": [
+ "(1,23): image-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><img></body></html>",
+ "noQuirksBodyHtml": "<img>"
+ }
+ },
+ {
+ "data": "<!doctype html>a<i>b<table>c<b>d</i>e</b>f",
+ "errors": [
+ "(1,28): foster-parenting-character",
+ "(1,31): foster-parenting-start-tag",
+ "(1,32): foster-parenting-character",
+ "(1,36): foster-parenting-end-tag",
+ "(1,36): adoption-agency-1.3",
+ "(1,37): foster-parenting-character",
+ "(1,41): foster-parenting-end-tag",
+ "(1,42): foster-parenting-character",
+ "(1,42): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "bc"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "de"
+ }
+ ]
+ },
+ {
+ "text": "f"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>a<i>bc<b>de</b>f<table></table></i></body></html>",
+ "noQuirksBodyHtml": "a<i>bc<b>de</b>f<table></table></i>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f",
+ "errors": [
+ "(1,25): foster-parenting-start-tag",
+ "(1,26): foster-parenting-character",
+ "(1,29): foster-parenting-start-tag",
+ "(1,30): foster-parenting-character",
+ "(1,35): foster-parenting-start-tag",
+ "(1,36): foster-parenting-character",
+ "(1,39): foster-parenting-start-tag",
+ "(1,40): foster-parenting-character",
+ "(1,44): foster-parenting-end-tag",
+ "(1,44): adoption-agency-1.3",
+ "(1,44): adoption-agency-1.3",
+ "(1,45): foster-parenting-character",
+ "(1,49): foster-parenting-end-tag",
+ "(1,49): adoption-agency-1.3",
+ "(1,49): adoption-agency-1.3",
+ "(1,50): foster-parenting-character",
+ "(1,50): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "div": true,
+ "a": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "e"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "f"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table></body></html>",
+ "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f",
+ "errors": [
+ "(1,37): adoption-agency-1.3",
+ "(1,37): adoption-agency-1.3",
+ "(1,42): adoption-agency-1.3",
+ "(1,42): adoption-agency-1.3",
+ "(1,43): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "div": true,
+ "a": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "e"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "f"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div></body></html>",
+ "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><i>a<b>b<div>c</i>",
+ "errors": [
+ "(1,25): foster-parenting-start-tag",
+ "(1,26): foster-parenting-character",
+ "(1,29): foster-parenting-start-tag",
+ "(1,30): foster-parenting-character",
+ "(1,35): foster-parenting-start-tag",
+ "(1,36): foster-parenting-character",
+ "(1,40): foster-parenting-end-tag",
+ "(1,40): adoption-agency-1.3",
+ "(1,40): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "div": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b><div><i>c</i></div></b><table></table></body></html>",
+ "noQuirksBodyHtml": "<i>a<b>b</b></i><b><div><i>c</i></div></b><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f",
+ "errors": [
+ "(1,25): foster-parenting-start-tag",
+ "(1,26): foster-parenting-character",
+ "(1,29): foster-parenting-start-tag",
+ "(1,30): foster-parenting-character",
+ "(1,35): foster-parenting-start-tag",
+ "(1,36): foster-parenting-character",
+ "(1,39): foster-parenting-start-tag",
+ "(1,40): foster-parenting-character",
+ "(1,44): foster-parenting-end-tag",
+ "(1,44): adoption-agency-1.3",
+ "(1,44): adoption-agency-1.3",
+ "(1,45): foster-parenting-character",
+ "(1,49): foster-parenting-end-tag",
+ "(1,44): adoption-agency-1.3",
+ "(1,44): adoption-agency-1.3",
+ "(1,50): foster-parenting-character",
+ "(1,50): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "div": true,
+ "a": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "e"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "f"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table></body></html>",
+ "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><i>a<div>b<tr>c<b>d</i>e",
+ "errors": [
+ "(1,25): foster-parenting-start-tag",
+ "(1,26): foster-parenting-character",
+ "(1,31): foster-parenting-start-tag",
+ "(1,32): foster-parenting-character",
+ "(1,37): foster-parenting-character",
+ "(1,40): foster-parenting-start-tag",
+ "(1,41): foster-parenting-character",
+ "(1,45): foster-parenting-end-tag",
+ "(1,45): adoption-agency-1.3",
+ "(1,46): foster-parenting-character",
+ "(1,46): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "div": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "e"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<div>b</div></i><i>c<b>d</b></i><b>e</b><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<i>a<div>b</div></i><i>c<b>d</b></i><b>e</b><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><table><i>a<div>b<b>c</i>d",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,36): foster-parenting-start-tag",
+ "(1,37): foster-parenting-character",
+ "(1,42): foster-parenting-start-tag",
+ "(1,43): foster-parenting-character",
+ "(1,46): foster-parenting-start-tag",
+ "(1,47): foster-parenting-character",
+ "(1,51): foster-parenting-end-tag",
+ "(1,51): adoption-agency-1.3",
+ "(1,51): adoption-agency-1.3",
+ "(1,52): foster-parenting-character",
+ "(1,52): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true,
+ "div": true,
+ "b": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><i>a</i><div><i>b<b>c</b></i><b>d</b></div><table></table></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><i>a</i><div><i>b<b>c</b></i><b>d</b></div><table></table></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><body><bgsound>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bgsound": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "bgsound"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><bgsound></body></html>",
+ "noQuirksBodyHtml": "<bgsound>"
+ }
+ },
+ {
+ "data": "<!doctype html><body><basefont>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "basefont": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "basefont"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><basefont></body></html>",
+ "noQuirksBodyHtml": "<basefont>"
+ }
+ },
+ {
+ "data": "<!doctype html><a><b></a><basefont>",
+ "errors": [
+ "(1,25): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "basefont": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "basefont"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><a><b></b></a><basefont></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><basefont>"
+ }
+ },
+ {
+ "data": "<!doctype html><a><b></a><bgsound>",
+ "errors": [
+ "(1,25): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "bgsound": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "bgsound"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><a><b></b></a><bgsound></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><bgsound>"
+ }
+ },
+ {
+ "data": "<!doctype html><figcaption><article></figcaption>a",
+ "errors": [
+ "(1,49): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "figcaption": true,
+ "article": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "figcaption",
+ "children": [
+ {
+ "tag": "article"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><figcaption><article></article></figcaption>a</body></html>",
+ "noQuirksBodyHtml": "<figcaption><article></article></figcaption>a"
+ }
+ },
+ {
+ "data": "<!doctype html><summary><article></summary>a",
+ "errors": [
+ "(1,43): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "summary": true,
+ "article": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "summary",
+ "children": [
+ {
+ "tag": "article"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><summary><article></article></summary>a</body></html>",
+ "noQuirksBodyHtml": "<summary><article></article></summary>a"
+ }
+ },
+ {
+ "data": "<!doctype html><p><a><plaintext>b",
+ "errors": [
+ "(1,32): unexpected-end-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "a": true,
+ "plaintext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><a></a></p><plaintext><a>b</a></plaintext></body></html>",
+ "noQuirksBodyHtml": "<p><a></a></p><plaintext><a>b</a></plaintext>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><div>a<a></div>b<p>c</p>d",
+ "errors": [
+ "(1,30): end-tag-too-early",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "a": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ },
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div>a<a></a></div><a>b<p>c</p>d</a></body></html>",
+ "noQuirksBodyHtml": "<div>a<a></a></div><a>b<p>c</p>d</a>"
+ }
+ }
+ ],
+ "tests2.dat": [
+ {
+ "data": "<!DOCTYPE html>Test",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Test"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Test</body></html>",
+ "noQuirksBodyHtml": "Test"
+ }
+ },
+ {
+ "data": "<textarea>test</div>test",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,24): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "test</div>test",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea>test&lt;/div&gt;test</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>test&lt;/div&gt;test</textarea>"
+ }
+ },
+ {
+ "data": "<table><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td>test</tbody></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>test</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>test</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<frame>test",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,7): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>test</body></html>",
+ "noQuirksBodyHtml": "test"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset>test",
+ "errors": [
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "test"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset> te st",
+ "errors": [
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset> </frameset></html>",
+ "noQuirksBodyHtml": " te st"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset></frameset> te st",
+ "errors": [
+ "(1,29): unexpected-char-after-frameset",
+ "(1,29): unexpected-char-after-frameset",
+ "(1,29): unexpected-char-after-frameset",
+ "(1,29): unexpected-char-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset> </html>",
+ "noQuirksBodyHtml": " te st"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset><!DOCTYPE html>",
+ "errors": [
+ "(1,40): unexpected-doctype",
+ "(1,40): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><font><p><b>test</font>",
+ "errors": [
+ "(1,38): adoption-agency-1.3",
+ "(1,38): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "p": true,
+ "b": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><font></font><p><font><b>test</b></font></p></body></html>",
+ "noQuirksBodyHtml": "<font></font><p><font><b>test</b></font></p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><dt><div><dd>",
+ "errors": [
+ "(1,28): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dt": true,
+ "div": true,
+ "dd": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dt",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ },
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dt><div></div></dt><dd></dd></body></html>",
+ "noQuirksBodyHtml": "<dt><div></div></dt><dd></dd>"
+ }
+ },
+ {
+ "data": "<script></x",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</x",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></x</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></x</script>"
+ }
+ },
+ {
+ "data": "<table><plaintext><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-start-tag-implies-table-voodoo",
+ "(1,22): foster-parenting-character-in-table",
+ "(1,22): foster-parenting-character-in-table",
+ "(1,22): foster-parenting-character-in-table",
+ "(1,22): foster-parenting-character-in-table",
+ "(1,22): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true,
+ "table": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "<td>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><plaintext><td></plaintext><table></table></body></html>",
+ "noQuirksBodyHtml": "<plaintext><td></plaintext><table></table>"
+ }
+ },
+ {
+ "data": "<plaintext></plaintext>",
+ "errors": [
+ "(1,11): expected-doctype-but-got-start-tag",
+ "(1,23): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><plaintext></plaintext></plaintext></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr>TEST",
+ "errors": [
+ "(1,30): foster-parenting-character-in-table",
+ "(1,30): foster-parenting-character-in-table",
+ "(1,30): foster-parenting-character-in-table",
+ "(1,30): foster-parenting-character-in-table",
+ "(1,30): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "TEST"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>TEST<table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "TEST<table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4>",
+ "errors": [
+ "(1,37): unexpected-start-tag",
+ "(1,53): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "t1",
+ "value": "1"
+ },
+ {
+ "name": "t2",
+ "value": "2"
+ },
+ {
+ "name": "t3",
+ "value": "3"
+ },
+ {
+ "name": "t4",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body t1=\"1\" t2=\"2\" t3=\"3\" t4=\"4\"></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</b test",
+ "errors": [
+ "(1,8): eof-in-attribute-name",
+ "(1,8): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html></b test<b &=&amp>X",
+ "errors": [
+ "(1,24): invalid-character-in-attribute-name",
+ "(1,32): named-entity-without-semicolon",
+ "(1,33): attributes-in-end-tag",
+ "(1,33): unexpected-end-tag-before-html"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X</body></html>",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt",
+ "errors": [
+ "(1,9): need-space-after-doctype",
+ "(1,54): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/x-foobar;baz"
+ }
+ ],
+ "children": [
+ {
+ "text": "X</SCRipt",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script type=\"text/x-foobar;baz\">X</SCRipt</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"text/x-foobar;baz\">X</SCRipt</script>"
+ }
+ },
+ {
+ "data": "&",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&amp;</body></html>",
+ "noQuirksBodyHtml": "&amp;"
+ }
+ },
+ {
+ "data": "&#",
+ "errors": [
+ "(1,2): expected-numeric-entity",
+ "(1,2): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&#",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&amp;#</body></html>",
+ "noQuirksBodyHtml": "&amp;#"
+ }
+ },
+ {
+ "data": "&#X",
+ "errors": [
+ "(1,3): expected-numeric-entity",
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&#X",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&amp;#X</body></html>",
+ "noQuirksBodyHtml": "&amp;#X"
+ }
+ },
+ {
+ "data": "&#x",
+ "errors": [
+ "(1,3): expected-numeric-entity",
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&#x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&amp;#x</body></html>",
+ "noQuirksBodyHtml": "&amp;#x"
+ }
+ },
+ {
+ "data": "&#45",
+ "errors": [
+ "(1,4): numeric-entity-without-semicolon",
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>-</body></html>",
+ "noQuirksBodyHtml": "-"
+ }
+ },
+ {
+ "data": "&x-test",
+ "errors": [
+ "(1,2): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&x-test",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&amp;x-test</body></html>",
+ "noQuirksBodyHtml": "&amp;x-test"
+ }
+ },
+ {
+ "data": "<!doctypehtml><p><li>",
+ "errors": [
+ "(1,9): need-space-after-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><li></li></body></html>",
+ "noQuirksBodyHtml": "<p></p><li></li>"
+ }
+ },
+ {
+ "data": "<!doctypehtml><p><dt>",
+ "errors": [
+ "(1,9): need-space-after-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "dt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "dt"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><dt></dt></body></html>",
+ "noQuirksBodyHtml": "<p></p><dt></dt>"
+ }
+ },
+ {
+ "data": "<!doctypehtml><p><dd>",
+ "errors": [
+ "(1,9): need-space-after-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "dd": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><dd></dd></body></html>",
+ "noQuirksBodyHtml": "<p></p><dd></dd>"
+ }
+ },
+ {
+ "data": "<!doctypehtml><p><form>",
+ "errors": [
+ "(1,9): need-space-after-doctype",
+ "(1,23): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><form></form></body></html>",
+ "noQuirksBodyHtml": "<p></p><form></form>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><p></P>X",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p>X</body></html>",
+ "noQuirksBodyHtml": "<p></p>X"
+ }
+ },
+ {
+ "data": "&AMP",
+ "errors": [
+ "(1,4): named-entity-without-semicolon",
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&amp;</body></html>",
+ "noQuirksBodyHtml": "&amp;"
+ }
+ },
+ {
+ "data": "&AMp;",
+ "errors": [
+ "(1,3): expected-named-entity",
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&AMp;",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&amp;AMp;</body></html>",
+ "noQuirksBodyHtml": "&amp;AMp;"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY>",
+ "errors": [
+ "(1,110): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></body></html>",
+ "noQuirksBodyHtml": "<thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</body>X",
+ "errors": [
+ "(1,24): unexpected-char-after-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "XX"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>XX</body></html>",
+ "noQuirksBodyHtml": "XX"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!-- X",
+ "errors": [
+ "(1,21): eof-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": " X"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!-- X--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- X-->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><caption>test TEST</caption><td>test",
+ "errors": [
+ "(1,54): unexpected-cell-in-table-body",
+ "(1,58): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "text": "test TEST"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption>test TEST</caption><tbody><tr><td>test</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption>test TEST</caption><tbody><tr><td>test</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><option><optgroup>",
+ "errors": [
+ "(1,41): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "optgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "optgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option><optgroup></optgroup></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option><optgroup></optgroup></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option>",
+ "errors": [
+ "(1,68): unexpected-select-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "optgroup": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "optgroup",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><optgroup><option></option></optgroup><option></option></select><option></option></body></html>",
+ "noQuirksBodyHtml": "<select><optgroup><option></option></optgroup><option></option></select><option></option>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><optgroup><option><optgroup>",
+ "errors": [
+ "(1,51): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "optgroup": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "optgroup",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "optgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><optgroup><option></option></optgroup><optgroup></optgroup></select></body></html>",
+ "noQuirksBodyHtml": "<select><optgroup><option></option></optgroup><optgroup></optgroup></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><datalist><option>foo</datalist>bar",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "datalist": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "datalist",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><datalist><option>foo</option></datalist>bar</body></html>",
+ "noQuirksBodyHtml": "<datalist><option>foo</option></datalist>bar"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><font><input><input></font>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "input"
+ },
+ {
+ "tag": "input"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><font><input><input></font></body></html>",
+ "noQuirksBodyHtml": "<font><input><input></font>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!-- XXX - XXX -->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": " XXX - XXX "
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!-- XXX - XXX --><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- XXX - XXX -->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!-- XXX - XXX",
+ "errors": [
+ "(1,29): eof-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": " XXX - XXX"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!-- XXX - XXX--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- XXX - XXX-->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!-- XXX - XXX - XXX -->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": " XXX - XXX - XXX "
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!-- XXX - XXX - XXX --><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- XXX - XXX - XXX -->"
+ }
+ },
+ {
+ "data": "test\ntest",
+ "errors": [
+ "(2,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "test\ntest"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>test\ntest</body></html>",
+ "noQuirksBodyHtml": "test\ntest"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><title>test</body></title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "test</body>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>test&lt;/body&gt;</title></body></html>",
+ "noQuirksBodyHtml": "<title>test&lt;/body&gt;</title>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style>\nx { content:\"</style\" } </style>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true,
+ "meta": true,
+ "link": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "tag": "meta",
+ "attrs": [
+ {
+ "name": "name",
+ "value": "z"
+ }
+ ]
+ },
+ {
+ "tag": "link",
+ "attrs": [
+ {
+ "name": "rel",
+ "value": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "\nx { content:\"</style\" } ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>X</title><meta name=\"z\"><link rel=\"foo\"><style>\nx { content:\"</style\" } </style></body></html>",
+ "noQuirksBodyHtml": "<title>X</title><meta name=\"z\"><link rel=\"foo\"><style>\nx { content:\"</style\" } </style>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><optgroup></optgroup></select>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "optgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "optgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><optgroup></optgroup></select></body></html>",
+ "noQuirksBodyHtml": "<select><optgroup></optgroup></select>"
+ }
+ },
+ {
+ "data": " \n ",
+ "errors": [
+ "(2,1): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": " \n "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html> <html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><script>\n</script> <title>x</title> </head>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "\n",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ },
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script>\n</script> <title>x</title> </head><body></body></html>",
+ "noQuirksBodyHtml": "<script>\n</script> <title>x</title> "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><body><html id=x>",
+ "errors": [
+ "(1,38): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "x"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html id=\"x\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</body><html id=\"x\">",
+ "errors": [
+ "(1,36): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "x"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html id=\"x\"><head></head><body>X</body></html>",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><head><html id=x>",
+ "errors": [
+ "(1,32): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "x"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html id=\"x\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</html>X",
+ "errors": [
+ "(1,24): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "XX"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>XX</body></html>",
+ "noQuirksBodyHtml": "XX"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</html> ",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X </body></html>",
+ "noQuirksBodyHtml": "X "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</html><p>X",
+ "errors": [
+ "(1,26): expected-eof-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<p>X</p></body></html>",
+ "noQuirksBodyHtml": "X<p>X</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X<p/x/y/z>",
+ "errors": [
+ "(1,19): unexpected-character-after-solidus-in-tag",
+ "(1,21): unexpected-character-after-solidus-in-tag",
+ "(1,23): unexpected-character-after-solidus-in-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "x",
+ "value": ""
+ },
+ {
+ "name": "y",
+ "value": ""
+ },
+ {
+ "name": "z",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<p x=\"\" y=\"\" z=\"\"></p></body></html>",
+ "noQuirksBodyHtml": "X<p x=\"\" y=\"\" z=\"\"></p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!--x--",
+ "errors": [
+ "(1,22): eof-in-comment-double-dash"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": "x"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!--x--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--x-->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td></p></table>",
+ "errors": [
+ "(1,34): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><p></p></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><p></p></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->-->",
+ "errors": [
+ "(1,20): expected-space-or-right-bracket-in-doctype",
+ "(1,25): unknown-doctype",
+ "(1,35): unexpected-char-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "<!doctype"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": ">",
+ "escaped": true
+ },
+ {
+ "comment": "<!--x"
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE <!doctype><html><head></head><body>&gt;<!--<!--x-->--&gt;</body></html>",
+ "noQuirksBodyHtml": "&gt;<!--<!--x-->--&gt;"
+ }
+ },
+ {
+ "data": "<!doctype html><div><form></form><div></div></div>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "form"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div><form></form><div></div></div></body></html>",
+ "noQuirksBodyHtml": "<div><form></form><div></div></div>"
+ }
+ }
+ ],
+ "tests20.dat": [
+ {
+ "data": "<!doctype html><p><button><button>",
+ "errors": [
+ "(1,34): unexpected-start-tag-implies-end-tag",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button"
+ },
+ {
+ "tag": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button></button><button></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button></button><button></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><address>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "address": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "address"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><address></address></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><address></address></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><blockquote>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "blockquote": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "blockquote"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><blockquote></blockquote></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><blockquote></blockquote></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><menu>",
+ "errors": [
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "menu": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "menu"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><menu></menu></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><menu></menu></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><p>",
+ "errors": [
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><p></p></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><p></p></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><ul>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "ul": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "ul"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><ul></ul></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><ul></ul></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><h1>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><h1></h1></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><h1></h1></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><h6>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "h6": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "h6"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><h6></h6></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><h6></h6></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><listing>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "listing": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "listing"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><listing></listing></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><listing></listing></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><pre>",
+ "errors": [
+ "(1,31): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "pre"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><pre></pre></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><pre></pre></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><form>",
+ "errors": [
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><form></form></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><form></form></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><li>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><li></li></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><li></li></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><dd>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "dd": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><dd></dd></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><dd></dd></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><dt>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "dt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "dt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><dt></dt></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><dt></dt></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><plaintext>",
+ "errors": [
+ "(1,37): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "plaintext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "plaintext"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><plaintext></plaintext></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><plaintext></plaintext></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><table>",
+ "errors": [
+ "(1,33): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><table></table></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><table></table></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><hr>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "hr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "hr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><hr></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><hr></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><xmp>",
+ "errors": [
+ "(1,31): expected-named-closing-tag-but-got-eof",
+ "(1,31): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "xmp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "xmp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><xmp></xmp></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><xmp></xmp></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button></p>",
+ "errors": [
+ "(1,30): unexpected-end-tag",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><p></p></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><p></p></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><address><button></address>a",
+ "errors": [
+ "(1,42): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "address": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "address",
+ "children": [
+ {
+ "tag": "button"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><address><button></button></address>a</body></html>",
+ "noQuirksBodyHtml": "<address><button></button></address>a"
+ }
+ },
+ {
+ "data": "<!doctype html><address><button></address>a",
+ "errors": [
+ "(1,42): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "address": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "address",
+ "children": [
+ {
+ "tag": "button"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><address><button></button></address>a</body></html>",
+ "noQuirksBodyHtml": "<address><button></button></address>a"
+ }
+ },
+ {
+ "data": "<p><table></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-end-tag-implies-table-voodoo",
+ "(1,14): unexpected-end-tag",
+ "(1,14): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><p></p><table></table></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><p></p><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg>",
+ "errors": [
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><figcaption>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "figcaption": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "figcaption"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><figcaption></figcaption></body></html>",
+ "noQuirksBodyHtml": "<p></p><figcaption></figcaption>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><summary>",
+ "errors": [
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "summary": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "summary"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><summary></summary></body></html>",
+ "noQuirksBodyHtml": "<p></p><summary></summary>"
+ }
+ },
+ {
+ "data": "<!doctype html><form><table><form>",
+ "errors": [
+ "(1,34): unexpected-form-in-table",
+ "(1,34): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><form><table></table></form></body></html>",
+ "noQuirksBodyHtml": "<form><table></table></form>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><form><form>",
+ "errors": [
+ "(1,28): unexpected-form-in-table",
+ "(1,34): unexpected-form-in-table",
+ "(1,34): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><form></form></table></body></html>",
+ "noQuirksBodyHtml": "<table><form></form></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><form></table><form>",
+ "errors": [
+ "(1,28): unexpected-form-in-table",
+ "(1,42): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><form></form></table></body></html>",
+ "noQuirksBodyHtml": "<table><form></form></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg><foreignObject><p>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><foreignObject><p></p></foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><p></p></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg><title>abc",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg title": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><title>abc</title></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><title>abc</title></svg>"
+ }
+ },
+ {
+ "data": "<option><span><option>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "option": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><option><span><option></option></span></option></body></html>",
+ "noQuirksBodyHtml": "<option><span><option></option></span></option>"
+ }
+ },
+ {
+ "data": "<option><option>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><option></option><option></option></body></html>",
+ "noQuirksBodyHtml": "<option></option><option></option>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): unexpected-html-element-in-foreign-content",
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml></annotation-xml></math><div></div></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"application/svg+xml\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,58): unexpected-html-element-in-foreign-content",
+ "(1,58): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "application/svg+xml"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"application/svg+xml\"></annotation-xml></math><div></div></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"application/svg+xml\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"application/xhtml+xml\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,60): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "application/xhtml+xml"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"application/xhtml+xml\"><div></div></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"application/xhtml+xml\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,60): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "aPPlication/xhtmL+xMl"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div></div></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"text/html\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,48): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "text/html"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"text/html\"><div></div></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"text/html\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"Text/htmL\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,48): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "Text/htmL"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"Text/htmL\"><div></div></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"Text/htmL\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\" text/html \"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,50): unexpected-html-element-in-foreign-content",
+ "(1,50): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": " text/html "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\" text/html \"></annotation-xml></math><div></div></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\" text/html \"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml> </annotation-xml>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml> </annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml> </annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml>c</annotation-xml>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml>c</annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml>c</annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><!--foo-->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><!--foo--></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><!--foo--></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml></svg>x",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): unexpected-end-tag",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml>x</annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml>x</annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><svg>x",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><svg>x</svg></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg>x</svg></annotation-xml></math>"
+ }
+ }
+ ],
+ "tests21.dat": [
+ {
+ "data": "<svg><![CDATA[foo]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo</svg>"
+ }
+ },
+ {
+ "data": "<math><![CDATA[foo]]>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math>foo</math></body></html>",
+ "noQuirksBodyHtml": "<math>foo</math>"
+ }
+ },
+ {
+ "data": "<div><![CDATA[foo]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,7): expected-dashes-or-doctype",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "comment": "[CDATA[foo]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><!--[CDATA[foo]]--></div></body></html>",
+ "noQuirksBodyHtml": "<div><!--[CDATA[foo]]--></div>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[foo",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[foo",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]] >]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]] >",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]] &gt;</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]] &gt;</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]] >]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]] >",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]] &gt;</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]] &gt;</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]]",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]]</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]>a",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]>a",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]&gt;a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]&gt;a</svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><![CDATA[foo]]]>",
+ "errors": [
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg>foo]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo]</svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><![CDATA[foo]]]]>",
+ "errors": [
+ "(1,37): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg>foo]]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo]]</svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><![CDATA[foo]]]]]>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo]]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg>foo]]]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo]]]</svg>"
+ }
+ },
+ {
+ "data": "<svg><foreignObject><div><![CDATA[foo]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,27): expected-dashes-or-doctype",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "div": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "comment": "[CDATA[foo]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><foreignObject><div><!--[CDATA[foo]]--></div></foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><div><!--[CDATA[foo]]--></div></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>&lt;svg&gt;</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>&lt;svg&gt;</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[</svg>a]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,24): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "</svg>a",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>&lt;/svg&gt;a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>&lt;/svg&gt;a</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>a",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>a",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>&lt;svg&gt;a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>&lt;svg&gt;a</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[</svg>a",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "</svg>a",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>&lt;/svg&gt;a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>&lt;/svg&gt;a</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]><path>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg path": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>",
+ "escaped": true
+ },
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>&lt;svg&gt;<path></path></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>&lt;svg&gt;<path></path></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]></path>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,29): unexpected-end-tag",
+ "(1,29): unexpected-end-tag",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>&lt;svg&gt;</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>&lt;svg&gt;</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]><!--path-->",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>",
+ "escaped": true
+ },
+ {
+ "comment": "path"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>&lt;svg&gt;<!--path--></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>&lt;svg&gt;<!--path--></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]>path",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>path",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>&lt;svg&gt;path</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>&lt;svg&gt;path</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<!--svg-->]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<!--svg-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>&lt;!--svg--&gt;</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>&lt;!--svg--&gt;</svg>"
+ }
+ }
+ ],
+ "tests22.dat": [
+ {
+ "data": "<a><b><big><em><strong><div>X</a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,33): adoption-agency-1.3",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "big": true,
+ "em": true,
+ "strong": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "big",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "strong"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "big",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "strong",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b><big><em><strong></strong></em></big></b></a><big><em><strong><div><a>X</a></div></strong></em></big></body></html>",
+ "noQuirksBodyHtml": "<a><b><big><em><strong></strong></em></big></b></a><big><em><strong><div><a>X</a></div></strong></em></big>"
+ }
+ },
+ {
+ "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "1"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "2"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "3"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "6"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "8"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a>A</a></div></div></div></div></div></div></div></div></b></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a>A</a></div></div></div></div></div></div></div></div></b>"
+ }
+ },
+ {
+ "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "1"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "2"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "3"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "6"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "8"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "9"
+ }
+ ],
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\">A</div></a></div></div></div></div></div></div></div></div></b></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\">A</div></a></div></div></div></div></div></div></div></div></b>"
+ }
+ },
+ {
+ "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "1"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "2"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "3"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "6"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "8"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "9"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "10"
+ }
+ ],
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\"><div id=\"10\">A</div></div></a></div></div></div></div></div></div></div></div></b></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\"><div id=\"10\">A</div></div></a></div></div></div></div></div></div></div></div></b>"
+ }
+ },
+ {
+ "data": "<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,46): adoption-agency-1.3",
+ "(1,50): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "cite": true,
+ "b": true,
+ "i": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "text": "TEST"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><cite><b><cite><i><cite><i><cite><i></i></cite></i></cite></i></cite></b><i><i><div><b>X</b>TEST</div></i></i></cite></body></html>",
+ "noQuirksBodyHtml": "<cite><b><cite><i><cite><i><cite><i></i></cite></i></cite></i></cite></b><i><i><div><b>X</b>TEST</div></i></i></cite>"
+ }
+ }
+ ],
+ "tests23.dat": [
+ {
+ "data": "<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,116): unexpected-end-tag",
+ "(1,117): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><font size=\"4\"><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\"></font></font></font></font></font></font></font></font></p><p><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\">X</font></font></font></font></font></p></body></html>",
+ "noQuirksBodyHtml": "<p><font size=\"4\"><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\"></font></font></font></font></font></font></font></font></p><p><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\">X</font></font></font></font></font></p>"
+ }
+ },
+ {
+ "data": "<p><font size=4><font size=4><font size=4><font size=4><p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,58): unexpected-end-tag",
+ "(1,59): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"4\">X</font></font></font></p></body></html>",
+ "noQuirksBodyHtml": "<p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"4\">X</font></font></font></p>"
+ }
+ },
+ {
+ "data": "<p><font size=4><font size=4><font size=4><font size=\"5\"><font size=4><p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,73): unexpected-end-tag",
+ "(1,74): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\"></font></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\">X</font></font></font></font></p></body></html>",
+ "noQuirksBodyHtml": "<p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\"></font></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\">X</font></font></font></font></p>"
+ }
+ },
+ {
+ "data": "<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,68): unexpected-end-tag",
+ "(1,69): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ },
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "b"
+ },
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ },
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "b"
+ },
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\">X</font></font></font></font></p></body></html>",
+ "noQuirksBodyHtml": "<p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\">X</font></font></font></font></p>"
+ }
+ },
+ {
+ "data": "<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,64): end-tag-too-early",
+ "(1,67): unexpected-end-tag",
+ "(1,68): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "object": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "object",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Y"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b><object><b id=\"a\"><b id=\"a\">X</b></b></object></b></b></b></b></p><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b>Y</b></b></b></b></p></body></html>",
+ "noQuirksBodyHtml": "<p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b><object><b id=\"a\"><b id=\"a\">X</b></b></object></b></b></b></b></p><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b>Y</b></b></b></b></p>"
+ }
+ }
+ ],
+ "tests24.dat": [
+ {
+ "data": "<!DOCTYPE html>&NotEqualTilde;",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "≂̸"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>≂̸</body></html>",
+ "noQuirksBodyHtml": "≂̸"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>&NotEqualTilde;A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "≂̸A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>≂̸A</body></html>",
+ "noQuirksBodyHtml": "≂̸A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>&ThickSpace;",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "  "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>  </body></html>",
+ "noQuirksBodyHtml": "  "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>&ThickSpace;A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "  A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>  A</body></html>",
+ "noQuirksBodyHtml": "  A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>&NotSubset;",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "⊂⃒"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>⊂⃒</body></html>",
+ "noQuirksBodyHtml": "⊂⃒"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>&NotSubset;A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "⊂⃒A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>⊂⃒A</body></html>",
+ "noQuirksBodyHtml": "⊂⃒A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>&Gopf;",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "𝔾"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>𝔾</body></html>",
+ "noQuirksBodyHtml": "𝔾"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>&Gopf;A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "𝔾A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>𝔾A</body></html>",
+ "noQuirksBodyHtml": "𝔾A"
+ }
+ }
+ ],
+ "tests25.dat": [
+ {
+ "data": "<!DOCTYPE html><body><foo>A",
+ "errors": [
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><foo>A</foo></body></html>",
+ "noQuirksBodyHtml": "<foo>A</foo>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><area>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "area": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "area"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><area>A</body></html>",
+ "noQuirksBodyHtml": "<area>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><base>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "base": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "base"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><base>A</body></html>",
+ "noQuirksBodyHtml": "<base>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><basefont>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "basefont": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "basefont"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><basefont>A</body></html>",
+ "noQuirksBodyHtml": "<basefont>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><bgsound>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bgsound": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "bgsound"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><bgsound>A</body></html>",
+ "noQuirksBodyHtml": "<bgsound>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><br>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><br>A</body></html>",
+ "noQuirksBodyHtml": "<br>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><col>A",
+ "errors": [
+ "(1,26): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>A</body></html>",
+ "noQuirksBodyHtml": "A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><command>A",
+ "errors": [
+ "eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "command": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "command",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><command>A</command></body></html>",
+ "noQuirksBodyHtml": "<command>A</command>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><embed>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "embed": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "embed"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><embed>A</body></html>",
+ "noQuirksBodyHtml": "<embed>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><frame>A",
+ "errors": [
+ "(1,28): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>A</body></html>",
+ "noQuirksBodyHtml": "A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><hr>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "hr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "hr"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><hr>A</body></html>",
+ "noQuirksBodyHtml": "<hr>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><img>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "img"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><img>A</body></html>",
+ "noQuirksBodyHtml": "<img>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><input>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><input>A</body></html>",
+ "noQuirksBodyHtml": "<input>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><keygen>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "keygen": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "keygen"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><keygen>A</body></html>",
+ "noQuirksBodyHtml": "<keygen>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><link>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "link": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "link"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><link>A</body></html>",
+ "noQuirksBodyHtml": "<link>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><meta>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><meta>A</body></html>",
+ "noQuirksBodyHtml": "<meta>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><param>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "param": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "param"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><param>A</body></html>",
+ "noQuirksBodyHtml": "<param>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><source>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "source": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "source"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><source>A</body></html>",
+ "noQuirksBodyHtml": "<source>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><track>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "track": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "track"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><track>A</body></html>",
+ "noQuirksBodyHtml": "<track>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><wbr>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "wbr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "wbr"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><wbr>A</body></html>",
+ "noQuirksBodyHtml": "<wbr>A"
+ }
+ }
+ ],
+ "tests26.dat": [
+ {
+ "data": "<!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>",
+ "errors": [
+ "(1,47): unexpected-start-tag-implies-end-tag",
+ "(1,51): adoption-agency-1.3",
+ "(1,74): unexpected-start-tag-implies-end-tag",
+ "(1,74): adoption-agency-1.3",
+ "(1,81): unexpected-start-tag-implies-end-tag",
+ "(1,85): adoption-agency-1.3",
+ "(1,108): unexpected-start-tag-implies-end-tag",
+ "(1,108): adoption-agency-1.3",
+ "(1,115): unexpected-start-tag-implies-end-tag",
+ "(1,119): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "nobr": true,
+ "br": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#1"
+ }
+ ],
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#2"
+ }
+ ],
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#3"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#3"
+ }
+ ],
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><a href=\"#1\"><nobr>1</nobr><nobr></nobr></a><nobr><br><a href=\"#2\"></a></nobr><a href=\"#2\"><nobr>2</nobr><nobr></nobr></a><nobr><br><a href=\"#3\"></a></nobr><a href=\"#3\"><nobr>3</nobr><nobr></nobr></a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"#1\"><nobr>1</nobr><nobr></nobr></a><nobr><br><a href=\"#2\"></a></nobr><a href=\"#2\"><nobr>2</nobr><nobr></nobr></a><nobr><br><a href=\"#3\"></a></nobr><a href=\"#3\"><nobr>3</nobr><nobr></nobr></a>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,37): unexpected-start-tag-implies-end-tag",
+ "(1,41): adoption-agency-1.3",
+ "(1,50): unexpected-start-tag-implies-end-tag",
+ "(1,50): adoption-agency-1.3",
+ "(1,57): unexpected-start-tag-implies-end-tag",
+ "(1,61): adoption-agency-1.3",
+ "(1,62): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,44): foster-parenting-start-tag",
+ "(1,48): foster-parenting-end-tag",
+ "(1,48): adoption-agency-1.3",
+ "(1,51): foster-parenting-start-tag",
+ "(1,57): foster-parenting-start-tag",
+ "(1,57): nobr-already-in-scope",
+ "(1,57): adoption-agency-1.2",
+ "(1,58): foster-parenting-character",
+ "(1,64): foster-parenting-start-tag",
+ "(1,64): nobr-already-in-scope",
+ "(1,68): foster-parenting-end-tag",
+ "(1,68): adoption-agency-1.2",
+ "(1,69): foster-parenting-character",
+ "(1,69): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "i": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr><table></table></nobr></b></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1<nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr><table></table></nobr></b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,56): unexpected-end-tag",
+ "(1,65): unexpected-start-tag-implies-end-tag",
+ "(1,65): adoption-agency-1.3",
+ "(1,72): unexpected-start-tag-implies-end-tag",
+ "(1,76): adoption-agency-1.3",
+ "(1,77): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<table><tbody><tr><td><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></td></tr></tbody></table></nobr></b></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1<table><tbody><tr><td><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></td></tr></tbody></table></nobr></b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,42): unexpected-start-tag-implies-end-tag",
+ "(1,42): adoption-agency-1.3",
+ "(1,46): adoption-agency-1.3",
+ "(1,46): adoption-agency-1.3",
+ "(1,55): unexpected-start-tag-implies-end-tag",
+ "(1,55): adoption-agency-1.3",
+ "(1,62): unexpected-start-tag-implies-end-tag",
+ "(1,66): adoption-agency-1.3",
+ "(1,67): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "div": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr></b><div><b><nobr></nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1</nobr></b><div><b><nobr></nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,37): unexpected-start-tag-implies-end-tag",
+ "(1,41): adoption-agency-1.3",
+ "(1,55): unexpected-start-tag-implies-end-tag",
+ "(1,55): adoption-agency-1.3",
+ "(1,62): unexpected-start-tag-implies-end-tag",
+ "(1,66): adoption-agency-1.3",
+ "(1,67): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "div": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr></nobr></b><div><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr></nobr></b><div><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>",
+ "errors": [
+ "(1,37): unexpected-start-tag-implies-end-tag",
+ "(1,46): adoption-agency-1.3",
+ "(1,55): unexpected-start-tag-implies-end-tag",
+ "(1,55): adoption-agency-1.3",
+ "(1,55): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "ins": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "ins"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr><ins></ins></nobr></b><nobr><i></i></nobr><i><nobr></nobr></i></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr><ins></ins></nobr></b><nobr><i></i></nobr><i><nobr></nobr></i>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2",
+ "errors": [
+ "(1,42): unexpected-start-tag-implies-end-tag",
+ "(1,42): adoption-agency-1.3",
+ "(1,46): adoption-agency-1.3",
+ "(1,50): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "ins": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "ins"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<ins></ins></nobr><nobr></nobr></b><nobr><i>2</i></nobr></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1<ins></ins></nobr><nobr></nobr></b><nobr><i>2</i></nobr>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>",
+ "errors": [
+ "(1,35): adoption-agency-1.3",
+ "(1,44): unexpected-start-tag-implies-end-tag",
+ "(1,44): adoption-agency-1.3",
+ "(1,49): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b>1<nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr></i></body></html>",
+ "noQuirksBodyHtml": "<b>1<nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr></i>"
+ }
+ },
+ {
+ "data": "<p><code x</code></p>\n",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): invalid-character-in-attribute-name",
+ "(1,12): unexpected-character-after-solidus-in-tag",
+ "(1,21): unexpected-end-tag",
+ "(2,0): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "code": true
+ },
+ "attrWithFunnyChar": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "code",
+ "attrs": [
+ {
+ "name": "code",
+ "value": ""
+ },
+ {
+ "name": "x<",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "code",
+ "attrs": [
+ {
+ "name": "code",
+ "value": ""
+ },
+ {
+ "name": "x<",
+ "value": ""
+ }
+ ],
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><code x<=\"\" code=\"\"></code></p><code x<=\"\" code=\"\">\n</code></body></html>",
+ "noQuirksBodyHtml": "<p><code x<=\"\" code=\"\"></code></p><code x<=\"\" code=\"\">\n</code>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><foreignObject><p><i></p>a",
+ "errors": [
+ "(1,45): unexpected-end-tag",
+ "(1,46): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "p": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a",
+ "errors": [
+ "(1,60): unexpected-end-tag",
+ "(1,61): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "p": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mtext><p><i></p>a",
+ "errors": [
+ "(1,38): unexpected-end-tag",
+ "(1,39): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true,
+ "p": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mtext><p><i></i></p><i>a</i></mtext></math></body></html>",
+ "noQuirksBodyHtml": "<math><mtext><p><i></i></p><i>a</i></mtext></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a",
+ "errors": [
+ "(1,53): unexpected-end-tag",
+ "(1,54): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "math math": true,
+ "math mtext": true,
+ "p": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mtext><p><i></i></p><i>a</i></mtext></math></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><math><mtext><p><i></i></p><i>a</i></mtext></math></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><div><!/div>a",
+ "errors": [
+ "(1,28): expected-dashes-or-doctype",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "comment": "/div"
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div><!--/div-->a</div></body></html>",
+ "noQuirksBodyHtml": "<div><!--/div-->a</div>"
+ }
+ },
+ {
+ "data": "<button><p><button>",
+ "errors": [
+ "Line 1 Col 8 Unexpected start tag (button). Expected DOCTYPE.",
+ "Line 1 Col 19 Unexpected start tag (button) implies end tag (button).",
+ "Line 1 Col 19 Expected closing tag. Unexpected end of file."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "button": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ },
+ {
+ "tag": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><button><p></p></button><button></button></body></html>",
+ "noQuirksBodyHtml": "<button><p></p></button><button></button>"
+ }
+ }
+ ],
+ "tests3.dat": [
+ {
+ "data": "<head></head><style></style>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style></style></head><body></body></html>",
+ "noQuirksBodyHtml": "<style></style>"
+ }
+ },
+ {
+ "data": "<head></head><script></script>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<head></head><!-- --><style></style><!-- --><script></script>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): unexpected-start-tag-out-of-my-head",
+ "(1,52): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "script": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style"
+ },
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "comment": " "
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style></style><script></script></head><!-- --><!-- --><body></body></html>",
+ "noQuirksBodyHtml": "<!-- --><style></style><!-- --><script></script>"
+ }
+ },
+ {
+ "data": "<head></head><!-- -->x<style></style><!-- --><script></script>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "style": true,
+ "script": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "style"
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "script"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><!-- --><body>x<style></style><!-- --><script></script></body></html>",
+ "noQuirksBodyHtml": "<!-- -->x<style></style><!-- --><script></script>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>\n</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre></pre></body></html>",
+ "noQuirksBodyHtml": "<pre></pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>\nfoo</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>foo</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>foo</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>\n\nfoo</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "\nfoo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>\nfoo</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>\nfoo</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>\nfoo\n</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "foo\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>foo\n</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>foo\n</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\n</span></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true,
+ "span": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\n</span></body></html>",
+ "noQuirksBodyHtml": "<pre>x</pre><span>\n</span>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>x\ny</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "x\ny"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>x\ny</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>x\ny</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>x<div>\ny</pre></body></html>",
+ "errors": [
+ "(2,7): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true,
+ "div": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "\ny"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>x<div>\ny</div></pre></body></html>",
+ "noQuirksBodyHtml": "<pre>x<div>\ny</div></pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><pre>&#x0a;&#x0a;A</pre>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "\nA"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>\nA</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>\nA</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>",
+ "errors": [
+ "(1,33): two-heads-are-not-better-than-one"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><meta></head><body></body></html>",
+ "noQuirksBodyHtml": "<meta>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>",
+ "errors": [
+ "(1,33): two-heads-are-not-better-than-one"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<textarea>foo<span>bar</span><i>baz",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "foo<span>bar</span><i>baz",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea>foo&lt;span&gt;bar&lt;/span&gt;&lt;i&gt;baz</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>foo&lt;span&gt;bar&lt;/span&gt;&lt;i&gt;baz</textarea>"
+ }
+ },
+ {
+ "data": "<title>foo<span>bar</em><i>baz",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,30): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "foo<span>bar</em><i>baz",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>foo&lt;span&gt;bar&lt;/em&gt;&lt;i&gt;baz</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>foo&lt;span&gt;bar&lt;/em&gt;&lt;i&gt;baz</title>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><textarea>\n</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea></textarea>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><textarea>\nfoo</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea>foo</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>foo</textarea>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><textarea>\n\nfoo</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "\nfoo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea>\nfoo</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>\nfoo</textarea>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>",
+ "errors": [
+ "(1,60): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true,
+ "div": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ul><li><div><p></p></div></li><li></li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li><div><p></p></div></li><li></li></ul>"
+ }
+ },
+ {
+ "data": "<!doctype html><nobr><nobr><nobr>",
+ "errors": [
+ "(1,27): unexpected-start-tag-implies-end-tag",
+ "(1,33): unexpected-start-tag-implies-end-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "nobr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><nobr></nobr><nobr></nobr><nobr></nobr></body></html>",
+ "noQuirksBodyHtml": "<nobr></nobr><nobr></nobr><nobr></nobr>"
+ }
+ },
+ {
+ "data": "<!doctype html><nobr><nobr></nobr><nobr>",
+ "errors": [
+ "(1,27): unexpected-start-tag-implies-end-tag",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "nobr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><nobr></nobr><nobr></nobr><nobr></nobr></body></html>",
+ "noQuirksBodyHtml": "<nobr></nobr><nobr></nobr><nobr></nobr>"
+ }
+ },
+ {
+ "data": "<!doctype html><html><body><p><table></table></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><table></table></body></html>",
+ "noQuirksBodyHtml": "<p></p><table></table>"
+ }
+ },
+ {
+ "data": "<p><table></table>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><table></table></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><table></table>"
+ }
+ }
+ ],
+ "tests4.dat": [
+ {
+ "data": "direct div content",
+ "errors": [],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "direct div content"
+ }
+ ],
+ "html": "direct div content",
+ "noQuirksBodyHtml": "direct div content"
+ }
+ },
+ {
+ "data": "direct textarea content",
+ "errors": [],
+ "fragment": {
+ "name": "textarea"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "direct textarea content"
+ }
+ ],
+ "html": "direct textarea content",
+ "noQuirksBodyHtml": "direct textarea content"
+ }
+ },
+ {
+ "data": "textarea content with <em>pseudo</em> <foo>markup",
+ "errors": [],
+ "fragment": {
+ "name": "textarea"
+ },
+ "document": {
+ "props": {
+ "tags": {},
+ "escaped": true
+ },
+ "tree": [
+ {
+ "text": "textarea content with <em>pseudo</em> <foo>markup",
+ "escaped": true
+ }
+ ],
+ "html": "textarea content with &lt;em&gt;pseudo&lt;/em&gt; &lt;foo&gt;markup",
+ "noQuirksBodyHtml": "textarea content with <em>pseudo</em> <foo>markup</foo>"
+ }
+ },
+ {
+ "data": "this is &#x0043;DATA inside a <style> element",
+ "errors": [],
+ "fragment": {
+ "name": "style"
+ },
+ "document": {
+ "props": {
+ "tags": {},
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "text": "this is &#x0043;DATA inside a <style> element",
+ "no_escape": true
+ }
+ ],
+ "html": "this is &#x0043;DATA inside a <style> element",
+ "noQuirksBodyHtml": "this is CDATA inside a <style> element</style>"
+ }
+ },
+ {
+ "data": "</plaintext>",
+ "errors": [],
+ "fragment": {
+ "name": "plaintext"
+ },
+ "document": {
+ "props": {
+ "tags": {},
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ],
+ "html": "</plaintext>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "setting html's innerHTML",
+ "errors": [],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "setting html's innerHTML"
+ }
+ ]
+ }
+ ],
+ "html": "<head></head><body>setting html's innerHTML</body>",
+ "noQuirksBodyHtml": "setting html's innerHTML"
+ }
+ },
+ {
+ "data": "<title>setting head's innerHTML</title>",
+ "errors": [],
+ "fragment": {
+ "name": "head"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "setting head's innerHTML"
+ }
+ ]
+ }
+ ],
+ "html": "<title>setting head's innerHTML</title>",
+ "noQuirksBodyHtml": "<title>setting head's innerHTML</title>"
+ }
+ }
+ ],
+ "tests5.dat": [
+ {
+ "data": "<style> <!-- </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!-- ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!-- </style></head><body>x</body></html>",
+ "noQuirksBodyHtml": "<style> <!-- </style>x"
+ }
+ },
+ {
+ "data": "<style> <!-- </style> --> </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,34): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!-- ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "--> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!-- </style> </head><body>--&gt; x</body></html>",
+ "noQuirksBodyHtml": "<style> <!-- </style> --&gt; x"
+ }
+ },
+ {
+ "data": "<style> <!--> </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!--> ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!--> </style></head><body>x</body></html>",
+ "noQuirksBodyHtml": "<style> <!--> </style>x"
+ }
+ },
+ {
+ "data": "<style> <!---> </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!---> ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!---> </style></head><body>x</body></html>",
+ "noQuirksBodyHtml": "<style> <!---> </style>x"
+ }
+ },
+ {
+ "data": "<iframe> <!---> </iframe>x",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": " <!---> ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><iframe> <!---> </iframe>x</body></html>",
+ "noQuirksBodyHtml": "<iframe> <!---> </iframe>x"
+ }
+ },
+ {
+ "data": "<iframe> <!--- </iframe>->x</iframe> --> </iframe>x",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,36): unexpected-end-tag",
+ "(1,50): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": " <!--- ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "->x --> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><iframe> <!--- </iframe>-&gt;x --&gt; x</body></html>",
+ "noQuirksBodyHtml": "<iframe> <!--- </iframe>-&gt;x --&gt; x"
+ }
+ },
+ {
+ "data": "<script> <!-- </script> --> </script>x",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,37): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": " <!-- ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "--> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script> <!-- </script> </head><body>--&gt; x</body></html>",
+ "noQuirksBodyHtml": "<script> <!-- </script> --&gt; x"
+ }
+ },
+ {
+ "data": "<title> <!-- </title> --> </title>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,34): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": " <!-- ",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "--> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title> &lt;!-- </title> </head><body>--&gt; x</body></html>",
+ "noQuirksBodyHtml": "<title> &lt;!-- </title> --&gt; x"
+ }
+ },
+ {
+ "data": "<textarea> <!--- </textarea>->x</textarea> --> </textarea>x",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,42): unexpected-end-tag",
+ "(1,58): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": " <!--- ",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "->x --> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea> &lt;!--- </textarea>-&gt;x --&gt; x</body></html>",
+ "noQuirksBodyHtml": "<textarea> &lt;!--- </textarea>-&gt;x --&gt; x"
+ }
+ },
+ {
+ "data": "<style> <!</-- </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!</-- ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!</-- </style></head><body>x</body></html>",
+ "noQuirksBodyHtml": "<style> <!</-- </style>x"
+ }
+ },
+ {
+ "data": "<p><xmp></xmp>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "xmp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "xmp"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p></p><xmp></xmp></body></html>",
+ "noQuirksBodyHtml": "<p></p><xmp></xmp>"
+ }
+ },
+ {
+ "data": "<xmp> <!-- > --> </xmp>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xmp": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xmp",
+ "children": [
+ {
+ "text": " <!-- > --> ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><xmp> <!-- > --> </xmp></body></html>",
+ "noQuirksBodyHtml": "<xmp> <!-- > --> </xmp>"
+ }
+ },
+ {
+ "data": "<title>&amp;</title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>&amp;</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&amp;</title>"
+ }
+ },
+ {
+ "data": "<title><!--&amp;--></title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--&-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>&lt;!--&amp;--&gt;</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&lt;!--&amp;--&gt;</title>"
+ }
+ },
+ {
+ "data": "<title><!--</title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>&lt;!--</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&lt;!--</title>"
+ }
+ },
+ {
+ "data": "<noscript><!--</noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,39): unexpected-end-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--</noscript></head><body>--&gt;</body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><!--</noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "</noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--</noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>--></noscript>"
+ }
+ }
+ ],
+ "tests6.dat": [
+ {
+ "data": "<!doctype html></head> <head>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "text": " "
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head> <body></body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html><form><div></form><div>",
+ "errors": [
+ "(1,33): end-tag-too-early-ignored",
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true,
+ "div": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><form><div><div></div></div></form></body></html>",
+ "noQuirksBodyHtml": "<form><div><div></div></div></form>"
+ }
+ },
+ {
+ "data": "<!doctype html><title>&amp;</title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>&amp;</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&amp;</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><title><!--&amp;--></title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--&-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>&lt;!--&amp;--&gt;</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&lt;!--&amp;--&gt;</title>"
+ }
+ },
+ {
+ "data": "<!doctype>",
+ "errors": [
+ "(1,9): need-space-after-doctype",
+ "(1,10): expected-doctype-name-but-got-right-bracket",
+ "(1,10): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE ><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!---x",
+ "errors": [
+ "(1,6): eof-in-comment",
+ "(1,6): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "-x"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!---x--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!---x-->"
+ }
+ },
+ {
+ "data": "<body>\n<div>",
+ "errors": [
+ "(1,6): unexpected-start-tag",
+ "(2,5): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "\n<div></div>",
+ "noQuirksBodyHtml": "\n<div></div>"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\nfoo",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(2,1): unexpected-char-after-frameset",
+ "(2,2): unexpected-char-after-frameset",
+ "(2,3): unexpected-char-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n</html>",
+ "noQuirksBodyHtml": "\nfoo"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\n<noframes>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(2,10): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "noframes"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n<noframes></noframes></html>",
+ "noQuirksBodyHtml": "\n<noframes></noframes>"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\n<div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(2,5): unexpected-start-tag-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n</html>",
+ "noQuirksBodyHtml": "\n<div></div>"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\n</html>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n</html>",
+ "noQuirksBodyHtml": "\n"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\n</div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(2,6): unexpected-end-tag-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n</html>",
+ "noQuirksBodyHtml": "\n"
+ }
+ },
+ {
+ "data": "<form><form>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,12): unexpected-start-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><form></form></body></html>",
+ "noQuirksBodyHtml": "<form></form>"
+ }
+ },
+ {
+ "data": "<button><button>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-start-tag-implies-end-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "button"
+ },
+ {
+ "tag": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><button></button><button></button></body></html>",
+ "noQuirksBodyHtml": "<button></button><button></button>"
+ }
+ },
+ {
+ "data": "<table><tr><td></th>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-end-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><caption><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-cell-in-table-body",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption></caption><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption></caption><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><caption><div>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
+ }
+ },
+ {
+ "data": "</caption><div>",
+ "errors": [
+ "(1,10): XXX-undefined-error",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><caption><div></caption>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,31): expected-one-end-tag-but-got-another",
+ "(1,31): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
+ }
+ },
+ {
+ "data": "<table><caption></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption></caption></table>"
+ }
+ },
+ {
+ "data": "</table><div>",
+ "errors": [
+ "(1,8): unexpected-end-tag",
+ "(1,13): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-end-tag",
+ "(1,29): unexpected-end-tag",
+ "(1,40): unexpected-end-tag",
+ "(1,47): unexpected-end-tag",
+ "(1,55): unexpected-end-tag",
+ "(1,60): unexpected-end-tag",
+ "(1,68): unexpected-end-tag",
+ "(1,73): unexpected-end-tag",
+ "(1,81): unexpected-end-tag",
+ "(1,86): unexpected-end-tag",
+ "(1,86): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption></caption></table>"
+ }
+ },
+ {
+ "data": "<table><caption><div></div>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
+ }
+ },
+ {
+ "data": "<table><tr><td></body></caption></col></colgroup></html>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-end-tag",
+ "(1,32): unexpected-end-tag",
+ "(1,38): unexpected-end-tag",
+ "(1,49): unexpected-end-tag",
+ "(1,56): unexpected-end-tag",
+ "(1,56): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</table></tbody></tfoot></thead></tr><div>",
+ "errors": [
+ "(1,8): unexpected-end-tag",
+ "(1,16): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,32): unexpected-end-tag",
+ "(1,37): unexpected-end-tag",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><colgroup>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,18): foster-parenting-character-in-table",
+ "(1,19): foster-parenting-character-in-table",
+ "(1,20): foster-parenting-character-in-table",
+ "(1,20): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>foo<table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "foo<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "foo<col>",
+ "errors": [
+ "(1,1): unexpected-character-in-colgroup",
+ "(1,2): unexpected-character-in-colgroup",
+ "(1,3): unexpected-character-in-colgroup"
+ ],
+ "fragment": {
+ "name": "colgroup"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "col"
+ }
+ ],
+ "html": "<col>",
+ "noQuirksBodyHtml": "foo"
+ }
+ },
+ {
+ "data": "<table><colgroup></col>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,23): no-end-tag",
+ "(1,23): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "<frameset><div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-in-frameset",
+ "(1,15): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "</frameset><frame>",
+ "errors": [
+ "(1,11): unexpected-frameset-in-frameset-innerhtml"
+ ],
+ "fragment": {
+ "name": "frameset"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "frame": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "frame"
+ }
+ ],
+ "html": "<frame>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<frameset></div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-end-tag-in-frameset",
+ "(1,16): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</body><div>",
+ "errors": [
+ "(1,7): unexpected-close-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><tr><div>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-start-tag-implies-table-voodoo",
+ "(1,16): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<div></div><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</tr><td>",
+ "errors": [
+ "(1,5): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</tbody></tfoot></thead><td>",
+ "errors": [
+ "(1,8): unexpected-end-tag",
+ "(1,16): unexpected-end-tag",
+ "(1,24): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><tr><div><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,16): foster-parenting-start-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<div></div><table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<caption><col><colgroup><tbody><tfoot><thead><tr>",
+ "errors": [
+ "(1,9): unexpected-start-tag",
+ "(1,14): unexpected-start-tag",
+ "(1,24): unexpected-start-tag",
+ "(1,31): unexpected-start-tag",
+ "(1,38): unexpected-start-tag",
+ "(1,45): unexpected-start-tag"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tr"
+ }
+ ],
+ "html": "<tr></tr>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><tbody></thead>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-end-tag-in-table-body",
+ "(1,22): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "</table><tr>",
+ "errors": [
+ "(1,8): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tr"
+ }
+ ],
+ "html": "<tr></tr>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><tbody></body></caption></col></colgroup></html></td></th></tr>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-end-tag-in-table-body",
+ "(1,31): unexpected-end-tag-in-table-body",
+ "(1,37): unexpected-end-tag-in-table-body",
+ "(1,48): unexpected-end-tag-in-table-body",
+ "(1,55): unexpected-end-tag-in-table-body",
+ "(1,60): unexpected-end-tag-in-table-body",
+ "(1,65): unexpected-end-tag-in-table-body",
+ "(1,70): unexpected-end-tag-in-table-body",
+ "(1,70): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tbody></div>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-end-tag-implies-table-voodoo",
+ "(1,20): end-tag-too-early",
+ "(1,20): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-start-tag-implies-end-tag",
+ "(1,14): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table></table><table></table></body></html>",
+ "noQuirksBodyHtml": "<table></table><table></table>"
+ }
+ },
+ {
+ "data": "<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,30): unexpected-end-tag",
+ "(1,41): unexpected-end-tag",
+ "(1,48): unexpected-end-tag",
+ "(1,56): unexpected-end-tag",
+ "(1,61): unexpected-end-tag",
+ "(1,69): unexpected-end-tag",
+ "(1,74): unexpected-end-tag",
+ "(1,82): unexpected-end-tag",
+ "(1,87): unexpected-end-tag",
+ "(1,87): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table></table></body></html>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "</table><tr>",
+ "errors": [
+ "(1,8): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body></body></html>",
+ "errors": [
+ "(1,20): unexpected-end-tag-after-body-innerhtml"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ],
+ "html": "<head></head><body></body>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><frameset></frameset></html> ",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset> </html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\"><html></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<param><frameset></frameset>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<param>"
+ }
+ },
+ {
+ "data": "<source><frameset></frameset>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<source>"
+ }
+ },
+ {
+ "data": "<track><frameset></frameset>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<track>"
+ }
+ },
+ {
+ "data": "</html><frameset></frameset>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag",
+ "(1,17): expected-eof-but-got-start-tag",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</body><frameset></frameset>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag",
+ "(1,17): unexpected-start-tag-after-body",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "tests7.dat": [
+ {
+ "data": "<!doctype html><body><title>X</title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>X</title></body></html>",
+ "noQuirksBodyHtml": "<title>X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><title>X</title></table>",
+ "errors": [
+ "(1,29): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>X</title><table></table></body></html>",
+ "noQuirksBodyHtml": "<title>X</title><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><head></head><title>X</title>",
+ "errors": [
+ "(1,35): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>X</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html></head><title>X</title>",
+ "errors": [
+ "(1,29): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>X</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><meta></table>",
+ "errors": [
+ "(1,28): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><meta><table></table></body></html>",
+ "noQuirksBodyHtml": "<meta><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table>X<tr><td><table> <meta></table></table>",
+ "errors": [
+ "unexpected text in table",
+ "(1,45): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "meta": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<table><tbody><tr><td><meta><table> </table></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "X<table><tbody><tr><td><meta><table> </table></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><html> <head>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html> <head>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html><table><style> <tr>x </style> </table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <tr>x ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><style> <tr>x </style> </table></body></html>",
+ "noQuirksBodyHtml": "<table><style> <tr>x </style> </table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><TBODY><script> <tr>x </script> </table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "script": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": " <tr>x ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><script> <tr>x </script> </tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><script> <tr>x </script> </tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><applet><p>X</p></applet>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "applet": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "applet",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><applet><p>X</p></applet></p></body></html>",
+ "noQuirksBodyHtml": "<p><applet><p>X</p></applet></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><object type=\"application/x-non-existant-plugin\"><p>X</p></object>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "object": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "object",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "application/x-non-existant-plugin"
+ }
+ ],
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><object type=\"application/x-non-existant-plugin\"><p>X</p></object></p></body></html>",
+ "noQuirksBodyHtml": "<p><object type=\"application/x-non-existant-plugin\"><p>X</p></object></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><listing>\nX</listing>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "listing": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "listing",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><listing>X</listing></body></html>",
+ "noQuirksBodyHtml": "<listing>X</listing>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><input>X",
+ "errors": [
+ "(1,30): unexpected-input-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "input"
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select><input>X</body></html>",
+ "noQuirksBodyHtml": "<select></select><input>X"
+ }
+ },
+ {
+ "data": "<!doctype html><select><select>X",
+ "errors": [
+ "(1,31): unexpected-select-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select>X</body></html>",
+ "noQuirksBodyHtml": "<select></select>X"
+ }
+ },
+ {
+ "data": "<!doctype html><table><input type=hidDEN></table>",
+ "errors": [
+ "(1,41): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "<table><input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table>X<input type=hidDEN></table>",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,42): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<table><input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "X<table><input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> <input type=hidDEN></table>",
+ "errors": [
+ "(1,43): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table> <input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "<table> <input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> <input type='hidDEN'></table>",
+ "errors": [
+ "(1,45): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table> <input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "<table> <input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><input type=\" hidden\"><input type=hidDEN></table>",
+ "errors": [
+ "(1,44): unexpected-start-tag-implies-table-voodoo",
+ "(1,63): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": " hidden"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><input type=\" hidden\"><table><input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "<input type=\" hidden\"><table><input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><select>X<tr>",
+ "errors": [
+ "(1,30): unexpected-start-tag-implies-table-voodoo",
+ "(1,35): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,35): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select>X</select><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select>X</select><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><select>X</select>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select>X</select></body></html>",
+ "noQuirksBodyHtml": "<select>X</select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE hTmL><html></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML><html></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body>X</body></body>",
+ "errors": [
+ "(1,21): unexpected-end-tag-after-body"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<head></head><body>X</body>",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<div><p>a</x> b",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-end-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "a b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><p>a b</p></div></body></html>",
+ "noQuirksBodyHtml": "<div><p>a b</p></div>"
+ }
+ },
+ {
+ "data": "<table><tr><td><code></code> </table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "code": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "code"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><code></code> </td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><code></code> </td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><b><tr><td>aaa</td></tr>bbb</table>ccc",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,10): foster-parenting-start-tag",
+ "(1,32): foster-parenting-character",
+ "(1,33): foster-parenting-character",
+ "(1,34): foster-parenting-character",
+ "(1,45): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "bbb"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "aaa"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "ccc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><b>bbb</b><table><tbody><tr><td>aaa</td></tr></tbody></table><b>ccc</b></body></html>",
+ "noQuirksBodyHtml": "<b></b><b>bbb</b><table><tbody><tr><td>aaa</td></tr></tbody></table><b>ccc</b>"
+ }
+ },
+ {
+ "data": "A<table><tr> B</tr> B</table>",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,13): foster-parenting-character",
+ "(1,14): foster-parenting-character",
+ "(1,20): foster-parenting-character",
+ "(1,21): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A B B"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>A B B<table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "A B B<table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "A<table><tr> B</tr> </em>C</table>",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,13): foster-parenting-character",
+ "(1,14): foster-parenting-character",
+ "(1,20): foster-parenting-character",
+ "(1,25): unexpected-end-tag",
+ "(1,25): unexpected-end-tag-in-special-element",
+ "(1,26): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A BC"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>A BC<table><tbody><tr></tr> </tbody></table></body></html>",
+ "noQuirksBodyHtml": "A BC<table><tbody><tr></tr> </tbody></table>"
+ }
+ },
+ {
+ "data": "<select><keygen>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-input-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "keygen": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "keygen"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select><keygen></body></html>",
+ "noQuirksBodyHtml": "<select></select><keygen>"
+ }
+ }
+ ],
+ "tests8.dat": [
+ {
+ "data": "<div>\n<div></div>\n</span>x",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(3,7): unexpected-end-tag",
+ "(3,8): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "\nx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>\n<div></div>\nx</div></body></html>",
+ "noQuirksBodyHtml": "<div>\n<div></div>\nx</div>"
+ }
+ },
+ {
+ "data": "<div>x<div></div>\n</span>x",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(2,7): unexpected-end-tag",
+ "(2,8): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "\nx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>x<div></div>\nx</div></body></html>",
+ "noQuirksBodyHtml": "<div>x<div></div>\nx</div>"
+ }
+ },
+ {
+ "data": "<div>x<div></div>x</span>x",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,25): unexpected-end-tag",
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "xx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>x<div></div>xx</div></body></html>",
+ "noQuirksBodyHtml": "<div>x<div></div>xx</div>"
+ }
+ },
+ {
+ "data": "<div>x<div></div>y</span>z",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,25): unexpected-end-tag",
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "yz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>x<div></div>yz</div></body></html>",
+ "noQuirksBodyHtml": "<div>x<div></div>yz</div>"
+ }
+ },
+ {
+ "data": "<table><div>x<div></div>x</span>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,12): foster-parenting-start-tag",
+ "(1,13): foster-parenting-character",
+ "(1,18): foster-parenting-start-tag",
+ "(1,24): foster-parenting-end-tag",
+ "(1,25): foster-parenting-start-tag",
+ "(1,32): foster-parenting-end-tag",
+ "(1,32): unexpected-end-tag",
+ "(1,33): foster-parenting-character",
+ "(1,33): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "xx"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>x<div></div>xx</div><table></table></body></html>",
+ "noQuirksBodyHtml": "<div>x<div></div>xx</div><table></table>"
+ }
+ },
+ {
+ "data": "x<table>x",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,9): foster-parenting-character",
+ "(1,9): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "xx"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>xx<table></table></body></html>",
+ "noQuirksBodyHtml": "xx<table></table>"
+ }
+ },
+ {
+ "data": "x<table><table>x",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,15): unexpected-start-tag-implies-end-tag",
+ "(1,16): foster-parenting-character",
+ "(1,16): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "table"
+ },
+ {
+ "text": "x"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>x<table></table>x<table></table></body></html>",
+ "noQuirksBodyHtml": "x<table></table>x<table></table>"
+ }
+ },
+ {
+ "data": "<b>a<div></div><div></b>y",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,24): adoption-agency-1.3",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "text": "y"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>a<div></div></b><div><b></b>y</div></body></html>",
+ "noQuirksBodyHtml": "<b>a<div></div></b><div><b></b>y</div>"
+ }
+ },
+ {
+ "data": "<a><div><p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,15): adoption-agency-1.3",
+ "(1,15): adoption-agency-1.3",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "div": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><div><a></a><p><a></a></p></div></body></html>",
+ "noQuirksBodyHtml": "<a></a><div><a></a><p><a></a></p></div>"
+ }
+ }
+ ],
+ "tests9.dat": [
+ {
+ "data": "<!DOCTYPE html><math></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><math></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mi>",
+ "errors": [
+ "(1,25) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><annotation-xml><svg><u>",
+ "errors": [
+ "(1,45) unexpected-html-element-in-foreign-content",
+ "(1,45) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "u": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "u"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><annotation-xml><svg></svg></annotation-xml></math><u></u></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg><u></u></svg></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><select><math></math></select>",
+ "errors": [
+ "(1,35) unexpected-start-tag-in-select",
+ "(1,42) unexpected-end-tag-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><select><option><math></math></option></select>",
+ "errors": [
+ "(1,43) unexpected-start-tag-in-select",
+ "(1,50) unexpected-end-tag-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><math></math></table>",
+ "errors": [
+ "(1,34) unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math><table></table></body></html>",
+ "noQuirksBodyHtml": "<math></math><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><math><mi>foo</mi></math></table>",
+ "errors": [
+ "(1,34) foster-parenting-start-token",
+ "(1,39) foster-parenting-character",
+ "(1,40) foster-parenting-character",
+ "(1,41) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi></math><table></table></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi></math><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table>",
+ "errors": [
+ "(1,34) foster-parenting-start-tag",
+ "(1,39) foster-parenting-character",
+ "(1,40) foster-parenting-character",
+ "(1,41) foster-parenting-character",
+ "(1,51) foster-parenting-character",
+ "(1,52) foster-parenting-character",
+ "(1,53) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table></table></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table>",
+ "errors": [
+ "(1,41) foster-parenting-start-tag",
+ "(1,46) foster-parenting-character",
+ "(1,47) foster-parenting-character",
+ "(1,48) foster-parenting-character",
+ "(1,58) foster-parenting-character",
+ "(1,59) foster-parenting-character",
+ "(1,60) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "table": true,
+ "tbody": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table>",
+ "errors": [
+ "(1,45) foster-parenting-start-tag",
+ "(1,50) foster-parenting-character",
+ "(1,51) foster-parenting-character",
+ "(1,52) foster-parenting-character",
+ "(1,62) foster-parenting-character",
+ "(1,63) foster-parenting-character",
+ "(1,64) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+ "errors": [
+ "(1,70) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</p></math></caption></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux",
+ "errors": [
+ "(1,78) unexpected-end-tag",
+ "(1,78) expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ },
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</math></caption></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi>baz</math></caption></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+ "errors": [
+ "(1,44) foster-parenting-start-tag",
+ "(1,49) foster-parenting-character",
+ "(1,50) foster-parenting-character",
+ "(1,51) foster-parenting-character",
+ "(1,61) foster-parenting-character",
+ "(1,62) foster-parenting-character",
+ "(1,63) foster-parenting-character",
+ "(1,71) unexpected-html-element-in-foreign-content",
+ "(1,71) foster-parenting-start-tag",
+ "(1,63) foster-parenting-character",
+ "(1,63) foster-parenting-character",
+ "(1,63) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "p": true,
+ "table": true,
+ "colgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p><table><colgroup></colgroup></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math><table><colgroup></colgroup></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+ "errors": [
+ "(1,50) unexpected-start-tag-in-select",
+ "(1,54) unexpected-start-tag-in-select",
+ "(1,62) unexpected-end-tag-in-select",
+ "(1,66) unexpected-start-tag-in-select",
+ "(1,74) unexpected-end-tag-in-select",
+ "(1,77) unexpected-start-tag-in-select",
+ "(1,88) unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "select": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "foobarbaz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+ "errors": [
+ "(1,36) unexpected-start-tag-implies-table-voodoo",
+ "(1,42) unexpected-start-tag-in-select",
+ "(1,46) unexpected-start-tag-in-select",
+ "(1,54) unexpected-end-tag-in-select",
+ "(1,58) unexpected-start-tag-in-select",
+ "(1,66) unexpected-end-tag-in-select",
+ "(1,69) unexpected-start-tag-in-select",
+ "(1,80) unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "foobarbaz"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select>foobarbaz</select><table></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<select>foobarbaz</select><table></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz",
+ "errors": [
+ "(1,41) expected-eof-but-got-start-tag",
+ "(1,68) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz",
+ "errors": [
+ "(1,34) unexpected-start-tag-after-body",
+ "(1,61) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span>",
+ "errors": [
+ "(1,31) unexpected-start-tag-in-frameset",
+ "(1,35) unexpected-start-tag-in-frameset",
+ "(1,40) unexpected-end-tag-in-frameset",
+ "(1,44) unexpected-start-tag-in-frameset",
+ "(1,49) unexpected-end-tag-in-frameset",
+ "(1,52) unexpected-start-tag-in-frameset",
+ "(1,58) unexpected-start-tag-in-frameset",
+ "(1,58) eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<math><mi></mi><mi></mi><p><span></span></p></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span>",
+ "errors": [
+ "(1,42) unexpected-start-tag-after-frameset",
+ "(1,46) unexpected-start-tag-after-frameset",
+ "(1,51) unexpected-end-tag-after-frameset",
+ "(1,55) unexpected-start-tag-after-frameset",
+ "(1,60) unexpected-end-tag-after-frameset",
+ "(1,63) unexpected-start-tag-after-frameset",
+ "(1,69) unexpected-start-tag-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<math><mi></mi><mi></mi><p><span></span></p></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\"><math xlink:href=\"foo\"></math></body></html>",
+ "noQuirksBodyHtml": "<math xlink:href=\"foo\"></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi>bar</math></body></html>",
+ "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi>bar</math>"
+ }
+ }
+ ],
+ "tests_innerHTML_1.dat": [
+ {
+ "data": "<body><span>",
+ "errors": [
+ "(1,6): unexpected-start-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span><body>",
+ "errors": [
+ "(1,12): unexpected-start-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span><body>",
+ "errors": [
+ "(1,12): unexpected-start-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<body><span>",
+ "errors": [
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<head></head><body><span></span></body>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<frameset><span>",
+ "errors": [
+ "(1,10): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span><frameset>",
+ "errors": [
+ "(1,16): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span><frameset>",
+ "errors": [
+ "(1,16): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<frameset><span>",
+ "errors": [
+ "(1,16): unexpected-start-tag-in-frameset",
+ "(1,16): eof-in-frameset"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ],
+ "html": "<head></head><frameset></frameset>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<table><tr>",
+ "errors": [
+ "(1,7): unexpected-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</table><tr>",
+ "errors": [
+ "(1,8): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<a>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,3): eof-in-table"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,3): eof-in-table"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><caption>a",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,13): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "caption": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><caption>a</caption>",
+ "noQuirksBodyHtml": "<a>a</a>"
+ }
+ },
+ {
+ "data": "<a><colgroup><col>",
+ "errors": [
+ "(1,3): foster-parenting-start-token",
+ "(1,18): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "colgroup": true,
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><colgroup><col></colgroup>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><tbody><tr>",
+ "errors": [
+ "(1,3): foster-parenting-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><tfoot><tr>",
+ "errors": [
+ "(1,3): foster-parenting-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tfoot": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tfoot",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tfoot><tr></tr></tfoot>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><thead><tr>",
+ "errors": [
+ "(1,3): foster-parenting-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "thead": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><thead><tr></tr></thead>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><tr>",
+ "errors": [
+ "(1,3): foster-parenting-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><th>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tbody": true,
+ "tr": true,
+ "th": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "th"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tbody><tr><th></th></tr></tbody>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><td>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tbody><tr><td></td></tr></tbody>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<table></table><tbody>",
+ "errors": [
+ "(1,22): unexpected-start-tag"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "table"
+ }
+ ],
+ "html": "<table></table>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "</table><span>",
+ "errors": [
+ "(1,8): unexpected-end-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span></table>",
+ "errors": [
+ "(1,14): unexpected-end-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "</caption><span>",
+ "errors": [
+ "(1,10): XXX-undefined-error",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span></caption><span>",
+ "errors": [
+ "(1,16): XXX-undefined-error",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><caption><span>",
+ "errors": [
+ "(1,15): unexpected-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><col><span>",
+ "errors": [
+ "(1,11): unexpected-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><colgroup><span>",
+ "errors": [
+ "(1,16): unexpected-start-tag",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><html><span>",
+ "errors": [
+ "(1,12): non-html-root",
+ "(1,18): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><tbody><span>",
+ "errors": [
+ "(1,13): unexpected-start-tag",
+ "(1,19): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><td><span>",
+ "errors": [
+ "(1,10): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><tfoot><span>",
+ "errors": [
+ "(1,13): unexpected-start-tag",
+ "(1,19): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><thead><span>",
+ "errors": [
+ "(1,13): unexpected-start-tag",
+ "(1,19): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><th><span>",
+ "errors": [
+ "(1,10): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><tr><span>",
+ "errors": [
+ "(1,10): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span></table><span>",
+ "errors": [
+ "(1,14): unexpected-end-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "</colgroup><col>",
+ "errors": [
+ "(1,11): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "colgroup"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "col"
+ }
+ ],
+ "html": "<col>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<a><col>",
+ "errors": [
+ "(1,3): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "colgroup"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "col"
+ }
+ ],
+ "html": "<col>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<caption><a>",
+ "errors": [
+ "(1,9): XXX-undefined-error",
+ "(1,12): unexpected-start-tag-implies-table-voodoo",
+ "(1,12): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<col><a>",
+ "errors": [
+ "(1,5): XXX-undefined-error",
+ "(1,8): unexpected-start-tag-implies-table-voodoo",
+ "(1,8): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<colgroup><a>",
+ "errors": [
+ "(1,10): XXX-undefined-error",
+ "(1,13): unexpected-start-tag-implies-table-voodoo",
+ "(1,13): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tbody><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,10): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tfoot><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,10): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<thead><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,10): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</table><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): unexpected-start-tag-implies-table-voodoo",
+ "(1,11): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><tr>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tr"
+ }
+ ],
+ "html": "<a></a><tr></tr>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><td>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tr><td></td></tr>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><td>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tr><td></td></tr>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><td>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tr><td></td></tr>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<td><table><tbody><a><tr>",
+ "errors": [
+ "(1,4): unexpected-cell-in-table-body",
+ "(1,21): unexpected-start-tag-implies-table-voodoo",
+ "(1,25): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tr": true,
+ "td": true,
+ "a": true,
+ "table": true,
+ "tbody": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<tr><td><a></a><table><tbody><tr></tr></tbody></table></td></tr>",
+ "noQuirksBodyHtml": "<a></a><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</tr><td>",
+ "errors": [
+ "(1,5): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<td><table><a><tr></tr><tr>",
+ "errors": [
+ "(1,14): unexpected-start-tag-implies-table-voodoo",
+ "(1,27): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<td><a></a><table><tbody><tr></tr><tr></tr></tbody></table></td>",
+ "noQuirksBodyHtml": "<a></a><table><tbody><tr></tr><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<caption><td>",
+ "errors": [
+ "(1,9): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<col><td>",
+ "errors": [
+ "(1,5): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<colgroup><td>",
+ "errors": [
+ "(1,10): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<tbody><td>",
+ "errors": [
+ "(1,7): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<tfoot><td>",
+ "errors": [
+ "(1,7): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<thead><td>",
+ "errors": [
+ "(1,7): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<tr><td>",
+ "errors": [
+ "(1,4): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</table><td>",
+ "errors": [
+ "(1,8): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<td><table></table><td>",
+ "errors": [],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td><table></table></td><td></td>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "<td><table></table><td>",
+ "errors": [],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td><table></table></td><td></td>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "<caption><a>",
+ "errors": [
+ "(1,9): XXX-undefined-error",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<col><a>",
+ "errors": [
+ "(1,5): XXX-undefined-error",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<colgroup><a>",
+ "errors": [
+ "(1,10): XXX-undefined-error",
+ "(1,13): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tbody><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tfoot><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<th><a>",
+ "errors": [
+ "(1,4): XXX-undefined-error",
+ "(1,7): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<thead><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tr><a>",
+ "errors": [
+ "(1,4): XXX-undefined-error",
+ "(1,7): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</table><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</tbody><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</td><a>",
+ "errors": [
+ "(1,5): unexpected-end-tag",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</tfoot><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</thead><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</th><a>",
+ "errors": [
+ "(1,5): unexpected-end-tag",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</tr><a>",
+ "errors": [
+ "(1,5): XXX-undefined-error",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<table><td><td>",
+ "errors": [
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<table><tbody><tr><td></td><td></td></tr></tbody></table>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</select><option>",
+ "errors": [
+ "(1,9): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<option></option>"
+ }
+ },
+ {
+ "data": "<input><option>",
+ "errors": [
+ "(1,7): unexpected-input-in-select"
+ ],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<input><option></option>"
+ }
+ },
+ {
+ "data": "<keygen><option>",
+ "errors": [
+ "(1,8): unexpected-input-in-select"
+ ],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<keygen><option></option>"
+ }
+ },
+ {
+ "data": "<textarea><option>",
+ "errors": [
+ "(1,10): unexpected-input-in-select"
+ ],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<textarea>&lt;option&gt;</textarea>"
+ }
+ },
+ {
+ "data": "</html><!--abc-->",
+ "errors": [
+ "(1,7): unexpected-end-tag-after-body-innerhtml"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ },
+ {
+ "comment": "abc"
+ }
+ ],
+ "html": "<head></head><body></body><!--abc-->",
+ "noQuirksBodyHtml": "<!--abc-->"
+ }
+ },
+ {
+ "data": "</frameset><frame>",
+ "errors": [
+ "(1,11): unexpected-frameset-in-frameset-innerhtml"
+ ],
+ "fragment": {
+ "name": "frameset"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "frame": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "frame"
+ }
+ ],
+ "html": "<frame>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "",
+ "errors": [],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ],
+ "html": "<head></head><body></body>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "tricky01.dat": [
+ {
+ "data": "<b><p>Bold </b> Not bold</p>\nAlso not bold.",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,15): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Bold "
+ }
+ ]
+ },
+ {
+ "text": " Not bold"
+ }
+ ]
+ },
+ {
+ "text": "\nAlso not bold."
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><p><b>Bold </b> Not bold</p>\nAlso not bold.</body></html>",
+ "noQuirksBodyHtml": "<b></b><p><b>Bold </b> Not bold</p>\nAlso not bold."
+ }
+ },
+ {
+ "data": "<html>\n<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=red>Red. <i>Italic and red.</p>\n<p>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</b> Only Italic </i> Plain",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(2,58): adoption-agency-1.3",
+ "(3,67): unexpected-end-tag",
+ "(4,23): adoption-agency-1.3",
+ "(4,35): adoption-agency-1.3",
+ "(5,30): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "i": true,
+ "p": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Italic and Red"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "text": "Italic and Red "
+ }
+ ]
+ },
+ {
+ "text": " Just italic."
+ }
+ ]
+ },
+ {
+ "text": " Italic only."
+ }
+ ]
+ },
+ {
+ "text": " Plain\n"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "I should not be red. "
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "text": "Red. "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Italic and red."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Italic and red. "
+ }
+ ]
+ },
+ {
+ "text": " Red."
+ }
+ ]
+ },
+ {
+ "text": " I should not be red."
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Bold "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Bold and italic"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " Only Italic "
+ }
+ ]
+ },
+ {
+ "text": " Plain"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><font color=\"red\"><i>Italic and Red</i></font><i><p><font color=\"red\">Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=\"red\">Red. <i>Italic and red.</i></font></p><font color=\"red\"><i>\n</i></font><p><font color=\"red\"><i>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</i></b><i> Only Italic </i> Plain</body></html>",
+ "noQuirksBodyHtml": "\n<font color=\"red\"><i>Italic and Red</i></font><i><p><font color=\"red\">Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=\"red\">Red. <i>Italic and red.</i></font></p><font color=\"red\"><i>\n</i></font><p><font color=\"red\"><i>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</i></b><i> Only Italic </i> Plain"
+ }
+ },
+ {
+ "data": "<html><body>\n<p><font size=\"7\">First paragraph.</p>\n<p>Second paragraph.</p></font>\n<b><p><i>Bold and Italic</b> Italic</p>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(2,38): unexpected-end-tag",
+ "(4,28): adoption-agency-1.3",
+ "(4,28): adoption-agency-1.3",
+ "(4,39): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true,
+ "b": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "text": "First paragraph."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "Second paragraph."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Bold and Italic"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " Italic"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>\n<p><font size=\"7\">First paragraph.</font></p><font size=\"7\">\n<p>Second paragraph.</p></font>\n<b></b><p><b><i>Bold and Italic</i></b><i> Italic</i></p></body></html>",
+ "noQuirksBodyHtml": "\n<p><font size=\"7\">First paragraph.</font></p><font size=\"7\">\n<p>Second paragraph.</p></font>\n<b></b><p><b><i>Bold and Italic</i></b><i> Italic</i></p>"
+ }
+ },
+ {
+ "data": "<html>\n<dl>\n<dt><b>Boo\n<dd>Goo?\n</dl>\n</html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(4,4): end-tag-too-early",
+ "(5,5): end-tag-too-early",
+ "(6,7): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dl": true,
+ "dt": true,
+ "b": true,
+ "dd": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dl",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "dt",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Boo\n"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Goo?\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><dl>\n<dt><b>Boo\n</b></dt><dd><b>Goo?\n</b></dd></dl><b>\n</b></body></html>",
+ "noQuirksBodyHtml": "\n<dl>\n<dt><b>Boo\n</b></dt><dd><b>Goo?\n</b></dd></dl><b>\n</b>"
+ }
+ },
+ {
+ "data": "<html><body>\n<label><a><div>Hello<div>World</div></a></label> \n</body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(2,40): adoption-agency-1.3",
+ "(2,48): unexpected-end-tag",
+ "(3,7): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "label": true,
+ "a": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "label",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "Hello"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "World"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": " \n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>\n<label><a></a><div><a>Hello<div>World</div></a> \n</div></label></body></html>",
+ "noQuirksBodyHtml": "\n<label><a></a><div><a>Hello<div>World</div></a> \n</div></label>"
+ }
+ },
+ {
+ "data": "<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): foster-parenting-start-tag",
+ "(1,16): foster-parenting-character",
+ "(1,22): foster-parenting-start-tag",
+ "(1,23): foster-parenting-character",
+ "(1,32): foster-parenting-end-tag",
+ "(1,32): end-tag-too-early",
+ "(1,33): foster-parenting-character",
+ "(1,38): foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "center": true,
+ "font": true,
+ "img": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "center",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "img"
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><center> <font>a</font></center><font><img> </font><table> <tbody><tr><td> </td> </tr> </tbody></table></body></html>",
+ "noQuirksBodyHtml": "<center> <font>a</font></center><font><img> </font><table> <tbody><tr><td> </td> </tr> </tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tr><p><a><p>You should see this text.",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-start-tag-implies-table-voodoo",
+ "(1,17): unexpected-start-tag-implies-table-voodoo",
+ "(1,20): unexpected-start-tag-implies-table-voodoo",
+ "(1,20): closing-non-current-p-element",
+ "(1,21): foster-parenting-character",
+ "(1,22): foster-parenting-character",
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,25): foster-parenting-character",
+ "(1,26): foster-parenting-character",
+ "(1,27): foster-parenting-character",
+ "(1,28): foster-parenting-character",
+ "(1,29): foster-parenting-character",
+ "(1,30): foster-parenting-character",
+ "(1,31): foster-parenting-character",
+ "(1,32): foster-parenting-character",
+ "(1,33): foster-parenting-character",
+ "(1,34): foster-parenting-character",
+ "(1,35): foster-parenting-character",
+ "(1,36): foster-parenting-character",
+ "(1,37): foster-parenting-character",
+ "(1,38): foster-parenting-character",
+ "(1,39): foster-parenting-character",
+ "(1,40): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,42): foster-parenting-character",
+ "(1,43): foster-parenting-character",
+ "(1,44): foster-parenting-character",
+ "(1,45): foster-parenting-character",
+ "(1,45): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "You should see this text."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><a></a></p><p><a>You should see this text.</a></p><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<p><a></a></p><p><a>You should see this text.</a></p><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<TABLE>\n<TR>\n<CENTER><CENTER><TD></TD></TR><TR>\n<FONT>\n<TABLE><tr></tr></TABLE>\n</P>\n<a></font><font></a>\nThis page contains an insanely badly-nested tag sequence.",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(3,8): unexpected-start-tag-implies-table-voodoo",
+ "(3,16): unexpected-start-tag-implies-table-voodoo",
+ "(4,6): unexpected-start-tag-implies-table-voodoo",
+ "(4,6): unexpected character token in table (the newline)",
+ "(5,7): unexpected-start-tag-implies-end-tag",
+ "(6,4): unexpected p end tag",
+ "(7,10): adoption-agency-1.3",
+ "(7,20): adoption-agency-1.3",
+ "(8,57): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "center": true,
+ "font": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "p": true,
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "center",
+ "children": [
+ {
+ "tag": "center"
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "p"
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "font"
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "\nThis page contains an insanely badly-nested tag sequence."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><center><center></center></center><font>\n</font><table>\n<tbody><tr>\n<td></td></tr><tr>\n</tr></tbody></table><table><tbody><tr></tr></tbody></table><font>\n<p></p>\n<a></a></font><a><font></font></a><font>\nThis page contains an insanely badly-nested tag sequence.</font></body></html>",
+ "noQuirksBodyHtml": "<center><center></center></center><font>\n</font><table>\n<tbody><tr>\n<td></td></tr><tr>\n</tr></tbody></table><table><tbody><tr></tr></tbody></table><font>\n<p></p>\n<a></a></font><a><font></font></a><font>\nThis page contains an insanely badly-nested tag sequence.</font>"
+ }
+ },
+ {
+ "data": "<html>\n<body>\n<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n</body>\n</html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(3,56): adoption-agency-1.3",
+ "(4,58): adoption-agency-1.3",
+ "(5,7): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "div": true,
+ "pre": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "This text is in a div inside a nobr"
+ }
+ ]
+ },
+ {
+ "text": "More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. "
+ }
+ ]
+ },
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "A pre tag outside everything else."
+ }
+ ]
+ },
+ {
+ "text": "\n\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>\n<b><nobr></nobr></b><div><b><nobr>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n\n</div></body></html>",
+ "noQuirksBodyHtml": "\n\n<b><nobr></nobr></b><div><b><nobr>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n\n</div>"
+ }
+ }
+ ],
+ "webkit01.dat": [
+ {
+ "data": "Test",
+ "errors": [
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Test"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>Test</body></html>",
+ "noQuirksBodyHtml": "Test"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<div>Test</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>Test</div></body></html>",
+ "noQuirksBodyHtml": "<div>Test</div>"
+ }
+ },
+ {
+ "data": "<di",
+ "errors": [
+ "(1,3): eof-in-tag-name",
+ "(1,3): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "\nconsole.log(\"PASS\");\n",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Bye"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div></body></html>",
+ "noQuirksBodyHtml": "<div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div>"
+ }
+ },
+ {
+ "data": "<div foo=\"bar\">Hello</div>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ }
+ ],
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div foo=\"bar\">Hello</div></body></html>",
+ "noQuirksBodyHtml": "<div foo=\"bar\">Hello</div>"
+ }
+ },
+ {
+ "data": "<div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Bye"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div></body></html>",
+ "noQuirksBodyHtml": "<div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div>"
+ }
+ },
+ {
+ "data": "<foo bar=\"baz\"></foo><potato quack=\"duck\"></potato>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "potato": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "baz"
+ }
+ ]
+ },
+ {
+ "tag": "potato",
+ "attrs": [
+ {
+ "name": "quack",
+ "value": "duck"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo bar=\"baz\"></foo><potato quack=\"duck\"></potato></body></html>",
+ "noQuirksBodyHtml": "<foo bar=\"baz\"></foo><potato quack=\"duck\"></potato>"
+ }
+ },
+ {
+ "data": "<foo bar=\"baz\"><potato quack=\"duck\"></potato></foo>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "potato": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "baz"
+ }
+ ],
+ "children": [
+ {
+ "tag": "potato",
+ "attrs": [
+ {
+ "name": "quack",
+ "value": "duck"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo bar=\"baz\"><potato quack=\"duck\"></potato></foo></body></html>",
+ "noQuirksBodyHtml": "<foo bar=\"baz\"><potato quack=\"duck\"></potato></foo>"
+ }
+ },
+ {
+ "data": "<foo></foo bar=\"baz\"><potato></potato quack=\"duck\">",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): attributes-in-end-tag",
+ "(1,51): attributes-in-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "potato": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo"
+ },
+ {
+ "tag": "potato"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo></foo><potato></potato></body></html>",
+ "noQuirksBodyHtml": "<foo></foo><potato></potato>"
+ }
+ },
+ {
+ "data": "</ tttt>",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-char",
+ "(1,8): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": " tttt"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!-- tttt--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- tttt-->"
+ }
+ },
+ {
+ "data": "<div FOO ><img><img></div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "img": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": ""
+ }
+ ],
+ "children": [
+ {
+ "tag": "img"
+ },
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div foo=\"\"><img><img></div></body></html>",
+ "noQuirksBodyHtml": "<div foo=\"\"><img><img></div>"
+ }
+ },
+ {
+ "data": "<p>Test</p<p>Test2</p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "TestTest2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p>TestTest2</p></body></html>",
+ "noQuirksBodyHtml": "<p>TestTest2</p>"
+ }
+ },
+ {
+ "data": "<rdar://problem/6869687>",
+ "errors": [
+ "(1,7): unexpected-character-after-solidus-in-tag",
+ "(1,8): unexpected-character-after-solidus-in-tag",
+ "(1,16): unexpected-character-after-solidus-in-tag",
+ "(1,24): expected-doctype-but-got-start-tag",
+ "(1,24): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "rdar:": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "rdar:",
+ "attrs": [
+ {
+ "name": "6869687",
+ "value": ""
+ },
+ {
+ "name": "problem",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><rdar: problem=\"\" 6869687=\"\"></rdar:></body></html>",
+ "noQuirksBodyHtml": "<rdar: problem=\"\" 6869687=\"\"></rdar:>"
+ }
+ },
+ {
+ "data": "<A>test< /A>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,8): expected-tag-name",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "test< /A>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>test&lt; /A&gt;</a></body></html>",
+ "noQuirksBodyHtml": "<a>test&lt; /A&gt;</a>"
+ }
+ },
+ {
+ "data": "&lt;",
+ "errors": [
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "<",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&lt;</body></html>",
+ "noQuirksBodyHtml": "&lt;"
+ }
+ },
+ {
+ "data": "<body foo='bar'><body foo='baz' yo='mama'>",
+ "errors": [
+ "(1,16): expected-doctype-but-got-start-tag",
+ "(1,42): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ },
+ {
+ "name": "yo",
+ "value": "mama"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body foo=\"bar\" yo=\"mama\"></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body></br foo=\"bar\"></body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): attributes-in-end-tag",
+ "(1,21): unexpected-end-tag-treated-as"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><br></body></html>",
+ "noQuirksBodyHtml": "<br>"
+ }
+ },
+ {
+ "data": "<bdy><br foo=\"bar\"></body>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,26): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bdy": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "bdy",
+ "children": [
+ {
+ "tag": "br",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><bdy><br foo=\"bar\"></bdy></body></html>",
+ "noQuirksBodyHtml": "<bdy><br foo=\"bar\"></bdy>"
+ }
+ },
+ {
+ "data": "<body></body></br foo=\"bar\">",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): attributes-in-end-tag",
+ "(1,28): unexpected-end-tag-after-body",
+ "(1,28): unexpected-end-tag-treated-as"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><br></body></html>",
+ "noQuirksBodyHtml": "<br>"
+ }
+ },
+ {
+ "data": "<bdy></body><br foo=\"bar\">",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,12): expected-one-end-tag-but-got-another",
+ "(1,26): unexpected-start-tag-after-body",
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bdy": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "bdy",
+ "children": [
+ {
+ "tag": "br",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><bdy><br foo=\"bar\"></bdy></body></html>",
+ "noQuirksBodyHtml": "<bdy><br foo=\"bar\"></bdy>"
+ }
+ },
+ {
+ "data": "<html><body></body></html><!-- Hi there -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ },
+ {
+ "comment": " Hi there "
+ }
+ ],
+ "html": "<html><head></head><body></body></html><!-- Hi there -->",
+ "noQuirksBodyHtml": "<!-- Hi there -->"
+ }
+ },
+ {
+ "data": "<html><body></body></html>x<!-- Hi there -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "comment": " Hi there "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>x<!-- Hi there --></body></html>",
+ "noQuirksBodyHtml": "x<!-- Hi there -->"
+ }
+ },
+ {
+ "data": "<html><body></body></html>x<!-- Hi there --></html><!-- Again -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "comment": " Hi there "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": " Again "
+ }
+ ],
+ "html": "<html><head></head><body>x<!-- Hi there --></body></html><!-- Again -->",
+ "noQuirksBodyHtml": "x<!-- Hi there --><!-- Again -->"
+ }
+ },
+ {
+ "data": "<html><body></body></html>x<!-- Hi there --></body></html><!-- Again -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "comment": " Hi there "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": " Again "
+ }
+ ],
+ "html": "<html><head></head><body>x<!-- Hi there --></body></html><!-- Again -->",
+ "noQuirksBodyHtml": "x<!-- Hi there --><!-- Again -->"
+ }
+ },
+ {
+ "data": "<html><body><ruby><div><rp>xx</rp></div></ruby></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): XXX-undefined-error"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "xx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby><div><rp>xx</rp></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><rp>xx</rp></div></ruby>"
+ }
+ },
+ {
+ "data": "<html><body><ruby><div><rt>xx</rt></div></ruby></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): XXX-undefined-error"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "xx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby><div><rt>xx</rt></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><rt>xx</rt></div></ruby>"
+ }
+ },
+ {
+ "data": "<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6-->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "comment": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "comment": "1"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "A",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": "2"
+ }
+ ]
+ },
+ {
+ "comment": "3"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "B",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": "4"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "C",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "5"
+ },
+ {
+ "comment": "6"
+ }
+ ],
+ "html": "<html><head></head><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--><noframes>C</noframes></html><!--5--><!--6-->",
+ "noQuirksBodyHtml": "<!--1--><noframes>A</noframes><!--2--><!--3--><noframes>B</noframes><!--4--><!--5--><noframes>C</noframes><!--6-->"
+ }
+ },
+ {
+ "data": "<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,25): unexpected-select-in-select",
+ "(1,59): unexpected-select-in-select",
+ "(1,93): unexpected-select-in-select",
+ "(1,127): unexpected-select-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "B"
+ },
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "C"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "D"
+ },
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "E"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "F"
+ },
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "G"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option>A</option></select><option>B<select><option>C</option></select></option><option>D<select><option>E</option></select></option><option>F<select><option>G</option></select></option></body></html>",
+ "noQuirksBodyHtml": "<select><option>A</option></select><option>B<select><option>C</option></select></option><option>D<select><option>E</option></select></option><option>F<select><option>G</option></select></option>"
+ }
+ },
+ {
+ "data": "<dd><dd><dt><dt><dd><li><li>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dd": true,
+ "dt": true,
+ "li": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dd"
+ },
+ {
+ "tag": "dd"
+ },
+ {
+ "tag": "dt"
+ },
+ {
+ "tag": "dt"
+ },
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "tag": "li"
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><dd></dd><dd></dd><dt></dt><dt></dt><dd><li></li><li></li></dd></body></html>",
+ "noQuirksBodyHtml": "<dd></dd><dd></dd><dt></dt><dt></dt><dd><li></li><li></li></dd>"
+ }
+ },
+ {
+ "data": "<div><b></div><div><nobr>a<nobr>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,14): end-tag-too-early",
+ "(1,32): unexpected-start-tag-implies-end-tag",
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "nobr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><b></b></div><div><b><nobr>a</nobr><nobr></nobr></b></div></body></html>",
+ "noQuirksBodyHtml": "<div><b></b></div><div><b><nobr>a</nobr><nobr></nobr></b></div>"
+ }
+ },
+ {
+ "data": "<head></head>\n<body></body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head>\n<body></body></html>",
+ "noQuirksBodyHtml": "\n"
+ }
+ },
+ {
+ "data": "<head></head> <style></style>ddd",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style"
+ }
+ ]
+ },
+ {
+ "text": " "
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "ddd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style></style></head> <body>ddd</body></html>",
+ "noQuirksBodyHtml": " <style></style>ddd"
+ }
+ },
+ {
+ "data": "<kbd><table></kbd><col><select><tr>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-end-tag-implies-table-voodoo",
+ "(1,18): unexpected-end-tag",
+ "(1,31): unexpected-start-tag-implies-table-voodoo",
+ "(1,35): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,35): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "kbd": true,
+ "select": true,
+ "table": true,
+ "colgroup": true,
+ "col": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "kbd",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table></kbd></body></html>",
+ "noQuirksBodyHtml": "<kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table></kbd>"
+ }
+ },
+ {
+ "data": "<kbd><table></kbd><col><select><tr></table><div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-end-tag-implies-table-voodoo",
+ "(1,18): unexpected-end-tag",
+ "(1,31): unexpected-start-tag-implies-table-voodoo",
+ "(1,35): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,48): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "kbd": true,
+ "select": true,
+ "table": true,
+ "colgroup": true,
+ "col": true,
+ "tbody": true,
+ "tr": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "kbd",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table><div></div></kbd></body></html>",
+ "noQuirksBodyHtml": "<kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table><div></div></kbd>"
+ }
+ },
+ {
+ "data": "<a><li><style></style><title></title></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,41): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "li": true,
+ "style": true,
+ "title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "style"
+ },
+ {
+ "tag": "title"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><li><a><style></style><title></title></a></li></body></html>",
+ "noQuirksBodyHtml": "<a></a><li><a><style></style><title></title></a></li>"
+ }
+ },
+ {
+ "data": "<font></p><p><meta><title></title></font>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-end-tag",
+ "(1,41): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "p": true,
+ "meta": true,
+ "title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "title"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><font><p></p></font><p><font><meta><title></title></font></p></body></html>",
+ "noQuirksBodyHtml": "<font><p></p></font><p><font><meta><title></title></font></p>"
+ }
+ },
+ {
+ "data": "<a><center><title></title><a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,29): unexpected-start-tag-implies-end-tag",
+ "(1,29): adoption-agency-1.3",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "center": true,
+ "title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "center",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "title"
+ }
+ ]
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><center><a><title></title></a><a></a></center></body></html>",
+ "noQuirksBodyHtml": "<a></a><center><a><title></title></a><a></a></center>"
+ }
+ },
+ {
+ "data": "<svg><title><div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg title": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><title><div></div></title></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><title><div></div></title></svg>"
+ }
+ },
+ {
+ "data": "<svg><title><rect><div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,23): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg title": true,
+ "rect": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "rect",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><title><rect><div></div></rect></title></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><title><rect><div></div></rect></title></svg>"
+ }
+ },
+ {
+ "data": "<svg><title><svg><div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-html-element-in-foreign-content",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg title": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><title><svg></svg><div></div></title></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><title><svg><div></div></svg></title></svg>"
+ }
+ },
+ {
+ "data": "<img <=\"\" FAIL>",
+ "errors": [
+ "(1,6): invalid-character-in-attribute-name",
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "img": true
+ },
+ "attrWithFunnyChar": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "img",
+ "attrs": [
+ {
+ "name": "<",
+ "value": ""
+ },
+ {
+ "name": "fail",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><img <=\"\" fail=\"\"></body></html>",
+ "noQuirksBodyHtml": "<img <=\"\" fail=\"\">"
+ }
+ },
+ {
+ "data": "<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,23): non-void-element-with-trailing-solidus",
+ "(1,29): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "B"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "C"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ul><li><div id=\"foo\">A</div></li><li>B<div>C</div></li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li><div id=\"foo\">A</div></li><li>B<div>C</div></li></ul>"
+ }
+ },
+ {
+ "data": "<svg><em><desc></em>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,9): unexpected-html-element-in-foreign-content",
+ "(1,20): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "em": true,
+ "desc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "desc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg><em><desc></desc></em></body></html>",
+ "noQuirksBodyHtml": "<svg><em><desc></desc></em></svg>"
+ }
+ },
+ {
+ "data": "<table><tr><td><svg><desc><td></desc><circle>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg desc": true,
+ "circle": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "circle"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<svg><tfoot></mi><td>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-end-tag",
+ "(1,17): unexpected-end-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg tfoot": true,
+ "svg td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "tfoot",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "td",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><tfoot><td></td></tfoot></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><tfoot><td></td></tfoot></svg>"
+ }
+ },
+ {
+ "data": "<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mrow": true,
+ "math mn": true,
+ "math mi": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mrow",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mrow",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math></body></html>",
+ "noQuirksBodyHtml": "<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>"
+ }
+ },
+ {
+ "data": "<!doctype html><input type=\"hidden\"><frameset>",
+ "errors": [
+ "(1,46): unexpected-start-tag",
+ "(1,46): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<input type=\"hidden\">"
+ }
+ },
+ {
+ "data": "<!doctype html><input type=\"button\"><frameset>",
+ "errors": [
+ "(1,46): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><input type=\"button\"></body></html>",
+ "noQuirksBodyHtml": "<input type=\"button\">"
+ }
+ }
+ ],
+ "webkit02.dat": [
+ {
+ "data": "<foo bar=qux/>",
+ "errors": [
+ "(1,14): expected-doctype-but-got-start-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "qux/"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo bar=\"qux/\"></foo></body></html>",
+ "noQuirksBodyHtml": "<foo bar=\"qux/\"></foo>"
+ }
+ },
+ {
+ "data": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "noscript": true,
+ "span": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "status"
+ }
+ ],
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<strong>A</strong>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p></body></html>",
+ "noQuirksBodyHtml": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>"
+ }
+ },
+ {
+ "data": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "noscript": true,
+ "strong": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "status"
+ }
+ ],
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "strong",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p></body></html>",
+ "noQuirksBodyHtml": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>"
+ }
+ },
+ {
+ "data": "<div><sarcasm><div></div></sarcasm></div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "sarcasm": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "sarcasm",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><sarcasm><div></div></sarcasm></div></body></html>",
+ "noQuirksBodyHtml": "<div><sarcasm><div></div></sarcasm></div>"
+ }
+ },
+ {
+ "data": "<html><body><img src=\"\" border=\"0\" alt=\"><div>A</div></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,67): eof-in-attribute-value-double-quote"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><td></tbody>A",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,20): foster-parenting-character",
+ "(1,20): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>A<table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "A<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td></thead>A",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,19): XXX-undefined-error",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td></tfoot>A",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,19): XXX-undefined-error",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><thead><td></tbody>A",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-cell-in-table-body",
+ "(1,26): XXX-undefined-error",
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "thead": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><thead><tr><td>A</td></tr></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><thead><tr><td>A</td></tr></thead></table>"
+ }
+ },
+ {
+ "data": "<legend>test</legend>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "legend": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "legend",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><legend>test</legend></body></html>",
+ "noQuirksBodyHtml": "<legend>test</legend>"
+ }
+ },
+ {
+ "data": "<table><input>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><input><table></table></body></html>",
+ "noQuirksBodyHtml": "<input><table></table>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><aside></b>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><em><foo><foo></foo></foo></em></b><em><aside><b></b></aside></em></body></html>",
+ "noQuirksBodyHtml": "<b><em><foo><foo></foo></foo></em></b><em><aside><b></b></aside></em>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><aside></b></em>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "em"
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><em><foo><foo></foo></foo></em></b><em></em><aside><em><b></b></em></aside></body></html>",
+ "noQuirksBodyHtml": "<b><em><foo><foo></foo></foo></em></b><em></em><aside><em><b></b></em></aside>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><foo><aside></b>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside></body></html>",
+ "noQuirksBodyHtml": "<b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><foo><aside></b></em>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside></body></html>",
+ "noQuirksBodyHtml": "<b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo><aside></b></em>",
+ "errors": [],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ],
+ "html": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></em></b><aside><b></b></aside>",
+ "noQuirksBodyHtml": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></em></b><aside><b></b></aside>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food><aside></b></em>",
+ "errors": [],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "em": true,
+ "foo": true,
+ "foob": true,
+ "fooc": true,
+ "food": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "fooc",
+ "children": [
+ {
+ "tag": "fooc",
+ "children": [
+ {
+ "tag": "fooc",
+ "children": [
+ {
+ "tag": "fooc",
+ "children": [
+ {
+ "tag": "food"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ],
+ "html": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food></food></fooc></fooc></fooc></fooc></foob></foob></foob></foob></foo></em></b><aside><b></b></aside>",
+ "noQuirksBodyHtml": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food></food></fooc></fooc></fooc></fooc></foob></foob></foob></foob></foo></em></b><aside><b></b></aside>"
+ }
+ },
+ {
+ "data": "<option><XH<optgroup></optgroup>",
+ "errors": [],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<option><xh<optgroup></xh<optgroup></option>"
+ }
+ },
+ {
+ "data": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "div": true,
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</foreignObject></svg><div>bar</div>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div></plaintext></foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div></plaintext></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<svg><foreignObject></foreignObject><title></svg>foo",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "svg title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><foreignObject></foreignObject><title></title></svg>foo</body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject></foreignObject><title></title></svg>foo"
+ }
+ },
+ {
+ "data": "</foreignObject><plaintext><div>foo</div>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "<div>foo</div>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><plaintext><div>foo</div></plaintext></body></html>",
+ "noQuirksBodyHtml": "<plaintext><div>foo</div></plaintext>"
+ }
+ }
+ ]
+} \ No newline at end of file