Skip to content
Permalink
Browse files
[ct] (0) Support dash-dash-bang-angle comment terminators.
git-svn-id: http://svn.whatwg.org/webapps@3191 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information
Hixie committed Jun 4, 2009
1 parent 40cdd52 commit cf99432c0270a203597fd5a9be2b4dae5933c3af
Showing with 116 additions and 62 deletions.
  1. +71 −46 index
  2. +45 −16 source
117 index
@@ -966,21 +966,22 @@
<li><a href=#comment-state><span class=secno>9.2.4.20 </span>Comment state</a></li>
<li><a href=#comment-end-dash-state><span class=secno>9.2.4.21 </span>Comment end dash state</a></li>
<li><a href=#comment-end-state><span class=secno>9.2.4.22 </span>Comment end state</a></li>
<li><a href=#doctype-state><span class=secno>9.2.4.23 </span>DOCTYPE state</a></li>
<li><a href=#before-doctype-name-state><span class=secno>9.2.4.24 </span>Before DOCTYPE name state</a></li>
<li><a href=#doctype-name-state><span class=secno>9.2.4.25 </span>DOCTYPE name state</a></li>
<li><a href=#after-doctype-name-state><span class=secno>9.2.4.26 </span>After DOCTYPE name state</a></li>
<li><a href=#before-doctype-public-identifier-state><span class=secno>9.2.4.27 </span>Before DOCTYPE public identifier state</a></li>
<li><a href=#doctype-public-identifier-(double-quoted)-state><span class=secno>9.2.4.28 </span>DOCTYPE public identifier (double-quoted) state</a></li>
<li><a href=#doctype-public-identifier-(single-quoted)-state><span class=secno>9.2.4.29 </span>DOCTYPE public identifier (single-quoted) state</a></li>
<li><a href=#after-doctype-public-identifier-state><span class=secno>9.2.4.30 </span>After DOCTYPE public identifier state</a></li>
<li><a href=#before-doctype-system-identifier-state><span class=secno>9.2.4.31 </span>Before DOCTYPE system identifier state</a></li>
<li><a href=#doctype-system-identifier-(double-quoted)-state><span class=secno>9.2.4.32 </span>DOCTYPE system identifier (double-quoted) state</a></li>
<li><a href=#doctype-system-identifier-(single-quoted)-state><span class=secno>9.2.4.33 </span>DOCTYPE system identifier (single-quoted) state</a></li>
<li><a href=#after-doctype-system-identifier-state><span class=secno>9.2.4.34 </span>After DOCTYPE system identifier state</a></li>
<li><a href=#bogus-doctype-state><span class=secno>9.2.4.35 </span>Bogus DOCTYPE state</a></li>
<li><a href=#cdata-section-state><span class=secno>9.2.4.36 </span>CDATA section state</a></li>
<li><a href=#tokenizing-character-references><span class=secno>9.2.4.37 </span>Tokenizing character references</a></ol></li>
<li><a href=#comment-end-bang-state><span class=secno>9.2.4.23 </span>Comment end bang state</a></li>
<li><a href=#doctype-state><span class=secno>9.2.4.24 </span>DOCTYPE state</a></li>
<li><a href=#before-doctype-name-state><span class=secno>9.2.4.25 </span>Before DOCTYPE name state</a></li>
<li><a href=#doctype-name-state><span class=secno>9.2.4.26 </span>DOCTYPE name state</a></li>
<li><a href=#after-doctype-name-state><span class=secno>9.2.4.27 </span>After DOCTYPE name state</a></li>
<li><a href=#before-doctype-public-identifier-state><span class=secno>9.2.4.28 </span>Before DOCTYPE public identifier state</a></li>
<li><a href=#doctype-public-identifier-(double-quoted)-state><span class=secno>9.2.4.29 </span>DOCTYPE public identifier (double-quoted) state</a></li>
<li><a href=#doctype-public-identifier-(single-quoted)-state><span class=secno>9.2.4.30 </span>DOCTYPE public identifier (single-quoted) state</a></li>
<li><a href=#after-doctype-public-identifier-state><span class=secno>9.2.4.31 </span>After DOCTYPE public identifier state</a></li>
<li><a href=#before-doctype-system-identifier-state><span class=secno>9.2.4.32 </span>Before DOCTYPE system identifier state</a></li>
<li><a href=#doctype-system-identifier-(double-quoted)-state><span class=secno>9.2.4.33 </span>DOCTYPE system identifier (double-quoted) state</a></li>
<li><a href=#doctype-system-identifier-(single-quoted)-state><span class=secno>9.2.4.34 </span>DOCTYPE system identifier (single-quoted) state</a></li>
<li><a href=#after-doctype-system-identifier-state><span class=secno>9.2.4.35 </span>After DOCTYPE system identifier state</a></li>
<li><a href=#bogus-doctype-state><span class=secno>9.2.4.36 </span>Bogus DOCTYPE state</a></li>
<li><a href=#cdata-section-state><span class=secno>9.2.4.37 </span>CDATA section state</a></li>
<li><a href=#tokenizing-character-references><span class=secno>9.2.4.38 </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>
@@ -60831,8 +60832,9 @@ interface <dfn id=messageport>MessagePort</dfn> {
<dd>Switch to the <a href=#comment-start-dash-state>comment start dash state</a>.</dd>

<dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Switch to
the <a href=#data-state>data state</a>.</dd>
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Switch to the
<a href=#data-state>data state</a>.</dd> <!-- see comment in comment end state
-->

<dt>EOF</dt>
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume
@@ -60854,8 +60856,9 @@ interface <dfn id=messageport>MessagePort</dfn> {
the <a href=#data-state>data state</a>.</dd>

<dt>EOF</dt>
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume
the EOF character in the <a href=#data-state>data state</a>.</dd>
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume the
EOF character in the <a href=#data-state>data state</a>.</dd> <!-- see comment
in comment end state -->

<dt>Anything else</dt>
<dd>Append a U+002D HYPHEN-MINUS (-) character and the input
@@ -60870,12 +60873,9 @@ interface <dfn id=messageport>MessagePort</dfn> {
<dd>Switch to the <a href=#comment-end-dash-state>comment end dash state</a></dd>

<dt>EOF</dt>
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume
the EOF character in the <a href=#data-state>data state</a>.</dd> <!-- For
security reasons: otherwise, hostile user could put a <script> in
a comment e.g. in a blog comment and then DOS the server so that
the end tag isn't read, and then the commented <script> tag would
be treated as live code -->
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume the
EOF character in the <a href=#data-state>data state</a>.</dd> <!-- see comment
in comment end state -->

<dt>Anything else</dt>
<dd>Append the input character to the comment token's data. Stay
@@ -60889,12 +60889,9 @@ interface <dfn id=messageport>MessagePort</dfn> {
<dd>Switch to the <a href=#comment-end-state>comment end state</a></dd>

<dt>EOF</dt>
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume
the EOF character in the <a href=#data-state>data state</a>.</dd> <!-- For
security reasons: otherwise, hostile user could put a <script> in
a comment e.g. in a blog comment and then DOS the server so that
the end tag isn't read, and then the commented <script> tag would
be treated as live code -->
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume the
EOF character in the <a href=#data-state>data state</a>.</dd> <!-- see comment
in comment end state -->

<dt>Anything else</dt>
<dd>Append a U+002D HYPHEN-MINUS (-) character and the input
@@ -60914,6 +60911,10 @@ interface <dfn id=messageport>MessagePort</dfn> {
(-) character to the comment token's data. Stay in the
<a href=#comment-end-state>comment end state</a>.</dd>

<dt>U+0021 EXCLAMATION MARK (!)</dt>
<dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#comment-end-bang-state>comment end bang
state</a>.</dd>

<dt>EOF</dt>
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume
the EOF character in the <a href=#data-state>data state</a>.</dd> <!-- For
@@ -60927,7 +60928,31 @@ interface <dfn id=messageport>MessagePort</dfn> {
characters and the input character 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.23 </span><dfn>DOCTYPE state</dfn></h5>
</dl><h5 id=comment-end-bang-state><span class=secno>9.2.4.23 </span><dfn>Comment end bang state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

<dl class=switch><dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
<dd>Emit the comment token. Switch to the <a href=#data-state>data
state</a>.</dd>

<dt>U+002D HYPHEN-MINUS (-)</dt>
<dd>Append two U+002D HYPHEN-MINUS (-) characters and a U+0021
EXCLAMATION MARK (!) character to the comment token's data. Switch
to the <a href=#comment-end-dash-state>comment end dash state</a>.</dd>

<dt>EOF</dt>
<dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume
the EOF character in the <a href=#data-state>data state</a>.</dd> <!-- see
comment in comment end state -->

<dt>Anything else</dt>
<dd><a href=#parse-error>Parse error</a>. Append two U+002D HYPHEN-MINUS (-)
characters, a U+0021 EXCLAMATION MARK (!) character, and the input
character 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.24 </span><dfn>DOCTYPE state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -60947,7 +60972,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
<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.24 </span><dfn>Before DOCTYPE name state</dfn></h5>
</dl><h5 id=before-doctype-name-state><span class=secno>9.2.4.25 </span><dfn>Before DOCTYPE name state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -60979,7 +61004,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
<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.25 </span><dfn>DOCTYPE name state</dfn></h5>
</dl><h5 id=doctype-name-state><span class=secno>9.2.4.26 </span><dfn>DOCTYPE name state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61008,7 +61033,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
<dd>Append the <a href=#current-input-character>current input character</a> to the current 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.26 </span><dfn>After DOCTYPE name state</dfn></h5>
</dl><h5 id=after-doctype-name-state><span class=secno>9.2.4.27 </span><dfn>After DOCTYPE name state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61048,7 +61073,7 @@ interface <dfn id=messageport>MessagePort</dfn> {

</dd>

</dl><h5 id=before-doctype-public-identifier-state><span class=secno>9.2.4.27 </span><dfn>Before DOCTYPE public identifier state</dfn></h5>
</dl><h5 id=before-doctype-public-identifier-state><span class=secno>9.2.4.28 </span><dfn>Before DOCTYPE public identifier state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61084,7 +61109,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
<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.28 </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.29 </span><dfn>DOCTYPE public identifier (double-quoted) state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61106,7 +61131,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
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.29 </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.30 </span><dfn>DOCTYPE public identifier (single-quoted) state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61128,7 +61153,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
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.30 </span><dfn>After DOCTYPE public identifier state</dfn></h5>
</dl><h5 id=after-doctype-public-identifier-state><span class=secno>9.2.4.31 </span><dfn>After DOCTYPE public identifier state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61163,7 +61188,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
<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=before-doctype-system-identifier-state><span class=secno>9.2.4.31 </span><dfn>Before DOCTYPE system identifier state</dfn></h5>
</dl><h5 id=before-doctype-system-identifier-state><span class=secno>9.2.4.32 </span><dfn>Before DOCTYPE system identifier state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61199,7 +61224,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
<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.32 </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.33 </span><dfn>DOCTYPE system identifier (double-quoted) state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61221,7 +61246,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
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.33 </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.34 </span><dfn>DOCTYPE system identifier (single-quoted) state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61243,7 +61268,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
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.34 </span><dfn>After DOCTYPE system identifier state</dfn></h5>
</dl><h5 id=after-doctype-system-identifier-state><span class=secno>9.2.4.35 </span><dfn>After DOCTYPE system identifier state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61268,7 +61293,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
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.35 </span><dfn>Bogus DOCTYPE state</dfn></h5>
</dl><h5 id=bogus-doctype-state><span class=secno>9.2.4.36 </span><dfn>Bogus DOCTYPE state</dfn></h5>

<p>Consume the <a href=#next-input-character>next input character</a>:</p>

@@ -61283,7 +61308,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
<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.36 </span><dfn>CDATA section state</dfn></h5>
</dl><h5 id=cdata-section-state><span class=secno>9.2.4.37 </span><dfn>CDATA section state</dfn></h5>

<p><em>(This can only happen if the <a href=#content-model-flag>content model
flag</a> is set to the PCDATA state, and is unrelated to the
@@ -61304,7 +61329,7 @@ interface <dfn id=messageport>MessagePort</dfn> {



<h5 id=tokenizing-character-references><span class=secno>9.2.4.37 </span>Tokenizing character references</h5>
<h5 id=tokenizing-character-references><span class=secno>9.2.4.38 </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

0 comments on commit cf99432

Please sign in to comment.