Shu-yu Guo (2014-10-01T00:09:11.000Z)
Hi all,

In the current draft, I see 2 different places where assigning to an immutable binding ('const') throws an error:

1) Dynamically throwing a TypeError in SetMutableBinding, http://people.mozilla.org/~jorendorff/es6-draft.html#sec-declarative-environment-records-setmutablebinding-n-v-s
2) Statically throwing a Syntax Error in assignment expressions, http://people.mozilla.org/~jorendorff/es6-draft.html#sec-assignment-operators-static-semantics-early-errors

1) throws only in strict mode code, while 2) throws regardless. 2) is also best effort; seems to be implementation-dependent what "can statically determine" entails.

Is the intention that assigning to consts silently nops if the implementation cannot determine the assignment to be to a const statically, in non-strict code, but implementations *should* make a best effort to report such cases eagerly, regardless of strictness? Seems kind of odd to me; perhaps I am misreading?

-- 
shu
domenic at domenicdenicola.com (2014-10-15T18:40:09.927Z)
In the current draft, I see 2 different places where assigning to an immutable binding (`const`) throws an error:

1. Dynamically throwing a `TypeError` in [SetMutableBinding](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-declarative-environment-records-setmutablebinding-n-v-s)
2. Statically throwing a `SyntaxError` in [assignment expressions](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-assignment-operators-static-semantics-early-errors)

1\. throws only in strict mode code, while 2\. throws regardless. 2\. is also best effort; seems to be implementation-dependent what "can statically determine" entails.

Is the intention that assigning to `const`s silently nops if the implementation cannot determine the assignment to be to a `const` statically, in non-strict code, but implementations *should* make a best effort to report such cases eagerly, regardless of strictness? Seems kind of odd to me; perhaps I am misreading?