On May 17, 2009, at 5:05 PM, David-Sarah Hopwood wrote:
Brendan Eich wrote:
On May 17, 2009, at 12:43 PM, Mark S. Miller wrote:
On Sun, May 17, 2009 at 11:00 AM, Brendan Eich <bren...@mozilla.com>
wrote:
Analogous to direct vs. indirect eval in ES5 (15.1.2.1.1), there
is no
purely syntactic specification for what Neil proposes. A runtime
check is required. So I don't see why you are focusing only on
syntax here.
I don't follow. What runtime check? For the eval operator, the
runtime
check is whether the value of the eval variable is the original
global
eval function. It makes no sense to have a corresponding global
yield
function value.
If we reserve yield then you're right. One of the appealing (at
least to
me) aspects of Neil's suggestion was that it would avoid opt-in
versioning required by reserving yield (which is used in extant web
content, or was when we tried reserving it without opt-in
versioning --
the particular use was as a formal parameter name, used as a flag
not a
function).
Oh, right. We've been talking at cross-purposes. I assumed that you
were
suggesting that 'yield' should be contextually reserved.
Oh, I should have seen that. Thanks for clarifying.
That is what
I've been saying couldn't work due to ambiguities.
RIght, no sane way to reserve yield or another keyword contextually
(e.g., only in callee position; "contextually" in the sense of get and
set in object initialisers).
In JS1.7+, we reserve yield with opt-in version selection via <script
type="...;version=1.7"> and the like. In such a script, yield and let
are reserved the same way the other identifiers are, which is how ES5
does it (with an extension we've discussed -- the extension where a
reserved identifier can be used after 'function' -- but that's not
interesting for this discussion).
/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss