On Wed, Oct 1, 2014 at 9:15 AM, Allen Wirfs-Brock <[email protected]> wrote:
> > On Oct 1, 2014, at 9:05 AM, Mark S. Miller wrote: > > Good point. If we can require all such assignments to be rejected > statically, why is a runtime assignment to a const variable even possible? > Can't we just assert that this cannot occur? > > > The runtime cases I meant are the ones you mentioned. Sloppy with or eval > dynamically shadowing a sloppy a [[Set]] reference to a const binding. > Can't be a early error, should be a runtime error. > Although it is a bit late to suggest it ;) ... Couldn't we have "with" and sloppy direct eval ignore/skip const and let bindings? Then these errors could always be early. I have no argument with the answer "too late", but still curious if there's another reason. > > Allen > > > > > > > On Wed, Oct 1, 2014 at 8:59 AM, Allen Wirfs-Brock <[email protected]> > wrote: > >> >> On Oct 1, 2014, at 8:39 AM, Mark S. Miller wrote: >> >> ... >> >> I was with you until you got to the following point >> >> > >> > If there is an intervening "with" or sloppy direct eval, then there is >> not a statically apparent assignment to a const variable. Since this can >> only occur in sloppy code anyway, it seems more consistent with the rest of >> sloppy mode for this failed assignment to be silent, rather than >> dynamically throwing an error. >> > >> >> const is a new kind of declaration unlike any declaration form that >> previous existed in ES, so Ii don't think its handling introduces any >> legacy consistency issues. If somebody is using const, regard less of >> mode, they pretty clearly expect assignments to any const bindings to be >> illegal. And, I don't think any body wants new silent failure errors, even >> in sloppy mode. The most consistent thing is for runtime detected >> assignments to const bindings to always be noisy errors. Early where >> possible, at runtime in the rest of the cases. >> > -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

