> On Oct 1, 2014, at 9:05 AM, Mark S. Miller <[email protected]> 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?

You mean duplicate assignment? IIRC the problem is code that does

const x;
x=blah;

or 

if (foo)
    const x = bar
else
    const x = wiffle

etc

Whether this is actually still something that exists - I recall in JSC many 
years ago we had to allow:
for (......) {
    const x = ...
    ...
}

Even though that is technically duplicate assignment.

But i guess that last case is less relevant as const is now always block scoped 
isn't it?

--Oliver
   

> 
> 
> On Wed, Oct 1, 2014 at 8:59 AM, Allen Wirfs-Brock <[email protected] 
> <mailto:[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.
> 
> Allen
> 
> 
> 
> 
> -- 
>     Cheers,
>     --MarkM

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

Reply via email to