@@ -290,119 +290,6 @@ have been written in prose. In addition, precise language bindings
290290for ECMAScript Edition 6 are given.
291291
292292
293- <h3 id="conventions">Typographic conventions</h3>
294-
295- The following typographic conventions are used in this document:
296-
297- * Defining instances of terms: <dfn id="dfn-example-term">example term</dfn>
298- * Links to terms defined in this document or elsewhere: [=example term=]
299- * Grammar terminals: <emu-t>sometoken</emu-t>
300- * Grammar non-terminals: <emu-nt>ExampleGrammarNonTerminal</emu-t>
301- * Grammar symbols: <emu-t class="symbol">identifier</emu-t>
302- * IDL and ECMAScript types: <code class="idl">ExampleType</code>
303- * Code snippets: <code>a = b + obj.f()</code>
304- * Unicode characters: <span class="char">U+0030 DIGIT ZERO ("0")</span>
305- * Extended attributes: [<code class="idl">ExampleExtendedAttribute</code>]
306- * Variable names in prose and algorithms: |exampleVariableName|.
307- * Algorithms use the [=conventions of the ECMAScript specification=],
308- including the ! and ? notation for unwrapping completion records.
309- * IDL informal syntax examples:
310- <pre highlight="webidl" class="syntax">
311- interface identifier {
312- <mark>/* interface_members... */</mark>
313- };
314- </pre>
315-
316- (Specific parts of the syntax discussed in surrounding prose are <mark>highlighted</mark>.)
317- * IDL grammar snippets:
318- <pre class="grammar no-index">
319- ExampleGrammarNonTerminal :
320- OtherNonTerminal "sometoken"
321- other AnotherNonTerminal
322- ε // nothing
323- </pre>
324- * Non-normative notes:
325-
326- Note: This is a note.
327-
328- * Non-normative examples:
329- <div class="example">
330- This is an example.
331- </div>
332- * Normative warnings:
333- <p class="advisement">
334- This is a warning.
335- </p>
336- * Code blocks:
337- <pre highlight="webidl">
338- // This is an IDL code block.
339- interface Example {
340- attribute long something;
341- };
342- </pre>
343- <pre highlight="js">
344- // This is an ECMAScript code block.
345- window.onload = function() { window.alert("loaded"); };
346- </pre>
347-
348-
349- <h2 id="conformance">Conformance</h2>
350-
351- Everything in this specification is normative except for diagrams,
352- examples, notes and sections marked as being informative.
353-
354- The keywords “must”,
355- “must not”,
356- “required”,
357- “shall”,
358- “shall not”,
359- “should”,
360- “should not”,
361- “recommended”,
362- “may” and
363- “optional” in this document are to be
364- interpreted as described in
365- <cite><a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to
366- Indicate Requirement Levels</a></cite>
367- [[!RFC2119]].
368-
369- The following conformance classes are defined by this specification:
370-
371- : <dfn id="dfn-conforming-set-of-idl-fragments" export>conforming set of IDL fragments</dfn>
372- :: A set of [=IDL fragments=] is considered
373- to be a [=conforming set of IDL fragments=] if, taken together, they satisfy all of the
374- must-,
375- required- and shall-level
376- criteria in this specification that apply to IDL fragments.
377- : <dfn id="dfn-conforming-implementation" export>conforming implementation</dfn>
378- :: A user agent is considered to be a
379- [=conforming implementation=]
380- relative to a [=conforming set of IDL fragments=] if it satisfies all of the must-,
381- required- and shall-level
382- criteria in this specification that apply to implementations for all language
383- bindings that the user agent supports.
384- : <dfn id="dfn-conforming-ecmascript-implementation" export>conforming ECMAScript implementation</dfn>
385- :: A user agent is considered to be a
386- [=conforming ECMAScript implementation=]
387- relative to a [=conforming set of IDL fragments=] if it satisfies all of the must-,
388- required- and shall-level
389- criteria in this specification that apply to implementations for the ECMAScript
390- language binding.
391-
392-
393- <h3 id="conformant-algorithms">Conformant Algorithms</h3>
394-
395- Requirements phrased in the imperative as part of algorithms (such as
396- “strip any leading space characters” or “return false and abort these
397- steps”) are to be interpreted with the meaning of the key word (“must”,
398- “should”, “may”, etc) used in introducing the algorithm.
399-
400- Conformance requirements phrased as algorithms or specific steps can be
401- implemented in any manner, so long as the end result is <dfn lt="processing equivalence" id="dfn-processing-equivalence">equivalent</dfn>. In
402- particular, the algorithms defined in this specification are intended to
403- be easy to understand and are not intended to be performant. Implementers
404- are encouraged to optimize.
405-
406293
407294<h2 id="idl">Interface definition language</h2>
408295
@@ -13514,6 +13401,117 @@ defined in this specification — see
1351413401[[#idl-extended-attributes]]
1351513402for the syntaxes that are used by these extended attributes.
1351613403
13404+
13405+ <h2 id="conventions" class="no-num">Document conventions</h3>
13406+
13407+ The following typographic conventions are used in this document:
13408+
13409+ * Defining instances of terms: <dfn id="dfn-example-term">example term</dfn>
13410+ * Links to terms defined in this document or elsewhere: [=example term=]
13411+ * Grammar terminals: <emu-t>sometoken</emu-t>
13412+ * Grammar non-terminals: <emu-nt>ExampleGrammarNonTerminal</emu-t>
13413+ * Grammar symbols: <emu-t class="symbol">identifier</emu-t>
13414+ * IDL and ECMAScript types: <code class="idl">ExampleType</code>
13415+ * Code snippets: <code>a = b + obj.f()</code>
13416+ * Unicode characters: <span class="char">U+0030 DIGIT ZERO ("0")</span>
13417+ * Extended attributes: [<code class="idl">ExampleExtendedAttribute</code>]
13418+ * Variable names in prose and algorithms: |exampleVariableName|.
13419+ * Algorithms use the [=conventions of the ECMAScript specification=],
13420+ including the ! and ? notation for unwrapping completion records.
13421+ * IDL informal syntax examples:
13422+ <pre highlight="webidl" class="syntax">
13423+ interface identifier {
13424+ <mark>/* interface_members... */</mark>
13425+ };
13426+ </pre>
13427+
13428+ (Specific parts of the syntax discussed in surrounding prose are <mark>highlighted</mark>.)
13429+ * IDL grammar snippets:
13430+ <pre class="grammar no-index">
13431+ ExampleGrammarNonTerminal :
13432+ OtherNonTerminal "sometoken"
13433+ other AnotherNonTerminal
13434+ ε // nothing
13435+ </pre>
13436+ * Non-normative notes:
13437+
13438+ Note: This is a note.
13439+
13440+ * Non-normative examples:
13441+ <div class="example">
13442+ This is an example.
13443+ </div>
13444+ * Normative warnings:
13445+ <p class="advisement">
13446+ This is a warning.
13447+ </p>
13448+ * Code blocks:
13449+ <pre highlight="webidl">
13450+ // This is an IDL code block.
13451+ interface Example {
13452+ attribute long something;
13453+ };
13454+ </pre>
13455+ <pre highlight="js">
13456+ // This is an ECMAScript code block.
13457+ window.onload = function() { window.alert("loaded"); };
13458+ </pre>
13459+
13460+
13461+ <h2 id="conformance" class="no-num" oldids="conformant-algorithms">Conformance</h2>
13462+
13463+ Everything in this specification is normative except for diagrams,
13464+ examples, notes and sections marked as being informative.
13465+
13466+ The keywords “must”,
13467+ “must not”,
13468+ “required”,
13469+ “shall”,
13470+ “shall not”,
13471+ “should”,
13472+ “should not”,
13473+ “recommended”,
13474+ “may” and
13475+ “optional” in this document are to be
13476+ interpreted as described in
13477+ <cite><a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to
13478+ Indicate Requirement Levels</a></cite>
13479+ [[!RFC2119]].
13480+
13481+ Requirements phrased in the imperative as part of algorithms (such as
13482+ “strip any leading space characters” or “return false and abort these
13483+ steps”) are to be interpreted with the meaning of the key word (“must”,
13484+ “should”, “may”, etc) used in introducing the algorithm.
13485+
13486+ Conformance requirements phrased as algorithms or specific steps can be
13487+ implemented in any manner, so long as the end result is <dfn lt="processing equivalence" id="dfn-processing-equivalence">equivalent</dfn>. In
13488+ particular, the algorithms defined in this specification are intended to
13489+ be easy to understand and are not intended to be performant. Implementers
13490+ are encouraged to optimize.
13491+
13492+ The following conformance classes are defined by this specification:
13493+
13494+ : <dfn id="dfn-conforming-set-of-idl-fragments" export>conforming set of IDL fragments</dfn>
13495+ :: A set of [=IDL fragments=] is considered
13496+ to be a [=conforming set of IDL fragments=] if, taken together, they satisfy all of the
13497+ must-,
13498+ required- and shall-level
13499+ criteria in this specification that apply to IDL fragments.
13500+ : <dfn id="dfn-conforming-implementation" export>conforming implementation</dfn>
13501+ :: A user agent is considered to be a
13502+ [=conforming implementation=]
13503+ relative to a [=conforming set of IDL fragments=] if it satisfies all of the must-,
13504+ required- and shall-level
13505+ criteria in this specification that apply to implementations for all language
13506+ bindings that the user agent supports.
13507+ : <dfn id="dfn-conforming-ecmascript-implementation" export>conforming ECMAScript implementation</dfn>
13508+ :: A user agent is considered to be a
13509+ [=conforming ECMAScript implementation=]
13510+ relative to a [=conforming set of IDL fragments=] if it satisfies all of the must-,
13511+ required- and shall-level
13512+ criteria in this specification that apply to implementations for the ECMAScript
13513+ language binding.
13514+
1351713515<script>
1351813516 // Grammar
1351913517 (function() {
0 commit comments