Re: [heycam/webidl] Base sequences, dictionaries, and records on Infra types (#317)

jyasskin commented on this pull request.



> @@ -4104,6 +4107,10 @@ the value to use for the dictionary member when passing a value to a
 not have a specified value.  Dictionary members with default values are
 always considered to be present.
 
+An [=ordered map=] with string [=map/keys=] can be implicitly treated as a dictionary value of a
+specific dictionary |D| if all of its [=map/entries=] correspond to dictionary members, in the

Do you want to also enforce `required` fields here?

> @@ -5662,7 +5669,10 @@ identifies a [=dictionary=] is used to refer to
 a type that corresponds to the set of all dictionaries that adhere to
 the dictionary definition.
 
-There is no way to represent a constant dictionary value in IDL.
+The literal syntax for [=ordered maps=] may also be used to represent dictionaries, when it is

\o/

> @@ -5792,22 +5804,20 @@ The [=type name=] of a sequence type
 is the concatenation of the type name for |T| and
 the string “Sequence”.
 
+Any [=list=] can be implicitly treated as a sequence, as long as it contains only [=list/items=]

Maybe "… as a `sequence<T>`, … that are of type `T`."? 

>  
-However, there is no way to represent a constant record value in IDL.
+A <dfn export>record type</dfn> is a parameterized type whose values are [=ordered maps=] with
+[=map/keys=] that are instances of |K| and [=map/values=] that are instances of |V|. |K| must be one
+of {{DOMString}}, {{USVString}}, or {{ByteString}}. The order of a record's [=map/entries=] is

We can probably drop the "The order of a record's entries ..." sentence now. I feel like that's obvious from it being an ordered map.

> @@ -5822,6 +5832,11 @@ Records must not be used as the type of an [=attribute=] or
 The [=type name=] of a record type is the concatenation of the type
 name for |K|, the type name for |V| and the string “Record”.
 
+Any [=ordered map=] can be implicitly treated as a record, as long as it contains only

Similar to sequence, `as a `record<K, V>` might be clearer, and might let you omit the "Additionally..." sentence since the restriction on *K* was already stated above.

> @@ -7415,17 +7430,17 @@ ECMAScript <emu-val>Object</emu-val> values.
         [=ECMAScript/throw=] a <emu-val>TypeError</emu-val>.
     1.  Let |result| be a new empty instance of <code>[=record=]&lt;|K|, |V|></code>.
     1.  Let |keys| be [=?=] |O|.\[[OwnPropertyKeys]]().
-    1.  Repeat, for each element |key| of |keys| in [=List=] order:
+    1.  Repeat, [=list/for each=] element |key| of |keys|:

s/Repeat, // I think.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/heycam/webidl/pull/317#pullrequestreview-23325797

Received on Wednesday, 22 February 2017 20:49:56 UTC