a single property from a mixin that cannot be defined could compromise entirely the behavior so I would actually throw instantly then I believe no try catch is even necessary there, correct?
On Wed, Dec 12, 2012 at 9:42 AM, Brandon Benvie <[email protected]>wrote: > Ah yes errors. It should probably have similar semantics to how > defineProperties works now...attempting each property and holding errors > until the end, no? Same for assign. > > function mixin(target, source){ > if (Type(target) !== 'Object') throw new TypeError ("target must be an > object"); > if (Type(source) !== 'Object') throw new TypeError("source must be an > object"); > > var error; > Object.keys(source).forEach(function(key){ // or getOwnPropertyNames? > try { > Object.defineProperty(target, key, > Object.getOwnPropertyDescriptor(source, key)); > } catch (e) { > error || (error = e); > } > }); > > if (error) throw error; > return target; > } > > On Wednesday, December 12, 2012, Andrea Giammarchi wrote: >> >> >> also thinking about try/catch to avoid mixin overwrite ... I believe it's >> OK if that throws an error but then it should throw regardless if the >> target object had already that property defined ? >> >>
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

