Questioning WeakMap.prototype.clear (was: Private symbols as WeakMap sugar)

David Bruant bruant.d at
Mon Jan 21 03:04:13 PST 2013

Le 21/01/2013 11:58, David Bruant a écrit :
> Before the clear method, weakmaps had the following property: "you can 
> only modify a weakmap entry if you have the key". This property isn't 
> true anymore with .clear. This may be considered as abusive ambient 
> authority.
Let's see how this feature came to appear:
Jason Orendorff talked about Map.prototype.clear [1] (Oct 22nd). Seen as 
a good idea. No discussion on whether it's a good idea for WeakMaps 
specifically. Nicholas Zakas briefly mentions it in November [2]. No one 
replied to it specifically. I haven't seen any discussion about it in 
meeting notes [3]. A brief mention of Set/Map.prototype.clear [4] as a 
review of the Oct 26th draft [5] (note, 4 days after Jason post, which 
is a very short amount of time) but nothing about 
WeakMap.prototype.clear. Implemented in Firefox soon after [6]...
I think WeakMap.prototype.clear slipped through the crack without being 
specifically discussed. Based on what's publicly available, I don't see 
anyone noticed and discussed the fact that WeakMap.prototype.clear 
questions the property that was true before its adoption ("you can only 
modify a weakmap entry if you have the key")

I think the property I mentioned is cricial to weakmap integrity and I 
think WeakMap.prototype.clear should be considered for removal... or at 
least proper discussion since none really happened from what I've found.



More information about the es-discuss mailing list