- From: Cameron McCormack <cam@mcc.id.au>
- Date: Tue, 23 Jul 2013 17:33:59 +1000
- To: Boris Zbarsky <bzbarsky@MIT.EDU>
- CC: "public-script-coord@w3.org" <public-script-coord@w3.org>
Boris Zbarsky wrote: > The grammar for callbacks allows optional arguments. But the processing > model in > http://dev.w3.org/2006/webapi/WebIDL/#es-invoking-callback-functions > (which references the one in > http://dev.w3.org/2006/webapi/WebIDL/#es-user-objects ) doesn't really > describe what to do with such arguments. I would like to propose a > processing model as follows: > > 1) Start with a list of n IDL argument values idlarg_{0 ... n-1}. This > assumes that we have a way to represent a "not passed" optional value as > an IDL type, which I believe we have agreed we need anyway. > 2) Set argcount to n. > 3) Set i to n-1. > 4) While i >= 0 and the idlarg_i is not passed and the > corresponding argument of the IDL callback type is optional: > a) Set argcount to argcount - 1 > b) Set i to i - 1 > 5) Continue with the algorithm as currently defined, but using > argcount, not n, as the number of arguments. > > We will also need to define that converting a "not passed" value to an > ECMAScript value produces undefined, I think. > > Thoughts? > > -Boris > > P.S. I'm implementing the above in Gecko anyway, because it's needed to > implement window.onerror. But I figured I'd at least sanity-check it. That sounds reasonable to me. I've allowed "missing" optional argument values in the middle of the argument list, as we've done for operations. Also, I don't think we need to handle the case where a "missing" value is passed and the argument is not optional, since that shouldn't be allowed. http://dev.w3.org/cvsweb/2006/webapi/WebIDL/Overview.xml.diff?r1=1.645;r2=1.646;f=h http://dev.w3.org/2006/webapi/WebIDL/#es-invoking-callback-functions
Received on Tuesday, 23 July 2013 07:34:34 UTC