Le 03/08/2013 02:59, Brendan Eich a écrit :
David Bruant wrote:
Le 30/07/2013 00:12, Brendan Eich a écrit :
๏̯͡๏ Jasvir Nagra wrote:
Unless I am really misreading your examples, I do not think the new
proposal overcomes the problems of
http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null. If
Function.setTypeOf dynamically affects subsequent use of typeof,
then action-at-a-distance problems will persist. If one library
adopts one convention regarding typeof null and another a different
one, then these libraries will not be useable together.
Right, so don't do that
This is asking to never use any currently existing library. Fixing
typeof null doesn't way enough and by a large factor.
s/way/do/ ?
s/way/weigh. I felt something was wrong with this sentence, but couldn't
put the finger on it.
You could be right. We know lexical composes best, so I'm reworking
the proto-strawman based on Jasvir's feedback.
for non-null too, I hope? Otherwise this is asking for non-compatible
libraries for the built-in new value types
There's no assumption of hostile code here, as usual you have to
trust what you include into your single-frame/window (realm) TCB, etc.
"This is a human-factors / phenomenology->likelihood problem."?
Sorry, you can't echo my words at me and win this argument. JS != SES.
We do not assume mutual suspicion among same-origin and transcluded
<script src=> scripts. Haven't for 17 years, won't start now.
I understand now how I had misunderstood your words (in the context you
put them and in this context where I mistakenly reused them). In any
case, they applied only for the dynamic Function.setTypeOf.
Le 30/07/2013 01:04, Brendan Eich a écrit :
Allen Wirfs-Brock wrote:
I would argue that Functioun.setTypeOf(null, "null") is actually a
different kind of beast and one that you would want to be
lexically scoped. The difference is that it is changing the
meaning of a pre-existing operator applied to a pre-existing
value. This reinterpretation really does need to be scoped only to
code that wants to see that change.
Ok, good feedback between you and jasvir. This suggests using the
syntax I mooted:
typeof null = "null"; // lexically rebind typeof null
new code here
typeof null = "object"; // restore for old code after
I'm not sure I understand how it's different from Function.setTypeOf.
The idea here is lexical scope, so the special forms compile to
bindings that lexically alter typeof results, but library code scoped
outside this extent is unaffected by these special forms.
oh ok. That makes much more sense now. Then the restore step is optional.
I don't see the benefit of that against a file/function-wise directive.
For both null and the new value types, I'm still unclear on why could
devs would choose something different than the default. I feel the
incentives can only way in favor of keeping the default. I'm interested
in what other devs think.
David
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss