Cloning WeakSet/WeakMap
My understanding is that cloning a WeakSet into a Set would remove all its properties related to security and garbage collection.
The properties related to security and garbage collection of WeakSet are based on the fact that its elements are not enumerable by someone who would only be holding a reference to the WeakSet. If you want to "clone" a WeakSet into a Set it means you have an expectation that the set of elements are deterministically enumerable.
WeakSets and Sets, despite there close name and API, are used in different circumstances.
David
2018-02-09 9:53 GMT-05:00 Michał Wadas <michalwadas at gmail.com>:
I think this is referring to cloning a WeakSet into another WeakSet
Thomas Grainger
English isn't my native language, so I probably made a mistake.
I was asked to add WeakSet.prototype.union(iterable) creating new WeakSet instance including data from both iterable and original WeakSet.
2018-02-09 10:05 GMT-05:00 Michał Wadas <michalwadas at gmail.com>:
English isn't my native language, so I probably made a mistake.
oh ok, sorry for my misinterpretation
I was asked to add WeakSet.prototype.union(iterable) creating new WeakSet instance including data from both iterable and original WeakSet.
ok, I don't have an opinion on this idea
Possibly a silly question, but...
What happens re garbage collection if you have two WeakSets referencing the same object? Do they each block that object's removal?
Why would they? You can put single object in infinite amount of WeakSets and it won't prevent it's garbage collection.
I was asked to include a way to clone WeakSet in Set builtins proposal. Is there any consensus on security of such operation?
Michał Wadas