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 es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss