Object.getOwnPropertyDescriptors(O) ? // plural
Andrea Giammarchi
andrea.giammarchi at gmail.com
Tue Mar 4 09:30:08 PST 2014
Apparently this triggered an @rwaldron which seems to be super-effective
In agenda for April's meeting.
Thanks
Sent from my Windows Phone
------------------------------
From: C. Scott Ananian <cscott at cscott.net>
Sent: 3/4/2014 6:16
To: Andrea Giammarchi <andrea.giammarchi at gmail.com>
Cc: es-discuss at mozilla.org list <es-discuss at mozilla.org>
Subject: Re: Object.getOwnPropertyDescriptors(O) ? // plural
Have you filed a bugzilla ticket for this? That seems the best way to
ensure it will get discussed at the next TC39 meeting and resolved one way
or the other.
--scott
On Mar 3, 2014 8:44 PM, "Andrea Giammarchi" <andrea.giammarchi at gmail.com>
wrote:
> up ?
>
>
> On Sun, Mar 2, 2014 at 5:43 PM, Andrea Giammarchi <
> andrea.giammarchi at gmail.com> 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 <
>> andrea.giammarchi at gmail.com> 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 <
>>> andrea.giammarchi at 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 at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140304/e9a9137a/attachment.html>
More information about the es-discuss
mailing list