hixie: Change how <script>'s content restrictions are written to make it more clear what is allowed and what isn't, since with prose rules in ABNF it can be a bit ambiguous. (whatwg r4179)

hixie: Change how <script>'s content restrictions are written to make it
more clear what is allowed and what isn't, since with prose rules in
ABNF it can be a bit ambiguous. (whatwg r4179)

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

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.3325
retrieving revision 1.3326
diff -u -d -r1.3325 -r1.3326
--- Overview.html 20 Oct 2009 00:19:32 -0000 1.3325
+++ Overview.html 20 Oct 2009 00:43:14 -0000 1.3326
@@ -11230,22 +11230,20 @@
 
   </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
+  character set for which is Unicode. <a href="#refsABNF">[ABNF]</a><pre>script        = data1 *( escape [ script-start data3 ] "--&gt;" data1 ) [ escape ]
+escape        = "&amp;lt!--" data2 *( script-start data3 script-end data2 )
 
-body1         = *( text1 / body2 )
-body2         = "&lt;!--" *( text2 / body3 script-end ) [ body3 ] "--&gt;"
-body3         = script-start *text3
+data1         = &lt;any string that doesn't contain a substring that matches not-data1&gt;
+not-data1     = script-end / "&lt;!--"
 
-script-start  = lt       s c r i p t tag-end
-script-end    = lt slash s c r i p t tag-end
+data2         = &lt;any string that doesn't contain a substring that matches not-data2&gt;
+not-data2     = script-end / script-start / "--&gt;"
 
-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;
+data3         = &lt;any string that doesn't contain a substring that matches not-data3&gt;
+not-data3     = script-end / "--&gt;"
 
-not-text1     = "&lt;!--" / script-end
-not-text2     = script-start / script-end / "--&gt;"
-not-text3     = script-end / "--&gt;"
+script-start  = lt       s c r i p t tag-end
+script-end    = lt slash s c r i p t tag-end
 
 lt            =  %x003C ; U+003C LESS-THAN SIGN character (&lt;)
 slash         =  %x002F ; U+002F SOLIDUS character (/)

Received on Tuesday, 20 October 2009 00:43:55 UTC