On Wed, Dec 12, 2012 at 10:44 AM, Allen Wirfs-Brock <al...@wirfs-brock.com>wrote:
> > On Dec 12, 2012, at 10:23 AM, John J Barton wrote: > > > > > On Wed, Dec 12, 2012 at 10:18 AM, Allen Wirfs-Brock <al...@wirfs-brock.com > > 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. > And I assume then that the exception thrown will be 1) standardized, 2) specify the properties that are undefined on the target as a result of exceptions, and 3) provide those exceptions. That seems to be what we need to have any chance to use this feature. jjb
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss