Object.define ==> Object.mixin??

Andrea Giammarchi andrea.giammarchi at gmail.com
Wed Dec 12 09:50:26 PST 2012


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
<brandon at brandonbenvie.com>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 ?
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20121212/a0d3c9ac/attachment.html>


More information about the es-discuss mailing list