On Dec 12, 2012, at 10:23 AM, John J Barton wrote: > > > > On Wed, Dec 12, 2012 at 10:18 AM, Allen Wirfs-Brock <[email protected]> > wrote: > > On Dec 12, 2012, at 10:05 AM, Brandon Benvie wrote: > >> All the Object functions that operate on multiple properties are currently >> specified using pendingException which reports the first thrown exception >> after going through all the properties. defineProperties, freeze, etc. > > In, ES6. This is a breaking (hopefully nothing) change from ES5 that was > suggested by Mark Miller. > > The desire is to decrease the non-determinism that an early throw introduces. > > > How can multiple calls to Object.mixin with identical state result in > different results?
Because the order that the source properties are visited is unspecified. It can differ among implementations and in theory could even differ within a single implementation. > > In the ES6 approach all property updates that can occur will occur, before > the exception is thrown instead of leaving the object in a less well defined > partially updated state. > > If an exception is thrown because of an error in Object.mixin, what state is > the object in? Will the spec define that state? Yes, all property additions (to the target object) that can complete will complete. Allen > > jjb
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

