- From: Brendan Eich <brendan@mozilla.org>
- Date: Thu, 8 Oct 2009 10:07:34 -0700
- To: Anne van Kesteren <annevk@opera.com>
- Cc: "Maciej Stachowiak" <mjs@apple.com>, "Cameron McCormack" <cam@mcc.id.au>, public-script-coord@w3.org
- Message-Id: <FA63C4B4-A8AA-4F84-ADB9-0CC335ED24EA@mozilla.org>
On Oct 8, 2009, at 7:50 AM, Anne van Kesteren wrote: > On Thu, 08 Oct 2009 16:34:40 +0200, Brendan Eich > <brendan@mozilla.org> wrote: >> On Oct 8, 2009, at 1:00 AM, Maciej Stachowiak wrote: >>> Web IDL just specifies the notion of callable interfaces, not >>> callable collections per se. >> >> We don't want a honey trap in WebIDL, or particular bears putting >> their noses in it in HTML5. > > Nonetheless I think Maciej is right. WebIDL could discourage use of > course. Though I guess you are saying we might not need them at all, > ever. Does that work for document.all? It turns out document.all is callable. Whether this is necessary for IE compatibility on the Web, I'm not sure. But let's say document.all needs to be callable, if emulated when used without object detection. Our recommendation from the meeting was that "caller" go in an optional-but-normative part of the WebIDL spec, not in the required-and-normative parts. We aim to get rid of what is not needed, and put bad old forms that we can't get rid of in penalty boxes. This is in large part social engineering, since in any large and layered system if you don't do this, you wind up with bad patterns proliferating like weeds. >> Great, I hope Anne agrees. Sicking is carrying the torch on this >> issue >> to HTML5, IIRC but here we are in public-script-coord -- it would be >> excellent if we could resolve this promptly. > > I asked how exactly IE envisions to remove support for them on this > list. I.e. if it is behind a version switch. I've yet to hear back, > but I think that if either IE or WebKit removes support for them we > can do so too. Allen of Microsoft heard your question; it's probably best directed to Travis Leithead. I'm not sure anyone at Microsoft can promise to remove things at this point, but it may be possible with a version switch. > However that somewhat depends on whether IE keeps support behind a > version switch because then sites might do the X-UA-Compatible trick > and will still work in IE while not in Opera. That'd be annoying. > (I'm not up in the details on which sites rely on this exactly > unfortunately.) X-UA-Compatible considered harmful. Ok, back to striking a balance between providing better forms that supplant bad older ones, rather than simply codifying (if not building on) bad patterns. An idea at the meeting from Mark Miller, you won't be surprised by it, is to make undetected document.all emulation not occur in ES5 strict mode ("use strict"). If you opt into ES5 strict mode in your JS, you can't use document.all. I like this idea because I don't think new code should use document.all, and old code that does use it is unlikely to be retrofitted with "use strict". There is a risk in coupling to strict mode in this way, turning off legacy misfeatures based on a JavaScript pragma. But it beats adding another opt-in mechanism. And it cleans up JS-level semantics: no magic context-sensitive host-object document.all reification, or ES-spec-violating ToBoolean(document.all) -> false. Reactions? /be
Received on Thursday, 8 October 2009 17:08:51 UTC