Open Bug 1710433 Opened 3 years ago Updated 14 days ago

[META] Symbols as WeakMap property keys

Categories

(Core :: JavaScript Engine, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: yulia, Unassigned)

References

(Depends on 2 open bugs, Blocks 1 open bug, )

Details

(4 keywords, Whiteboard: [DocArea=JS])

Currently at stage 2

Proposal now in Stage 3

Summary: Implement Symbols as WeakMap property keys → [META] Symbols as WeakMap property keys
Depends on: 1828144
Depends on: 1863140

I have the following test code:

const map = new WeakMap();
const key = Symbol();
map.set(key, 42);

It throws error:

Uncaught TypeError: WeakMap key Symbol() must be an object or an unregistered symbol

However, it works fine on both Chrome and Safari, which means there can be compatibility issue arises from it, and the behavior here is inconsistent with this error message, which is very confusing.

(In reply to Xidorn Quan [:xidorn] UTC+11 from comment #2)

However, it works fine on both Chrome and Safari, which means there can be compatibility issue arises from it, and the behavior here is inconsistent with this error message, which is very confusing.

Have you turned on the pref "javascript.options.experimental.symbols_as_weakmap_keys" ?
It is still off by default.

(In reply to Yoshi Cheng-Hao Huang [:allstars.chh][:allstarschh][:yoshi] from comment #3)

Have you turned on the pref "javascript.options.experimental.symbols_as_weakmap_keys" ?
It is still off by default.

No. Should there be a bug tracking this pref change? Also should we have the error thrown adapt to the availability of this feature, and potentially even mention the tracking bug?

Depends on: 1887939
Depends on: 1890670
You need to log in before you can comment on or make changes to this bug.