Object has this unfortunate complication of prototypes, i.e.:
```
const objA = {foo: 1, bar: 2};
const objB = Object.create(objA);
equals(objA, objB) === ?
```
And also there is metadata on each property that can vary (one object has a
property which is configurable, and the other has the same pr
] On Behalf Of Kevin
Barabash
Sent: Monday, November 14, 2016 23:51
To: Eric Devine
Cc: es-discuss
Subject: Re: Object.equals() and Object.clone()
I didn't know about structured clone so I looked it up. It looks pretty
promising. As for checking if two things are equal, maybe it makes
I didn't know about structured clone so I looked it up. It looks pretty
promising. As for checking if two things are equal, maybe it makes sense
for objects to define their own `.equals(other)` methods.
https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
I guess it could throw if it's unable to clone something. This would
include *any* class without `Symbol.clone`. The error messages would need
to be outstanding for it to be practical. Like showing the path to the
thing that can't be cloned and the name of the constructor.
On Mon, Nov 14, 2016 at
I think you'd definitely need to call the constructor for classes because
of scoped variables (e.g. scoped weakmap for private properties).
I would like a way to compare simple objects like identical arrays though.
On Mon, Nov 14, 2016 at 7:58 PM, Frankie Bagnardi
wrote:
> It's pretty hard to d
How about beginning with the HTML structured clone algorithm, and a
`Symbol.clone` property to allow an object to optionally define it's own
cloning behavior?
On Mon, Nov 14, 2016 at 9:02 PM, Isiah Meadows
wrote:
> I agree. Also, consider iterables. Should their `Symbol.iterator` method
> be cal
I agree. Also, consider iterables. Should their `Symbol.iterator` method be
called? There's no obvious behavior for the details, and people's opinions
differ on what should be correct.
On Mon, Nov 14, 2016, 20:58 Frankie Bagnardi wrote:
It's pretty hard to decide how these behave, specifically w
It's pretty hard to decide how these behave, specifically with custom
classes. Focusing on Object.clone...
- with classes do you call the constructor, and with what arguments?
- HTMLElement and sub classes can't be constructed directly, what happens
with them?
- do you copy internal properties? th
It would be nice if deep equality checking and deep cloning of objects was
included in the standard library. Has there been any proposals around
including these in the past?
– Kevin
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla
9 matches
Mail list logo