In ES3:

10.2.1  Global Code
The scope chain is created and initialised to contain the global
object and no others.
Variable instantiation is performed using the global object as the
variable object and using property attributes { DontDelete }.
The this value is the global object.

I was puzzled by the DontDelete in the above spec language. Firefox
and Safari seems to disagree:



'foo' in window
false

var foo = 3;

'foo' in window
true

delete window.foo
true

'foo' in window
false


I prefer FF and Safari's behavior to the ES3 specified behavior. Which
should ES3.1 and ES4 codify as correct? Should we drop the
"DontDelete" in the spec language? (Concretely, the current ES3.1
draft reflects the meaning of the ES3 spec by saying that the
[[Dynamic]] attribute is false. I'm asking whether we should change
this to true.)


-- 
    Cheers,
    --MarkM
_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to