- From: Cameron McCormack <cam@mcc.id.au>
- Date: Tue, 23 Aug 2011 15:31:07 +1200
- To: David Flanagan <dflanagan@mozilla.com>
- CC: public-script-coord@w3.org
Hi David. Thanks for your comments. On 29/07/11 11:05 AM, David Flanagan wrote: > I've got the following comments on the LC draft (prompted by Alex > Russell's recent email): > > 1) In §4.3.5 and §4.3.6 it might be helpful to add a note pointing out > that these attributes create factory functions rather than true > constructors, and that it is unnecessary and potentially inefficient to > use the new keyword with them. (Or perhaps the notes should go in > §4.5.1.1 and §4.5.2 instead) Does that mean you consider this native JS function not to be a "true constructor": function F() { return { }; } ? Although with some implementations it might be less efficient to use new to invoke these constructors, I don't think it's going to be significant. Implementations could well optimise these cases anyway. I'm not sure these notes would be useful. > 2) Step 5 in §4.5.2 defines t<sub>0</sub> through t<sub>n-1</sub>, but > then they are never used in the algorithm. I suspect that step 6 should > change "to an IDL value" to "to an IDL value of type t<sub>i</sub>". Agreed. > 3) §4.5.2 doesn't say anything about the prototype property of a named > constructor function. Shouldn't it have one, and shouldn't it have the > same value as the prototype property of the interface object? (Note that > FF and Chrome do not do this for Image(), but Safari does) Safari/IEPP: Image.prototype == HTMLImageElement.prototype Chrome: Image.prototype.[[Prototype]] == HTMLImageElement Firefox: Image.prototype.[[Prototype]] == HTMLElement.prototype Opera: Image.prototype === undefined I agree, the Safari/IE behaviour makes most sense to me. Here's the change: http://dev.w3.org/cvsweb/2006/webapi/WebIDL/Overview.html.diff?r1=1.350;r2=1.351;f=h Could you please indicate whether this resolution is acceptable. Thanks, Cameron
Received on Tuesday, 23 August 2011 03:31:41 UTC