Cloning WeakSet/WeakMap

# Michał Wadas (6 years ago)

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

# David Bruant (6 years ago)

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>:

# Thomas Grainger (6 years ago)

I think this is referring to cloning a WeakSet into another WeakSet

Thomas Grainger

# Michał Wadas (6 years ago)

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.

# David Bruant (6 years ago)

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

# Michael Luder-Rosefield (6 years ago)

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?

# Michał Wadas (6 years ago)

Why would they? You can put single object in infinite amount of WeakSets and it won't prevent it's garbage collection.