Hi!
I noticed that copying an object with the spread operator may produce another shape:
```js
const x = { a: 1, b: 2 };
const y = {}; y.a = 1; y.b = 2;
const xCopied = { ...x };
const yCopied = { ...y };
console.log(%HaveSameMap(x, xCopied)); // FALSE
console.log(%HaveSameMap(y, xCopied)); // true
console.log(%HaveSameMap(y, yCopied)); // true
```
According to the previous example, the spread operator is simply a syntaxic sugar for:
```
const xCopied = {}; z.a = xCopied.a; xCopied.b = x.b;
```
I am wondering if there is any plan to improve it by copying the shape of the spreaded object:
```
const x = { a: 1, b: 2 };
const y = {}; y.a = 1; y.b = 2;
const xCopied = { ...x };
const yCopied = { ...y };
console.log(%HaveSameMap(x, xCopied)); // expected: TRUE
console.log(%HaveSameMap(y, yCopied)); // true
```
Thanks!