- From: Cameron McCormack <cam@mcc.id.au>
- Date: Thu, 01 Sep 2011 17:12:31 +1200
- To: Allen Wirfs-Brock <allen@wirfs-brock.com>
- CC: timeless <timeless@gmail.com>, public-script-coord@w3.org
On 31/08/11 3:50 AM, Allen Wirfs-Brock wrote: > That sounds like it would discourage patterns like this: > > [NoInterfaceObject] > interface SomeOpaqueType {}; > > interface SomeResourceManager { > SomeOpaqueType getSomeResource(...); > void operateUsingResource(in SomeOpaqueType); > } > > > I don't see why you would want to discourage this as it is a well > understood design pattern. For example see, > http://web.cecs.pdx.edu/~antoy/flp/patterns/#Opaque%20Type > <http://web.cecs.pdx.edu/~antoy/flp/patterns/#Opaque Type> My question here would be why make SomeOpaqueType [NoInterfaceObject]? The original interface would need to be [Callback] also, so that JS objects could be considered "user objects" of that interface, so the above would be safe from timeless' wording. I think anyway that the guidance in the spec should be worded more along the lines of: When writing an API that uses an ECMAScript object as a "property bag" like function argument, specification authors are recommended to use IDL dictionaries to handle these rather than a [Callback,NoInterfaceObject] interface with attributes defined on it.
Received on Thursday, 1 September 2011 05:16:21 UTC