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

Reply via email to