actually, since `Object.getOwnPropertyDescriptor` accepts `Symbols` too as second argument, the equivalent with current ES6 would be even more prolix than that
```javascript var shallowCopy = Object.create( Object.getPrototypeOf(originalObject), Object.getOwnPropertyNames(originalObject).concat( Object.getOwnPropertySymbols(originalObject) ).reduce(function (descriptors, name) { descriptors[name] = Object.getOwnPropertyDescriptor( originalObject, name ); return descriptors; }, {}) ); ``` assuming Symbols will be definable through descriptors ... all this VS ```javascript var shallowCopy = Object.create( Object.getPrototypeOf(originalObject), Object.getOwnPropertyDescriptors(originalObject) ); ``` which I believe is a win. Thanks On Sun, Mar 2, 2014 at 5:01 PM, Andrea Giammarchi < andrea.giammar...@gmail.com> wrote: > I wonder if by any chance this could sneak into ES6 ... we have only > singular version here: > > https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.getownpropertydescriptor > > **rationale** > The easiest way to create a shallow copy of a generic object could be: > > ```javascript > var shallowCopy = Object.create( > Object.getPrototypeOf(originalObject), > Object.getOwnPropertyDescriptors(originalObject) > ); > ``` > > Today what we have to do this instead: > > ```javascript > var shallowCopy = Object.create( > Object.getPrototypeOf(originalObject), > Object.getOwnPropertyNames(originalObject).reduce( > function (descriptors, name) { > descriptors[name] = Object.getOwnPropertyDescriptor( > originalObject, name > ); > return descriptors; > }, {}) > ); > ``` > > I see latter pattern as sort of unnecessary overhead that could be also > much faster in core and polyfilled in the meanwhile. > > Thoughts ? > > Cheers > > > > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss