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

David Bruant bruant.d at gmail.com
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.

David

[1] https://mail.mozilla.org/pipermail/es-discuss/2012-October/025962.html
[2] https://mail.mozilla.org/pipermail/es-discuss/2012-November/026114.html
[3] https://github.com/rwldrn/tc39-notes
[4] 
https://github.com/rwldrn/tc39-notes/blob/master/es6/2012-11/nov-27.md#review-of-new-draft-spec
[5] http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts
[6] https://bugzilla.mozilla.org/show_bug.cgi?id=814562


More information about the es-discuss mailing list