Open Bug 1710433 Opened 4 years ago Updated 2 months ago

[META] Symbols as WeakMap property keys

Categories

(Core :: JavaScript Engine, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: yulia, Unassigned)

References

(Depends on 1 open bug, 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
Duplicate of this bug: 1910278

Any updates on this one? I wanted to start using Symbols as WeakMap keys, but I just noticed that it breaks in FF when I test. Thanks!

I think when using "lib": ["es2023"] with Typescript, the es2023.collection is only unsupported in Firefox now. It would be great if this last "ES2023" feature was supported in Firefox as well.

Whiteboard: [DocArea=JS] → [DocArea=JS] webcompat:risk-moderate

Hi Tom

Since we keep meta bugs open to track future spec changes and issues, should we move the webcompat webcompat:risk-moderate whiteboard tag to Bug 1863140?

Flags: needinfo?(twisniewski)

Yes, definitely. I was intending to revisit meta-bugs which I've marked with risk scores ASAP, to move the scores as appropriate to their sub-bugs. I'll move this one as you suggested now (and mark that bug as parity-chrome and -safari, since that seems to be the case).

Flags: needinfo?(twisniewski)
Whiteboard: [DocArea=JS] webcompat:risk-moderate → [DocArea=JS]
You need to log in before you can comment on or make changes to this bug.