Skip to content

Commit 0da63cd

Browse files
domenictobie
authored andcommitted
Move conventions and conformance to appendices (#167)
1 parent 9ea873f commit 0da63cd

File tree

2 files changed

+2714
-2724
lines changed

2 files changed

+2714
-2724
lines changed

index.bs

Lines changed: 111 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -290,119 +290,6 @@ have been written in prose. In addition, precise language bindings
290290
for 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]]
1351513402
for 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

Comments
 (0)