hixie: Redefine how to parse RCDATA and RAWTEXT elements, and introduce a whole new way to parse <script> blocks, along with new rules for authors. This should improve compatibility with <script> parsing on the Web, but it might need a few more tweaks. (whatwg r4178)

hixie: Redefine how to parse RCDATA and RAWTEXT elements, and introduce
a whole new way to parse <script> blocks, along with new rules for
authors. This should improve compatibility with <script> parsing on the
Web, but it might need a few more tweaks. (whatwg r4178)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.3324&r2=1.3325&f=h
http://html5.org/tools/web-apps-tracker?from=4177&to=4178

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.3324
retrieving revision 1.3325
diff -u -d -r1.3324 -r1.3325
--- Overview.html 19 Oct 2009 10:48:09 -0000 1.3324
+++ Overview.html 20 Oct 2009 00:19:32 -0000 1.3325
@@ -216,7 +216,7 @@
    <h2 class="no-num no-toc" id="a-vocabulary-and-associated-apis-for-html-and-xhtml">A vocabulary and associated APIs for HTML and XHTML</h2>
    <!--ZZZ:-->
    <!--<h2 class="no-num no-toc">W3C Working Draft 25 August 2009</h2>-->
-   <h2 class="no-num no-toc" id="editor-s-draft-19-october-2009">Editor's Draft 19 October 2009</h2>
+   <h2 class="no-num no-toc" id="editor-s-draft-20-october-2009">Editor's Draft 20 October 2009</h2>
    <!--:ZZZ-->
    <dl><!-- ZZZ: update the month/day (twice), (un)comment out--><!--
     <dt>This Version:</dt>
@@ -318,7 +318,7 @@
   track.
   <!--ZZZ:-->
   <!--This specification is the 25 August 2009 Working Draft.-->
-  This specification is the 19 October 2009 Editor's Draft.
+  This specification is the 20 October 2009 Editor's Draft.
   <!--:ZZZ-->
   </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>This specification is also being produced by the <a href="http://www.whatwg.org/">WHATWG</a>. The two specifications are
   identical from the table of contents onwards.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) --><p>This specification is intended to replace (be a new version of)
@@ -496,7 +496,8 @@
      <li><a href="#script"><span class="secno">4.3.1 </span>The <code>script</code> element</a>
       <ol>
        <li><a href="#scriptingLanguages"><span class="secno">4.3.1.1 </span>Scripting languages</a></li>
-       <li><a href="#inline-documentation-for-external-scripts"><span class="secno">4.3.1.2 </span>Inline documentation for external scripts</a></ol></li>
+       <li><a href="#restrictions-for-contents-of-script-elements"><span class="secno">4.3.1.2 </span>Restrictions for contents of <code>script</code> elements</a></li>
+       <li><a href="#inline-documentation-for-external-scripts"><span class="secno">4.3.1.3 </span>Inline documentation for external scripts</a></ol></li>
      <li><a href="#the-noscript-element"><span class="secno">4.3.2 </span>The <code>noscript</code> element</a></ol></li>
    <li><a href="#sections"><span class="secno">4.4 </span>Sections</a>
     <ol>
@@ -1050,43 +1051,52 @@
        <li><a href="#script-data-escaped-state"><span class="secno">9.2.4.21 </span>Script data escaped state</a></li>
        <li><a href="#script-data-escaped-dash-state"><span class="secno">9.2.4.22 </span>Script data escaped dash state</a></li>
        <li><a href="#script-data-escaped-dash-dash-state"><span class="secno">9.2.4.23 </span>Script data escaped dash dash state</a></li>
-       <li><a href="#before-attribute-name-state"><span class="secno">9.2.4.24 </span>Before attribute name state</a></li>
-       <li><a href="#attribute-name-state"><span class="secno">9.2.4.25 </span>Attribute name state</a></li>
-       <li><a href="#after-attribute-name-state"><span class="secno">9.2.4.26 </span>After attribute name state</a></li>
-       <li><a href="#before-attribute-value-state"><span class="secno">9.2.4.27 </span>Before attribute value state</a></li>
-       <li><a href="#attribute-value-double-quoted-state"><span class="secno">9.2.4.28 </span>Attribute value (double-quoted) state</a></li>
-       <li><a href="#attribute-value-single-quoted-state"><span class="secno">9.2.4.29 </span>Attribute value (single-quoted) state</a></li>
-       <li><a href="#attribute-value-unquoted-state"><span class="secno">9.2.4.30 </span>Attribute value (unquoted) state</a></li>
-       <li><a href="#character-reference-in-attribute-value-state"><span class="secno">9.2.4.31 </span>Character reference in attribute value state</a></li>
-       <li><a href="#after-attribute-value-quoted-state"><span class="secno">9.2.4.32 </span>After attribute value (quoted) state</a></li>
-       <li><a href="#self-closing-start-tag-state"><span class="secno">9.2.4.33 </span>Self-closing start tag state</a></li>
-       <li><a href="#bogus-comment-state"><span class="secno">9.2.4.34 </span>Bogus comment state</a></li>
-       <li><a href="#markup-declaration-open-state"><span class="secno">9.2.4.35 </span>Markup declaration open state</a></li>
-       <li><a href="#comment-start-state"><span class="secno">9.2.4.36 </span>Comment start state</a></li>
-       <li><a href="#comment-start-dash-state"><span class="secno">9.2.4.37 </span>Comment start dash state</a></li>
-       <li><a href="#comment-state"><span class="secno">9.2.4.38 </span>Comment state</a></li>
-       <li><a href="#comment-end-dash-state"><span class="secno">9.2.4.39 </span>Comment end dash state</a></li>
-       <li><a href="#comment-end-state"><span class="secno">9.2.4.40 </span>Comment end state</a></li>
-       <li><a href="#comment-end-bang-state"><span class="secno">9.2.4.41 </span>Comment end bang state</a></li>
-       <li><a href="#comment-end-space-state"><span class="secno">9.2.4.42 </span>Comment end space state</a></li>
-       <li><a href="#doctype-state"><span class="secno">9.2.4.43 </span>DOCTYPE state</a></li>
-       <li><a href="#before-doctype-name-state"><span class="secno">9.2.4.44 </span>Before DOCTYPE name state</a></li>
-       <li><a href="#doctype-name-state"><span class="secno">9.2.4.45 </span>DOCTYPE name state</a></li>
-       <li><a href="#after-doctype-name-state"><span class="secno">9.2.4.46 </span>After DOCTYPE name state</a></li>
-       <li><a href="#after-doctype-public-keyword-state"><span class="secno">9.2.4.47 </span>After DOCTYPE public keyword state</a></li>
-       <li><a href="#before-doctype-public-identifier-state"><span class="secno">9.2.4.48 </span>Before DOCTYPE public identifier state</a></li>
-       <li><a href="#doctype-public-identifier-double-quoted-state"><span class="secno">9.2.4.49 </span>DOCTYPE public identifier (double-quoted) state</a></li>
-       <li><a href="#doctype-public-identifier-single-quoted-state"><span class="secno">9.2.4.50 </span>DOCTYPE public identifier (single-quoted) state</a></li>
-       <li><a href="#after-doctype-public-identifier-state"><span class="secno">9.2.4.51 </span>After DOCTYPE public identifier state</a></li>
-       <li><a href="#between-doctype-public-and-system-identifiers-state"><span class="secno">9.2.4.52 </span>Between DOCTYPE public and system identifiers state</a></li>
-       <li><a href="#after-doctype-system-keyword-state"><span class="secno">9.2.4.53 </span>After DOCTYPE system keyword state</a></li>
-       <li><a href="#before-doctype-system-identifier-state"><span class="secno">9.2.4.54 </span>Before DOCTYPE system identifier state</a></li>
-       <li><a href="#doctype-system-identifier-double-quoted-state"><span class="secno">9.2.4.55 </span>DOCTYPE system identifier (double-quoted) state</a></li>
-       <li><a href="#doctype-system-identifier-single-quoted-state"><span class="secno">9.2.4.56 </span>DOCTYPE system identifier (single-quoted) state</a></li>
-       <li><a href="#after-doctype-system-identifier-state"><span class="secno">9.2.4.57 </span>After DOCTYPE system identifier state</a></li>
-       <li><a href="#bogus-doctype-state"><span class="secno">9.2.4.58 </span>Bogus DOCTYPE state</a></li>
-       <li><a href="#cdata-section-state"><span class="secno">9.2.4.59 </span>CDATA section state</a></li>
-       <li><a href="#tokenizing-character-references"><span class="secno">9.2.4.60 </span>Tokenizing character references</a></ol></li>
+       <li><a href="#script-data-escaped-less-than-sign-state"><span class="secno">9.2.4.24 </span>Script data escaped less-than sign state</a></li>
+       <li><a href="#script-data-escaped-end-tag-open-state"><span class="secno">9.2.4.25 </span>Script data escaped end tag open state</a></li>
+       <li><a href="#script-data-escaped-end-tag-name-state"><span class="secno">9.2.4.26 </span>Script data escaped end tag name state</a></li>
+       <li><a href="#script-data-double-escape-start-state"><span class="secno">9.2.4.27 </span>Script data double escape start state</a></li>
+       <li><a href="#script-data-double-escaped-state"><span class="secno">9.2.4.28 </span>Script data double escaped state</a></li>
+       <li><a href="#script-data-double-escaped-dash-state"><span class="secno">9.2.4.29 </span>Script data double escaped dash state</a></li>
+       <li><a href="#script-data-double-escaped-dash-dash-state"><span class="secno">9.2.4.30 </span>Script data double escaped dash dash state</a></li>
+       <li><a href="#script-data-double-escaped-less-than-sign-state"><span class="secno">9.2.4.31 </span>Script data double escaped less-than sign state</a></li>
+       <li><a href="#script-data-double-escape-end-state"><span class="secno">9.2.4.32 </span>Script data double escape end state</a></li>
+       <li><a href="#before-attribute-name-state"><span class="secno">9.2.4.33 </span>Before attribute name state</a></li>
+       <li><a href="#attribute-name-state"><span class="secno">9.2.4.34 </span>Attribute name state</a></li>
+       <li><a href="#after-attribute-name-state"><span class="secno">9.2.4.35 </span>After attribute name state</a></li>
+       <li><a href="#before-attribute-value-state"><span class="secno">9.2.4.36 </span>Before attribute value state</a></li>
+       <li><a href="#attribute-value-double-quoted-state"><span class="secno">9.2.4.37 </span>Attribute value (double-quoted) state</a></li>
+       <li><a href="#attribute-value-single-quoted-state"><span class="secno">9.2.4.38 </span>Attribute value (single-quoted) state</a></li>
+       <li><a href="#attribute-value-unquoted-state"><span class="secno">9.2.4.39 </span>Attribute value (unquoted) state</a></li>
+       <li><a href="#character-reference-in-attribute-value-state"><span class="secno">9.2.4.40 </span>Character reference in attribute value state</a></li>
+       <li><a href="#after-attribute-value-quoted-state"><span class="secno">9.2.4.41 </span>After attribute value (quoted) state</a></li>
+       <li><a href="#self-closing-start-tag-state"><span class="secno">9.2.4.42 </span>Self-closing start tag state</a></li>
+       <li><a href="#bogus-comment-state"><span class="secno">9.2.4.43 </span>Bogus comment state</a></li>
+       <li><a href="#markup-declaration-open-state"><span class="secno">9.2.4.44 </span>Markup declaration open state</a></li>
+       <li><a href="#comment-start-state"><span class="secno">9.2.4.45 </span>Comment start state</a></li>
+       <li><a href="#comment-start-dash-state"><span class="secno">9.2.4.46 </span>Comment start dash state</a></li>
+       <li><a href="#comment-state"><span class="secno">9.2.4.47 </span>Comment state</a></li>
+       <li><a href="#comment-end-dash-state"><span class="secno">9.2.4.48 </span>Comment end dash state</a></li>
+       <li><a href="#comment-end-state"><span class="secno">9.2.4.49 </span>Comment end state</a></li>
+       <li><a href="#comment-end-bang-state"><span class="secno">9.2.4.50 </span>Comment end bang state</a></li>
+       <li><a href="#comment-end-space-state"><span class="secno">9.2.4.51 </span>Comment end space state</a></li>
+       <li><a href="#doctype-state"><span class="secno">9.2.4.52 </span>DOCTYPE state</a></li>
+       <li><a href="#before-doctype-name-state"><span class="secno">9.2.4.53 </span>Before DOCTYPE name state</a></li>
+       <li><a href="#doctype-name-state"><span class="secno">9.2.4.54 </span>DOCTYPE name state</a></li>
+       <li><a href="#after-doctype-name-state"><span class="secno">9.2.4.55 </span>After DOCTYPE name state</a></li>
+       <li><a href="#after-doctype-public-keyword-state"><span class="secno">9.2.4.56 </span>After DOCTYPE public keyword state</a></li>
+       <li><a href="#before-doctype-public-identifier-state"><span class="secno">9.2.4.57 </span>Before DOCTYPE public identifier state</a></li>
+       <li><a href="#doctype-public-identifier-double-quoted-state"><span class="secno">9.2.4.58 </span>DOCTYPE public identifier (double-quoted) state</a></li>
+       <li><a href="#doctype-public-identifier-single-quoted-state"><span class="secno">9.2.4.59 </span>DOCTYPE public identifier (single-quoted) state</a></li>
+       <li><a href="#after-doctype-public-identifier-state"><span class="secno">9.2.4.60 </span>After DOCTYPE public identifier state</a></li>
+       <li><a href="#between-doctype-public-and-system-identifiers-state"><span class="secno">9.2.4.61 </span>Between DOCTYPE public and system identifiers state</a></li>
+       <li><a href="#after-doctype-system-keyword-state"><span class="secno">9.2.4.62 </span>After DOCTYPE system keyword state</a></li>
+       <li><a href="#before-doctype-system-identifier-state"><span class="secno">9.2.4.63 </span>Before DOCTYPE system identifier state</a></li>
+       <li><a href="#doctype-system-identifier-double-quoted-state"><span class="secno">9.2.4.64 </span>DOCTYPE system identifier (double-quoted) state</a></li>
+       <li><a href="#doctype-system-identifier-single-quoted-state"><span class="secno">9.2.4.65 </span>DOCTYPE system identifier (single-quoted) state</a></li>
+       <li><a href="#after-doctype-system-identifier-state"><span class="secno">9.2.4.66 </span>After DOCTYPE system identifier state</a></li>
+       <li><a href="#bogus-doctype-state"><span class="secno">9.2.4.67 </span>Bogus DOCTYPE state</a></li>
+       <li><a href="#cdata-section-state"><span class="secno">9.2.4.68 </span>CDATA section state</a></li>
+       <li><a href="#tokenizing-character-references"><span class="secno">9.2.4.69 </span>Tokenizing character references</a></ol></li>
      <li><a href="#tree-construction"><span class="secno">9.2.5 </span>Tree construction</a>
       <ol>
        <li><a href="#creating-and-inserting-elements"><span class="secno">9.2.5.1 </span>Creating and inserting elements</a></li>
@@ -10648,10 +10658,12 @@
    <dd>Where <a href="#phrasing-content">phrasing content</a> is expected.</dd>
    <dt>Content model:</dt>
    <dd>If there is no <code title="attr-script-src"><a href="#attr-script-src">src</a></code>
-   attribute, depends on the value of the <code title="attr-script-type"><a href="#attr-script-type">type</a></code> attribute.</dd>
+   attribute, depends on the value of the <code title="attr-script-type"><a href="#attr-script-type">type</a></code> attribute, but must match
+   <a href="#restrictions-for-contents-of-script-elements">script content restrictions</a>.</dd>
    <dd>If there <em>is</em> a <code title="attr-script-src"><a href="#attr-script-src">src</a></code>
    attribute, the element must be either empty or contain only
-   <a href="#inline-documentation-for-external-scripts">script documentation</a>.</dd>
+   <a href="#inline-documentation-for-external-scripts">script documentation</a> that also matches <a href="#restrictions-for-contents-of-script-elements">script
+   content restrictions</a>.</dd>
    <dt>Content attributes:</dt>
    <dd><a href="#global-attributes">Global attributes</a></dd>
    <dd><code title="attr-script-src"><a href="#attr-script-src">src</a></code></dd>
@@ -11216,7 +11228,49 @@
   parameter for the purpose of comparing <a href="#mime-type" title="MIME type">MIME
   types</a> here.</p>
 
-  </div><h5 id="inline-documentation-for-external-scripts"><span class="secno">4.3.1.2 </span><dfn title="script documentation">Inline documentation for external scripts</dfn></h5><p>If a <code><a href="#script">script</a></code> element's <code title="attr-script-src"><a href="#attr-script-src">src</a></code> attribute is specified, then the
+  </div><h5 id="restrictions-for-contents-of-script-elements"><span class="secno">4.3.1.2 </span><dfn title="script content restrictions">Restrictions for contents of <code>script</code> elements</dfn></h5><p>The contents of a <code><a href="#script">script</a></code> element must match the
+  <code title="">script</code> production in the following ABNF, the
+  character set for which is Unicode. <a href="#refsABNF">[ABNF]</a><pre>script        = body1
+
+body1         = *( text1 / body2 )
+body2         = "&lt;!--" *( text2 / body3 script-end ) [ body3 ] "--&gt;"
+body3         = script-start *text3
+
+script-start  = lt       s c r i p t tag-end
+script-end    = lt slash s c r i p t tag-end
+
+text1         = &lt;anything that doesn't match not-text1&gt;
+text2         = &lt;anything that doesn't match not-text2&gt;
+text3         = &lt;anything that doesn't match not-text3&gt;
+
+not-text1     = "&lt;!--" / script-end
+not-text2     = script-start / script-end / "--&gt;"
+not-text3     = script-end / "--&gt;"
+
+lt            =  %x003C ; U+003C LESS-THAN SIGN character (&lt;)
+slash         =  %x002F ; U+002F SOLIDUS character (/)
+
+s             =  %x0053 ; U+0053 LATIN CAPITAL LETTER S
+s             =/ %x0073 ; U+0073 LATIN SMALL LETTER S
+c             =  %x0043 ; U+0043 LATIN CAPITAL LETTER C
+c             =/ %x0063 ; U+0063 LATIN SMALL LETTER C
+r             =  %x0052 ; U+0052 LATIN CAPITAL LETTER R
+r             =/ %x0072 ; U+0072 LATIN SMALL LETTER R
+i             =  %x0049 ; U+0049 LATIN CAPITAL LETTER I
+i             =/ %x0069 ; U+0069 LATIN SMALL LETTER I
+p             =  %x0050 ; U+0050 LATIN CAPITAL LETTER P
+p             =/ %x0070 ; U+0070 LATIN SMALL LETTER P
+t             =  %x0054 ; U+0054 LATIN CAPITAL LETTER T
+t             =/ %x0074 ; U+0074 LATIN SMALL LETTER T
+
+tag-end       =  %x0009 ; U+0009 CHARACTER TABULATION
+tag-end       =/ %x000A ; U+000A LINE FEED (LF)
+tag-end       =/ %x000C ; U+000C FORM FEED (FF)
+tag-end       =/ %x0020 ; U+0020 SPACE
+tag-end       =/ %x002F ; U+002F SOLIDUS (/)
+tag-end       =/ %x003E ; U+003E GREATER-THAN SIGN (&gt;)</pre><p>When a <code><a href="#script">script</a></code> element contains <a href="#inline-documentation-for-external-scripts">script
+  documentation</a>, there are further restrictions on the contents
+  of the element, as described in the section below.<h5 id="inline-documentation-for-external-scripts"><span class="secno">4.3.1.3 </span><dfn title="script documentation">Inline documentation for external scripts</dfn></h5><p>If a <code><a href="#script">script</a></code> element's <code title="attr-script-src"><a href="#attr-script-src">src</a></code> attribute is specified, then the
   contents of the <code><a href="#script">script</a></code> element, if any, must be such
   that the value of the DOM <code title="dom-script-text"><a href="#dom-script-text">text</a></code>
   attribute, which is derived from the element's contents, matches the
@@ -11237,7 +11291,9 @@
                 ; a Unicode character other than U+002A ASTERISK (*)
 not-slash     = %x0000-002E / %x0030-10FFFF
                 ; a Unicode character other than U+002F SOLIDUS (/)</pre><p class="note">This corresponds to putting the contents of the
-  element in JavaScript comments.<div class="example">
+  element in JavaScript comments.<p class="note">This requirement is in addition to the earlier
+  restrictiosn on the syntax of contents of <code><a href="#script">script</a></code>
+  elements.<div class="example">
 
    <p>This allows authors to include documentation, such as license
    information or API information, inside their documents while still
@@ -53717,29 +53773,7 @@
   case-insensitively match the tag name of the element followed by one
   of U+0009 CHARACTER TABULATION, U+000A LINE FEED (LF), U+000C FORM
   FEED (FF), U+000D CARRIAGE RETURN (CR), U+0020 SPACE, U+003E
-  GREATER-THAN SIGN (&gt;), or U+002F SOLIDUS (/), unless that string is
-  part of an <a href="#syntax-escape" title="syntax-escape">escaping text
-  span</a>.<p>An <dfn id="syntax-escape" title="syntax-escape">escaping text span</dfn> is a span
-  of <a href="#syntax-text" title="syntax-text">text</a> that starts with an <a href="#syntax-escape-start" title="syntax-escape-start">escaping text span start</a> that is
-  not itself in an <a href="#syntax-escape" title="syntax-escape">escaping text
-  span</a>, and ends at the next <a href="#syntax-escape-end" title="syntax-escape-end">escaping text span end</a>. There
-  cannot be any <a href="#syntax-charref" title="syntax-charref">character
-  references</a> inside an <a href="#syntax-escape" title="syntax-escape">escaping
-  text span</a> &mdash; sequences of characters that would look
-  like <a href="#syntax-charref" title="syntax-charref">character references</a> do not
-  have special meaning.<p>An <dfn id="syntax-escape-start" title="syntax-escape-start">escaping text span
-  start</dfn> is a part of <a href="#syntax-text" title="syntax-text">text</a> that
-  consists of the four character sequence "<code title="">&lt;!--</code>" (U+003C LESS-THAN SIGN, U+0021 EXCLAMATION
-  MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS).<p>An <dfn id="syntax-escape-end" title="syntax-escape-end">escaping text span end</dfn> is
-  a part of <a href="#syntax-text" title="syntax-text">text</a> that consists of the
-  three character sequence "<code title="">--&gt;</code>" (U+002D
-  HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN).<p>An <a href="#syntax-escape-start" title="syntax-escape-start">escaping text span
-  start</a> may share its U+002D HYPHEN-MINUS characters with its
-  corresponding <a href="#syntax-escape-end" title="syntax-escape-end">escaping text span
-  end</a>.<p>The text in <a href="#raw-text-elements">raw text elements</a> and <a href="#rcdata-elements">RCDATA
-  elements</a> must not have an <a href="#syntax-escape-start" title="syntax-escape-start">escaping text span start</a> that is
-  not followed by an <a href="#syntax-escape-end" title="syntax-escape-end">escaping text
-  span end</a>.<h4 id="text-0"><span class="secno">9.1.3 </span>Text</h4><p><dfn id="syntax-text" title="syntax-text">Text</dfn> is allowed inside elements,
+  GREATER-THAN SIGN (&gt;), or U+002F SOLIDUS (/).<h4 id="text-0"><span class="secno">9.1.3 </span>Text</h4><p><dfn id="syntax-text" title="syntax-text">Text</dfn> is allowed inside elements,
   attributes, and comments. Text must consist of Unicode characters.
   Text must not contain U+0000 characters. Text must not contain
   permanently undefined Unicode characters (noncharacters). Text must
@@ -55594,13 +55628,13 @@
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <a href="#current-input-character">current input
    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Stay in the
-   <a href="#script-data-end-tag-name-state">Script data end tag name state</a>.</dd>
+   <a href="#script-data-end-tag-name-state">script data end tag name state</a>.</dd>
 
    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
    <dd>Append the <a href="#current-input-character">current input character</a> to the current
    tag token's tag name. Append the <a href="#current-input-character">current input
    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Stay in the
-   <a href="#script-data-end-tag-name-state">Script data end tag name state</a>.</dd>
+   <a href="#script-data-end-tag-name-state">script data end tag name state</a>.</dd>
 
    <dt>Anything else</dt>
    <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
@@ -55641,13 +55675,17 @@
    <dd>Emit a U+002D HYPHEN-MINUS character token. Switch to the
    <a href="#script-data-escaped-dash-state">script data escaped dash state</a>.</dd>
 
+   <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+   <dd><p>Switch to the <a href="#script-data-escaped-less-than-sign-state">script data escaped less-than sign
+   state</a>.</dd>
+
    <dt>EOF</dt>
    <dd><a href="#parse-error">Parse error</a>. Reconsume the EOF character in the
    <a href="#data-state">data state</a>.</dd>
 
    <dt>Anything else</dt>
-   <dd>Emit the current input character as a character token. Stay in
-   the <a href="#script-data-escaped-state">script data escaped state</a>.</dd>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Stay in the <a href="#script-data-escaped-state">script data escaped state</a>.</dd>
 
   </dl><h5 id="script-data-escaped-dash-state"><span class="secno">9.2.4.22 </span><dfn>Script data escaped dash state</dfn></h5>
 
@@ -55657,13 +55695,17 @@
    <dd>Emit a U+002D HYPHEN-MINUS character token. Switch to the
    <a href="#script-data-escaped-dash-dash-state">script data escaped dash dash state</a>.</dd>
 
+   <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+   <dd><p>Switch to the <a href="#script-data-escaped-less-than-sign-state">script data escaped less-than sign
+   state</a>.</dd>
+
    <dt>EOF</dt>
    <dd><a href="#parse-error">Parse error</a>. Reconsume the EOF character in the
    <a href="#data-state">data state</a>.</dd>
 
    <dt>Anything else</dt>
-   <dd>Emit the current input character as a character token. Switch
-   to the <a href="#script-data-escaped-state">script data escaped state</a>.</dd>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Switch to the <a href="#script-data-escaped-state">script data escaped state</a>.</dd>
 
   </dl><h5 id="script-data-escaped-dash-dash-state"><span class="secno">9.2.4.23 </span><dfn>Script data escaped dash dash state</dfn></h5>
 
@@ -55673,6 +55715,10 @@
    <dd>Emit a U+002D HYPHEN-MINUS character token. Stay in the
    <a href="#script-data-escaped-dash-dash-state">script data escaped dash dash state</a>.</dd>
 
+   <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+   <dd><p>Switch to the <a href="#script-data-escaped-less-than-sign-state">script data escaped less-than sign
+   state</a>.</dd>
+
    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
    <dd>Emit a U+003E GREATER-THAN SIGN character token. Switch to the
    <a href="#script-data-state">script data state</a>.</dd>
@@ -55682,10 +55728,261 @@
    <a href="#data-state">data state</a>.</dd>
 
    <dt>Anything else</dt>
-   <dd>Emit the current input character as a character token. Switch
-   to the <a href="#script-data-escaped-state">script data escaped state</a>.</dd>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Switch to the <a href="#script-data-escaped-state">script data escaped state</a>.</dd>
 
-  </dl><h5 id="before-attribute-name-state"><span class="secno">9.2.4.24 </span><dfn>Before attribute name state</dfn></h5>
+  </dl><h5 id="script-data-escaped-less-than-sign-state"><span class="secno">9.2.4.24 </span><dfn>Script data escaped less-than sign state</dfn></h5>
+
+  <p>Consume the <a href="#next-input-character">next input character</a>:</p>
+
+  <dl class="switch"><dt>U+002F SOLIDUS (/)</dt>
+   <dd>Set the <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Switch
+   to the <a href="#script-data-escaped-end-tag-open-state">script data escaped end tag open state</a>.</dd>
+
+   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dd>Emit a U+003C LESS-THAN SIGN character token and the
+   <a href="#current-input-character">current input character</a> as a character token. Set the
+   <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Append the
+   lowercase version of the <a href="#current-input-character">current input character</a> (add
+   0x0020 to the character's code point) to the <var><a href="#temporary-buffer">temporary
+   buffer</a></var>. Switch to the <a href="#script-data-double-escape-start-state">script data double escape start
+   state</a>.</dd>
+
+   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dd>Emit a U+003C LESS-THAN SIGN character token and the
+   <a href="#current-input-character">current input character</a> as a character token. Set the
+   <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Append the
+   <a href="#current-input-character">current input character</a> to the <var><a href="#temporary-buffer">temporary
+   buffer</a></var>. Switch to the <a href="#script-data-double-escape-start-state">script data double escape start
+   state</a>.</dd>
+
+   <dt>Anything else</dt>
+   <dd>Emit a U+003C LESS-THAN SIGN character token and reconsume the
+   <a href="#current-input-character">current input character</a> in the <a href="#script-data-escaped-state">script data
+   escaped state</a>.</dd>
+
+  </dl><h5 id="script-data-escaped-end-tag-open-state"><span class="secno">9.2.4.25 </span><dfn>Script data escaped end tag open state</dfn></h5>
+
+  <p>Consume the <a href="#next-input-character">next input character</a>:</p>
+
+  <dl class="switch"><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dd>Create a new end tag token, and set its tag name to the
+   lowercase version of the <a href="#current-input-character">current input character</a> (add
+   0x0020 to the character's code point). Append the <a href="#current-input-character">current
+   input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
+   switch to the <a href="#script-data-escaped-end-tag-name-state">script data escaped end tag name
+   state</a>. (Don't emit the token yet; further details will be
+   filled in before it is emitted.)</dd>
+
+   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dd>Create a new end tag token, and set its tag name to the
+   <a href="#current-input-character">current input character</a>. Append the <a href="#current-input-character">current
+   input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
+   switch to the <a href="#script-data-escaped-end-tag-name-state">script data escaped end tag name
+   state</a>. (Don't emit the token yet; further details will be
+   filled in before it is emitted.)</dd>
+
+   <dt>Anything else</dt>
+   <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+   character token, and reconsume the <a href="#current-input-character">current input
+   character</a> in the <a href="#script-data-escaped-state">script data escaped state</a>.</dd>
+
+  </dl><h5 id="script-data-escaped-end-tag-name-state"><span class="secno">9.2.4.26 </span><dfn>Script data escaped end tag name state</dfn></h5>
+
+  <p>Consume the <a href="#next-input-character">next input character</a>:</p>
+
+  <dl class="switch"><dt>U+0009 CHARACTER TABULATION</dt>
+   <dt>U+000A LINE FEED (LF)</dt>
+   <dt>U+000C FORM FEED (FF)</dt>
+   <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+   <dt>U+0020 SPACE</dt>
+   <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
+   token</a>, then switch to the <a href="#before-attribute-name-state">before attribute name
+   state</a>. Otherwise, treat it as per the "anything else" entry
+   below.</dd>
+
+   <dt>U+002F SOLIDUS (/)</dt>
+   <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
+   token</a>, then switch to the <a href="#self-closing-start-tag-state">self-closing start tag
+   state</a>. Otherwise, treat it as per the "anything else" entry
+   below.</dd>
+
+   <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+   <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
+   token</a>, then emit the current tag token and switch to the
+   <a href="#data-state">data state</a>. Otherwise, treat it as per the "anything
+   else" entry below.</dd>
+
+   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dd>Append the lowercase version of the <a href="#current-input-character">current input
+   character</a> (add 0x0020 to the character's code point) to the
+   current tag token's tag name. Append the <a href="#current-input-character">current input
+   character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Stay in the
+   <a href="#script-data-escaped-end-tag-name-state">script data escaped end tag name state</a>.</dd>
+
+   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dd>Append the <a href="#current-input-character">current input character</a> to the current
+   tag token's tag name. Append the <a href="#current-input-character">current input
+   character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Stay in the
+   <a href="#script-data-escaped-end-tag-name-state">script data escaped end tag name state</a>.</dd>
+
+   <dt>Anything else</dt>
+   <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+   character token, a character token for each of the characters in
+   the <var><a href="#temporary-buffer">temporary buffer</a></var> (in the order they were added to
+   the buffer), and reconsume the <a href="#current-input-character">current input character</a>
+   in the <a href="#script-data-escaped-state">script data escaped state</a>.</dd>
+
+  </dl><h5 id="script-data-double-escape-start-state"><span class="secno">9.2.4.27 </span><dfn>Script data double escape start state</dfn></h5>
+
+  <p>Consume the <a href="#next-input-character">next input character</a>:</p>
+
+  <dl class="switch"><dt>U+0009 CHARACTER TABULATION</dt>
+   <dt>U+000A LINE FEED (LF)</dt>
+   <dt>U+000C FORM FEED (FF)</dt>
+   <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+   <dt>U+0020 SPACE</dt>
+   <dt>U+002F SOLIDUS (/)</dt>
+   <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. If the <var><a href="#temporary-buffer">temporary buffer</a></var> is the string "<code title="">script</code>", then switch to the <a href="#script-data-double-escaped-state">script data
+   double escaped state</a>. Otherwise, switch to the <a href="#script-data-escaped-state">script
+   data escaped state</a>.</dd>
+
+   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Append the lowercase version of the <a href="#current-input-character">current input
+   character</a> (add 0x0020 to the character's code point) to the
+   <var><a href="#temporary-buffer">temporary buffer</a></var>. Stay in the <a href="#script-data-double-escape-start-state">script data double
+   escape start state</a>.</dd>
+
+   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Append the <a href="#current-input-character">current input character</a> to the
+   <var><a href="#temporary-buffer">temporary buffer</a></var>. Stay in the <a href="#script-data-double-escape-start-state">script data double
+   escape start state</a>.</dd>
+
+   <dt>Anything else</dt>
+   <dd>Reconsume the <a href="#current-input-character">current input character</a> in the
+   <a href="#script-data-escaped-state">script data escaped state</a>.</dd>
+
+  </dl><h5 id="script-data-double-escaped-state"><span class="secno">9.2.4.28 </span><dfn>Script data double escaped state</dfn></h5>
+
+  <p>Consume the <a href="#next-input-character">next input character</a>:</p>
+
+  <dl class="switch"><dt>U+002D HYPHEN-MINUS (-)</dt>
+   <dd>Emit a U+002D HYPHEN-MINUS character token. Switch to the
+   <a href="#script-data-double-escaped-dash-state">script data double escaped dash state</a>.</dd>
+
+   <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+   <dd><p>Emit a U+003C LESS-THAN SIGN character token. Switch to the
+   <a href="#script-data-double-escaped-less-than-sign-state">script data double escaped less-than sign
+   state</a>.</dd>
+
+   <dt>EOF</dt>
+   <dd><a href="#parse-error">Parse error</a>. Reconsume the EOF character in the
+   <a href="#data-state">data state</a>.</dd>
+
+   <dt>Anything else</dt>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Stay in the <a href="#script-data-double-escaped-state">script data double escaped
+   state</a>.</dd>
+
+  </dl><h5 id="script-data-double-escaped-dash-state"><span class="secno">9.2.4.29 </span><dfn>Script data double escaped dash state</dfn></h5>
+
+  <p>Consume the <a href="#next-input-character">next input character</a>:</p>
+
+  <dl class="switch"><dt>U+002D HYPHEN-MINUS (-)</dt>
+   <dd>Emit a U+002D HYPHEN-MINUS character token. Switch to the
+   <a href="#script-data-double-escaped-dash-dash-state">script data double escaped dash dash state</a>.</dd>
+
+   <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+   <dd><p>Emit a U+003C LESS-THAN SIGN character token. Switch to the
+   <a href="#script-data-double-escaped-less-than-sign-state">script data double escaped less-than sign
+   state</a>.</dd>
+
+   <dt>EOF</dt>
+   <dd><a href="#parse-error">Parse error</a>. Reconsume the EOF character in the
+   <a href="#data-state">data state</a>.</dd>
+
+   <dt>Anything else</dt>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Switch to the <a href="#script-data-double-escaped-state">script data double escaped
+   state</a>.</dd>
+
+  </dl><h5 id="script-data-double-escaped-dash-dash-state"><span class="secno">9.2.4.30 </span><dfn>Script data double escaped dash dash state</dfn></h5>
+
+  <p>Consume the <a href="#next-input-character">next input character</a>:</p>
+
+  <dl class="switch"><dt>U+002D HYPHEN-MINUS (-)</dt>
+   <dd>Emit a U+002D HYPHEN-MINUS character token. Stay in the
+   <a href="#script-data-double-escaped-dash-dash-state">script data double escaped dash dash state</a>.</dd>
+
+   <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+   <dd><p>Emit a U+003C LESS-THAN SIGN character token. Switch to the
+   <a href="#script-data-double-escaped-less-than-sign-state">script data double escaped less-than sign
+   state</a>.</dd>
+
+   <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+   <dd>Emit a U+003E GREATER-THAN SIGN character token. Switch to the
+   <a href="#script-data-state">script data state</a>.</dd>
+
+   <dt>EOF</dt>
+   <dd><a href="#parse-error">Parse error</a>. Reconsume the EOF character in the
+   <a href="#data-state">data state</a>.</dd>
+
+   <dt>Anything else</dt>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Switch to the <a href="#script-data-double-escaped-state">script data double escaped
+   state</a>.</dd>
+
+  </dl><h5 id="script-data-double-escaped-less-than-sign-state"><span class="secno">9.2.4.31 </span><dfn>Script data double escaped less-than sign state</dfn></h5>
+
+  <p>Consume the <a href="#next-input-character">next input character</a>:</p>
+
+  <dl class="switch"><dt>U+002F SOLIDUS (/)</dt>
+   <dd>Emit a U+002F SOLIDUS character token. Set the <var><a href="#temporary-buffer">temporary
+   buffer</a></var> to the empty string. Switch to the <a href="#script-data-double-escape-end-state">script data
+   double escape end state</a>.</dd>
+
+   <dt>Anything else</dt>
+   <dd>Reconsume the <a href="#current-input-character">current input character</a> in the
+   <a href="#script-data-double-escaped-state">script data double escaped state</a>.</dd>
+
+  </dl><h5 id="script-data-double-escape-end-state"><span class="secno">9.2.4.32 </span><dfn>Script data double escape end state</dfn></h5>
+
+  <p>Consume the <a href="#next-input-character">next input character</a>:</p>
+
+  <dl class="switch"><dt>U+0009 CHARACTER TABULATION</dt>
+   <dt>U+000A LINE FEED (LF)</dt>
+   <dt>U+000C FORM FEED (FF)</dt>
+   <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+   <dt>U+0020 SPACE</dt>
+   <dt>U+002F SOLIDUS (/)</dt>
+   <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. If the <var><a href="#temporary-buffer">temporary buffer</a></var> is the string "<code title="">script</code>", then switch to the <a href="#script-data-escaped-state">script data
+   escaped state</a>. Otherwise, switch to the <a href="#script-data-double-escaped-state">script data
+   double escaped state</a>.</dd>
+
+   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Append the lowercase version of the <a href="#current-input-character">current input
+   character</a> (add 0x0020 to the character's code point) to the
+   <var><a href="#temporary-buffer">temporary buffer</a></var>. Stay in the <a href="#script-data-double-escape-end-state">script data double
+   escape end state</a>.</dd>
+
+   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dd>Emit the <a href="#current-input-character">current input character</a> as a character
+   token. Append the <a href="#current-input-character">current input character</a> to the
+   <var><a href="#temporary-buffer">temporary buffer</a></var>. Stay in the <a href="#script-data-double-escape-end-state">script data double
+   escape end state</a>.</dd>
+
+   <dt>Anything else</dt>
+   <dd>Reconsume the <a href="#current-input-character">current input character</a> in the
+   <a href="#script-data-double-escaped-state">script data double escaped state</a>.</dd>
+
+  </dl><h5 id="before-attribute-name-state"><span class="secno">9.2.4.33 </span><dfn>Before attribute name state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -55727,7 +56024,7 @@
    the empty string. Switch to the <a href="#attribute-name-state">attribute name
    state</a>.</dd>
 
-  </dl><h5 id="attribute-name-state"><span class="secno">9.2.4.25 </span><dfn>Attribute name state</dfn></h5>
+  </dl><h5 id="attribute-name-state"><span class="secno">9.2.4.34 </span><dfn>Attribute name state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -55778,7 +56075,7 @@
   associated with it (if any).</p>
 
 
-  <h5 id="after-attribute-name-state"><span class="secno">9.2.4.26 </span><dfn>After attribute name state</dfn></h5>
+  <h5 id="after-attribute-name-state"><span class="secno">9.2.4.35 </span><dfn>After attribute name state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -55822,7 +56119,7 @@
    its value to the empty string. Switch to the <a href="#attribute-name-state">attribute name
    state</a>.</dd>
 
-  </dl><h5 id="before-attribute-value-state"><span class="secno">9.2.4.27 </span><dfn>Before attribute value state</dfn></h5>
+  </dl><h5 id="before-attribute-value-state"><span class="secno">9.2.4.36 </span><dfn>Before attribute value state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -55862,7 +56159,7 @@
    attribute's value. Switch to the <a href="#attribute-value-unquoted-state">attribute value (unquoted)
    state</a>.</dd>
 
-  </dl><h5 id="attribute-value-double-quoted-state"><span class="secno">9.2.4.28 </span><dfn>Attribute value (double-quoted) state</dfn></h5>
+  </dl><h5 id="attribute-value-double-quoted-state"><span class="secno">9.2.4.37 </span><dfn>Attribute value (double-quoted) state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -55884,7 +56181,7 @@
    attribute's value. Stay in the <a href="#attribute-value-double-quoted-state">attribute value
    (double-quoted) state</a>.</dd>
 
-  </dl><h5 id="attribute-value-single-quoted-state"><span class="secno">9.2.4.29 </span><dfn>Attribute value (single-quoted) state</dfn></h5>
+  </dl><h5 id="attribute-value-single-quoted-state"><span class="secno">9.2.4.38 </span><dfn>Attribute value (single-quoted) state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -55906,7 +56203,7 @@
    attribute's value. Stay in the <a href="#attribute-value-single-quoted-state">attribute value
    (single-quoted) state</a>.</dd>
 
-  </dl><h5 id="attribute-value-unquoted-state"><span class="secno">9.2.4.30 </span><dfn>Attribute value (unquoted) state</dfn></h5>
+  </dl><h5 id="attribute-value-unquoted-state"><span class="secno">9.2.4.39 </span><dfn>Attribute value (unquoted) state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -55943,7 +56240,7 @@
    attribute's value. Stay in the <a href="#attribute-value-unquoted-state">attribute value (unquoted)
    state</a>.</dd>
 
-  </dl><h5 id="character-reference-in-attribute-value-state"><span class="secno">9.2.4.31 </span><dfn>Character reference in attribute value state</dfn></h5>
+  </dl><h5 id="character-reference-in-attribute-value-state"><span class="secno">9.2.4.40 </span><dfn>Character reference in attribute value state</dfn></h5>
 
   <p>Attempt to <a href="#consume-a-character-reference">consume a character reference</a>.</p>
 
@@ -55957,7 +56254,7 @@
   in when were switched into this state.</p>
 
 
-  <h5 id="after-attribute-value-quoted-state"><span class="secno">9.2.4.32 </span><dfn>After attribute value (quoted) state</dfn></h5>
+  <h5 id="after-attribute-value-quoted-state"><span class="secno">9.2.4.41 </span><dfn>After attribute value (quoted) state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -55983,7 +56280,7 @@
    <dd><a href="#parse-error">Parse error</a>. Reconsume the character in
    the <a href="#before-attribute-name-state">before attribute name state</a>.</dd>
 
-  </dl><h5 id="self-closing-start-tag-state"><span class="secno">9.2.4.33 </span><dfn>Self-closing start tag state</dfn></h5>
+  </dl><h5 id="self-closing-start-tag-state"><span class="secno">9.2.4.42 </span><dfn>Self-closing start tag state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56000,7 +56297,7 @@
    <dd><a href="#parse-error">Parse error</a>. Reconsume the character in
    the <a href="#before-attribute-name-state">before attribute name state</a>.</dd>
 
-  </dl><h5 id="bogus-comment-state"><span class="secno">9.2.4.34 </span><dfn>Bogus comment state</dfn></h5>
+  </dl><h5 id="bogus-comment-state"><span class="secno">9.2.4.43 </span><dfn>Bogus comment state</dfn></h5>
 
   <p>Consume every character up to and including the first U+003E
   GREATER-THAN SIGN character (&gt;) or the end of the file (EOF),
@@ -56018,7 +56315,7 @@
   character.</p>
 
 
-  <h5 id="markup-declaration-open-state"><span class="secno">9.2.4.35 </span><dfn>Markup declaration open state</dfn></h5>
+  <h5 id="markup-declaration-open-state"><span class="secno">9.2.4.44 </span><dfn>Markup declaration open state</dfn></h5>
 
   <p>If the next two characters are both U+002D HYPHEN-MINUS (-)
   characters, consume those two characters, create a comment token
@@ -56043,7 +56340,7 @@
   comment.</p>
 
 
-  <h5 id="comment-start-state"><span class="secno">9.2.4.36 </span><dfn>Comment start state</dfn></h5>
+  <h5 id="comment-start-state"><span class="secno">9.2.4.45 </span><dfn>Comment start state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56063,7 +56360,7 @@
    <dd>Append the <a href="#current-input-character">current input character</a> to the comment
    token's data. Switch to the <a href="#comment-state">comment state</a>.</dd>
 
-  </dl><h5 id="comment-start-dash-state"><span class="secno">9.2.4.37 </span><dfn>Comment start dash state</dfn></h5>
+  </dl><h5 id="comment-start-dash-state"><span class="secno">9.2.4.46 </span><dfn>Comment start dash state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56084,7 +56381,7 @@
    <a href="#current-input-character">current input character</a> to the comment token's
    data. Switch to the <a href="#comment-state">comment state</a>.</dd>
 
-  </dl><h5 id="comment-state"><span class="secno">9.2.4.38 </span><dfn id="comment">Comment state</dfn></h5>
+  </dl><h5 id="comment-state"><span class="secno">9.2.4.47 </span><dfn id="comment">Comment state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56100,7 +56397,7 @@
    <dd>Append the <a href="#current-input-character">current input character</a> to the comment
    token's data. Stay in the <a href="#comment-state">comment state</a>.</dd>
 
-  </dl><h5 id="comment-end-dash-state"><span class="secno">9.2.4.39 </span><dfn>Comment end dash state</dfn></h5>
+  </dl><h5 id="comment-end-dash-state"><span class="secno">9.2.4.48 </span><dfn>Comment end dash state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56117,7 +56414,7 @@
    <a href="#current-input-character">current input character</a> to the comment token's
    data. Switch to the <a href="#comment-state">comment state</a>.</dd>
 
-  </dl><h5 id="comment-end-state"><span class="secno">9.2.4.40 </span><dfn>Comment end state</dfn></h5>
+  </dl><h5 id="comment-end-state"><span class="secno">9.2.4.49 </span><dfn>Comment end state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56158,7 +56455,7 @@
    comment token's data. Switch to the <a href="#comment-state">comment
    state</a>.</dd>
 
-  </dl><h5 id="comment-end-bang-state"><span class="secno">9.2.4.41 </span><dfn>Comment end bang state</dfn></h5>
+  </dl><h5 id="comment-end-bang-state"><span class="secno">9.2.4.50 </span><dfn>Comment end bang state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56182,7 +56479,7 @@
    character</a> to the comment token's data. Switch to the
    <a href="#comment-state">comment state</a>.</dd>
 
-  </dl><h5 id="comment-end-space-state"><span class="secno">9.2.4.42 </span><dfn>Comment end space state</dfn></h5>
+  </dl><h5 id="comment-end-space-state"><span class="secno">9.2.4.51 </span><dfn>Comment end space state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56210,7 +56507,7 @@
    <dd>Append the <a href="#current-input-character">current input character</a> to the comment token's data. Switch
    to the <a href="#comment-state">comment state</a>.</dd>
 
-  </dl><h5 id="doctype-state"><span class="secno">9.2.4.43 </span><dfn>DOCTYPE state</dfn></h5>
+  </dl><h5 id="doctype-state"><span class="secno">9.2.4.52 </span><dfn>DOCTYPE state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56230,7 +56527,7 @@
    <dd><a href="#parse-error">Parse error</a>. Reconsume the current
    character in the <a href="#before-doctype-name-state">before DOCTYPE name state</a>.</dd>
 
-  </dl><h5 id="before-doctype-name-state"><span class="secno">9.2.4.44 </span><dfn>Before DOCTYPE name state</dfn></h5>
+  </dl><h5 id="before-doctype-name-state"><span class="secno">9.2.4.53 </span><dfn>Before DOCTYPE name state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56262,7 +56559,7 @@
    <a href="#current-input-character">current input character</a>. Switch to the <a href="#doctype-name-state">DOCTYPE name
    state</a>.</dd>
 
-  </dl><h5 id="doctype-name-state"><span class="secno">9.2.4.45 </span><dfn>DOCTYPE name state</dfn></h5>
+  </dl><h5 id="doctype-name-state"><span class="secno">9.2.4.54 </span><dfn>DOCTYPE name state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56293,7 +56590,7 @@
    DOCTYPE token's name. Stay in the <a href="#doctype-name-state">DOCTYPE name
    state</a>.</dd>
 
-  </dl><h5 id="after-doctype-name-state"><span class="secno">9.2.4.46 </span><dfn>After DOCTYPE name state</dfn></h5>
+  </dl><h5 id="after-doctype-name-state"><span class="secno">9.2.4.55 </span><dfn>After DOCTYPE name state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56333,7 +56630,7 @@
 
    </dd>
 
-  </dl><h5 id="after-doctype-public-keyword-state"><span class="secno">9.2.4.47 </span><dfn>After DOCTYPE public keyword state</dfn></h5>
+  </dl><h5 id="after-doctype-public-keyword-state"><span class="secno">9.2.4.56 </span><dfn>After DOCTYPE public keyword state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56354,7 +56651,7 @@
    <dd><a href="#parse-error">Parse error</a>. Reconsume the current character in
    the <a href="#before-doctype-public-identifier-state">before DOCTYPE public identifier state</a>.</dd>
 
-  </dl><h5 id="before-doctype-public-identifier-state"><span class="secno">9.2.4.48 </span><dfn>Before DOCTYPE public identifier state</dfn></h5>
+  </dl><h5 id="before-doctype-public-identifier-state"><span class="secno">9.2.4.57 </span><dfn>Before DOCTYPE public identifier state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56390,7 +56687,7 @@
    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
    DOCTYPE state</a>.</dd>
 
-  </dl><h5 id="doctype-public-identifier-double-quoted-state"><span class="secno">9.2.4.49 </span><dfn>DOCTYPE public identifier (double-quoted) state</dfn></h5>
+  </dl><h5 id="doctype-public-identifier-double-quoted-state"><span class="secno">9.2.4.58 </span><dfn>DOCTYPE public identifier (double-quoted) state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56412,7 +56709,7 @@
    token's public identifier. Stay in the <a href="#doctype-public-identifier-double-quoted-state">DOCTYPE public
    identifier (double-quoted) state</a>.</dd>
 
-  </dl><h5 id="doctype-public-identifier-single-quoted-state"><span class="secno">9.2.4.50 </span><dfn>DOCTYPE public identifier (single-quoted) state</dfn></h5>
+  </dl><h5 id="doctype-public-identifier-single-quoted-state"><span class="secno">9.2.4.59 </span><dfn>DOCTYPE public identifier (single-quoted) state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56434,7 +56731,7 @@
    token's public identifier. Stay in the <a href="#doctype-public-identifier-single-quoted-state">DOCTYPE public
    identifier (single-quoted) state</a>.</dd>
 
-  </dl><h5 id="after-doctype-public-identifier-state"><span class="secno">9.2.4.51 </span><dfn>After DOCTYPE public identifier state</dfn></h5>
+  </dl><h5 id="after-doctype-public-identifier-state"><span class="secno">9.2.4.60 </span><dfn>After DOCTYPE public identifier state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56470,7 +56767,7 @@
    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
    DOCTYPE state</a>.</dd>
 
-  </dl><h5 id="between-doctype-public-and-system-identifiers-state"><span class="secno">9.2.4.52 </span><dfn>Between DOCTYPE public and system identifiers state</dfn></h5>
+  </dl><h5 id="between-doctype-public-and-system-identifiers-state"><span class="secno">9.2.4.61 </span><dfn>Between DOCTYPE public and system identifiers state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56506,7 +56803,7 @@
    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
    DOCTYPE state</a>.</dd>
 
-  </dl><h5 id="after-doctype-system-keyword-state"><span class="secno">9.2.4.53 </span><dfn>After DOCTYPE system keyword state</dfn></h5>
+  </dl><h5 id="after-doctype-system-keyword-state"><span class="secno">9.2.4.62 </span><dfn>After DOCTYPE system keyword state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56527,7 +56824,7 @@
    <dd><a href="#parse-error">Parse error</a>. Reconsume the current character in
    the <a href="#before-doctype-system-identifier-state">before DOCTYPE system identifier state</a>.</dd>
 
-  </dl><h5 id="before-doctype-system-identifier-state"><span class="secno">9.2.4.54 </span><dfn>Before DOCTYPE system identifier state</dfn></h5>
+  </dl><h5 id="before-doctype-system-identifier-state"><span class="secno">9.2.4.63 </span><dfn>Before DOCTYPE system identifier state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56563,7 +56860,7 @@
    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
    DOCTYPE state</a>.</dd>
 
-  </dl><h5 id="doctype-system-identifier-double-quoted-state"><span class="secno">9.2.4.55 </span><dfn>DOCTYPE system identifier (double-quoted) state</dfn></h5>
+  </dl><h5 id="doctype-system-identifier-double-quoted-state"><span class="secno">9.2.4.64 </span><dfn>DOCTYPE system identifier (double-quoted) state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56586,7 +56883,7 @@
    DOCTYPE token's system identifier. Stay in the <a href="#doctype-system-identifier-double-quoted-state">DOCTYPE system
    identifier (double-quoted) state</a>.</dd>
 
-  </dl><h5 id="doctype-system-identifier-single-quoted-state"><span class="secno">9.2.4.56 </span><dfn>DOCTYPE system identifier (single-quoted) state</dfn></h5>
+  </dl><h5 id="doctype-system-identifier-single-quoted-state"><span class="secno">9.2.4.65 </span><dfn>DOCTYPE system identifier (single-quoted) state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56609,7 +56906,7 @@
    DOCTYPE token's system identifier. Stay in the <a href="#doctype-system-identifier-single-quoted-state">DOCTYPE system
    identifier (single-quoted) state</a>.</dd>
 
-  </dl><h5 id="after-doctype-system-identifier-state"><span class="secno">9.2.4.57 </span><dfn>After DOCTYPE system identifier state</dfn></h5>
+  </dl><h5 id="after-doctype-system-identifier-state"><span class="secno">9.2.4.66 </span><dfn>After DOCTYPE system identifier state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56635,7 +56932,7 @@
    state</a>. (This does <em>not</em> set the DOCTYPE token's
    <i>force-quirks flag</i> to <i>on</i>.)</dd>
 
-  </dl><h5 id="bogus-doctype-state"><span class="secno">9.2.4.58 </span><dfn>Bogus DOCTYPE state</dfn></h5>
+  </dl><h5 id="bogus-doctype-state"><span class="secno">9.2.4.67 </span><dfn>Bogus DOCTYPE state</dfn></h5>
 
   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
 
@@ -56650,7 +56947,7 @@
    <dt>Anything else</dt>
    <dd>Stay in the <a href="#bogus-doctype-state">bogus DOCTYPE state</a>.</dd>
 
-  </dl><h5 id="cdata-section-state"><span class="secno">9.2.4.59 </span><dfn>CDATA section state</dfn></h5>
+  </dl><h5 id="cdata-section-state"><span class="secno">9.2.4.68 </span><dfn>CDATA section state</dfn></h5>
 
   <p>Consume every character up to the next occurrence of the three
   character sequence U+005D RIGHT SQUARE BRACKET U+005D RIGHT SQUARE
@@ -56667,7 +56964,7 @@
 
 
 
-  <h5 id="tokenizing-character-references"><span class="secno">9.2.4.60 </span>Tokenizing character references</h5>
+  <h5 id="tokenizing-character-references"><span class="secno">9.2.4.69 </span>Tokenizing character references</h5>
 
   <p>This section defines how to <dfn id="consume-a-character-reference">consume a character
   reference</dfn>. This definition is used when parsing character

Received on Tuesday, 20 October 2009 00:20:30 UTC