On Jan 25, 2009, at 12:24 AM, David-Sarah Hopwood wrote:

Brendan Eich wrote:
On Jan 24, 2009, at 4:51 PM, Mark Miller wrote:

The current spec language allows the global eval property to be, in
effect, either mutable or not, benefiting no one. If we need to allow correct programs to be able to mutate it (in an initial environment in
which it has not yet been frozen), then we should change the spec to
require it to be initially mutable, so that correct programs can rely
on this.

ES3 already requires eval to be a mutable global property, [...]

No, it does not, because attempting to assign global 'eval' may instead
throw EvalError (ES3 section 15.1.2.1).

Right you are -- thanks. That makes it a standard option for implementations, unlike the option of silently failing to assign to eval due to a ReadOnly attribute (what I took Mark to be proposing if eval assignment were not something required for compatibility).

The fact remains that no implementation I know of throws EvalError on assignment to the eval property of the global object. The spec words allowing EvalError to be thrown are probably dead letters.

IIRC, Opera implementations in the past threw EvalError for indirect evals (not sure about assignment to eval), but doing so was too web- incompatible. Cc'ing Chris Pine to confirm.

/be
_______________________________________________
Es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to