>
> It turns out the spec is fine <
> https://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap.prototype.set>
> step 5 says
>
> If Type
> <https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ecmascript-data-types-and-values>
> (*key*) is not Object, throw a *TypeError* exception.
>
>
> as I hoped and expected. The reason I was alarmed is that I got the
> following behavior on v8/iojs:
>
> > var w = new WeakMap();
> undefined
>
> > var r = Symbol.for('foo');
> undefined
>
> > w.set(r, true);
> {}
>
> > w.get(r)
> true
>
>
> I will file a v8 bug. Please someone, add a test for this to test262.
>
>
Ah, I see.

FYI (you may know deeper than I ;)), since symbols are primitive values,
they cannot be used as a WeakMap's key.
And since they are primitive values, they cannot have any properties. It
means that primitive values are immutable.
So Symbol.for / Symbol.keyFor's registry can be WeakMap in the internal
implementation.

Actually, we implemented so :D http://trac.webkit.org/changeset/182915
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to