- From: Cameron McCormack <cam@mcc.id.au>
- Date: Wed, 07 Mar 2012 10:50:22 +1100
- To: Anne van Kesteren <annevk@opera.com>
- CC: Marcos Caceres <w3c@marcosc.com>, public-script-coord@w3.org, Boris Zbarsky <bzbarsky@mit.edu>
Cameron McCormack: >> Regardless, I don't think we want to allow [TreatNonCallableAsNull] >> behaviour elsewhere. It's not consistent with how type conversion is >> done elsewhere. Anne van Kesteren: > Okay, so you > > 1. Only want to use [TreatNonCallableAsNull] for event handler attributes Yes. > 2. Favor consistency of type conversion over event handler attribute > consistency When it comes to using [TreatNonCallableAsNull] for things other than event handler attributes, yes. > I and some others argue for > > A. Only want to use [TreatNonCallableAsNull] for event handler attributes > B. Favor consistency of event handler attributes Consistency among event handler attributes? That's my preference too. But not Boris'. Anyway, the strongest objection I have in this issue is against the use of [TreatNonCallableAsNull] for things other than event handler attributes. My opinion on whether [TreatNonCallableAsNull] should be used only for specific event handler attributes or for all of them is a weak one. > So it seems we both only want [TreatNonCallableAsNull] for event handler > attributes, but the disagreement is about whether all event handler > attributes should be the same IDL-wise. So lets focus on that (maybe > issue a CfC?) because I think it would be really great if > > [TreatNonCallableAsNull] attribute Function? oncanplaythrough; > > [Callback=FunctionOnly, NoInterfaceObject] > interface Function { > any call(any... arguments); > }; > > could become > > eventhandler oncanplaythrough; > > with "eventhandler" being a defined type in IDL reserved for members > starting with "on" having equivalent semantics to other members starting > with "on" throughout the platform. [Callback=FunctionOnly] is gone from the spec, so what you currently do have to write is: callback Function = any (any... arguments); typedef [TreatNonCallableAsNull] Function? eventhandler; in one place, say DOM Core, and then all definitions of event handler attributes can become attribute eventhandler onblah; I am sympathetic to having callback Function = any (any... arguments); built-in, in fact I would be happy to include that to the Common Definitions section at the bottom of the spec, if you like. > On top of that you still need the boilerplate language from HTML (which > cannot move to DOM last time I checked because some dependencies), but > at least the IDL will look clean, [TreatNonCallableAsNull] will not > accidentally be used elsewhere, and one-time typedef's are not needed > either. I don't see what's so bad about the one-time typedef. Typedefs exist to avoid repetition like that! Defining "eventhandler" as a built-in type in the IDL just seems like an abstraction violation to me.
Received on Tuesday, 6 March 2012 23:51:08 UTC