Mark S. Miller (2014-06-19T16:02:05.000Z)
dignifiedquire at gmail.com (2014-06-23T17:43:24.135Z)
Yes. For both strict and sloppy, for both static/literal and dynamic/computed, duplicate property names/symbols in object literals are no longer an error. Instead, in left-to-right order, each cause the equivalent of a [[DefineOwnProperty]] on the new object, so that rightward definitions silently overwrite conflicting leftward definitions. This should not result in any change to sloppy literals. It just makes strict literals, regarding this issue alone, act like sloppy literals. (Once we have a way to express that a property is to be initialized to a non-configurable state, we'll need to revisit this. But that's after ES6.) Since the object is a new normal object, i.e., not exotic and especially not a proxy, no one should ever be able to observe the object until its initialization is complete. If linters want to warn about statically determined duplicate properties, that is of course their business, and is fine.