- From: Cameron McCormack <cam@mcc.id.au>
- Date: Mon, 17 Jun 2013 16:42:07 +1000
- To: Boris Zbarsky <bzbarsky@MIT.EDU>
- CC: Travis Leithead <travis.leithead@microsoft.com>, "public-script-coord@w3.org" <public-script-coord@w3.org>
interface A { void f(); }; interface B { }; B implements A; interface C { }; C implements A; Without seeing any good use cases for having B.prototype.f be able to be applied to a C (or an A that doesn't implement B), I've clarified that these Function objects are all distinct and can only be applied to objects that implement the interface that corresponds to the interface prototype object the property is on. That means: * A.prototype.f != B.prototype.f && A.prototype.f != C.prototype.f && B.prototype.f != C.prototype.f * A.prototype.f.call(b) succeeds * B.prototype.f.call(a) throws * B.prototype.f.call(c) throws That's slightly different from my last mail on the topic, where I thought it would make sense to have A.prototype.f.call(b) throw too, but looking at this issue afresh leads me to believe that the interface you grab the Function from should indicate the set of objects that it can be applied to. http://dev.w3.org/cvsweb/2006/webapi/WebIDL/v1.xml.diff?r1=1.73;r2=1.74;f=h http://dev.w3.org/cvsweb/2006/webapi/WebIDL/Overview.xml.diff?r1=1.623;r2=1.624;f=h
Received on Monday, 17 June 2013 06:45:48 UTC