up ?
On Sun, Mar 2, 2014 at 5:43 PM, Andrea Giammarchi < [email protected]> wrote: > Brandon I take your answer as +1, thanks. > > I've also "gisted" a possible/basic polyfill here: > https://gist.github.com/WebReflection/9317065 > > Cheers > > > On Sun, Mar 2, 2014 at 5:16 PM, Andrea Giammarchi < > [email protected]> wrote: > >> 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 < >> [email protected]> 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 [email protected] https://mail.mozilla.org/listinfo/es-discuss

