- From: Cameron McCormack <cam@mcc.id.au>
- Date: Tue, 23 Nov 2010 12:32:18 +1300
- To: Boris Zbarsky <bzbarsky@MIT.EDU>
- Cc: public-script-coord@w3.org
Cameron McCormack:
> > An alternative would be to just require that the SVGZoomAndPan
> > object exists with these constants as a legacy-required thing, and
> > that for future (other) specs, script authors would just need to
> > look up the constants on the concrete interface being mixed in to.
Boris Zbarsky:
> Which one, though? It's not obvious that looking up Window.something
> is the same as Node.something if we have an interface that mixes into
> both....
They’d be on all prototypes (and interface objects) of the LHS-of-the-
implements-statement interfaces.
mixin interface Frobable {
const long FROB_TYPE_A = 1;
const long FROB_TYPE_B = 2;
void frob(in long type);
};
interface Node { … };
Node implements Frobable;
interface XMLHttpRequest { … };
XMLHttpRequest implements Frobable;
then:
Node.FROB_TYPE_A == 1
Node.prototype.FROB_TYPE_A == 1
XMLHttpRequest.FROB_TYPE_A == 1
XMLHttpRequest.prototype.FROB_TYPE_A == 1
> I don't think this is a blocking issue, but did want to mention it.
It’s perhaps non-obvious for the specification reader that you need to
look these constants up on things other than window.Frobable, true.
> (Well, the other issue is that if you want to override the default
> behavior of a mixin method that mixes into lots of places then you have
> to do it in all those places separately... this may also be ok.)
I think we’re at the point where most people think this is an acceptable
limitation.
--
Cameron McCormack ≝ http://mcc.id.au/
Received on Monday, 22 November 2010 23:32:55 UTC