finds.dev← search

// the find

sebmarkbage/ecmascript-immutable-data-structures

★ 604 · updated Mar 2017

A 2015 TC39 proposal by Sebastian Markbåge (React core team) to add native immutable value types — Records, Vectors, Maps, Sets — to JavaScript with value equality via == and ===. It never advanced past the proposal stage and was superseded by the TC39 Records & Tuples proposal (which itself stalled). This is a historical artifact, not something you'd adopt today.

The #{ } and #[ ] sigil syntax proposed here directly influenced the later Records & Tuples proposal that did reach Stage 2. Value equality on === is the right call — it's the thing that makes immutable primitives actually useful vs. just frozen objects. The Issues.md document is unusually honest about the hard problems (identity vs. equality, Map keys, NaN behavior).

Dead since 2017 — no implementation, no polyfill, no path to standardization. The value types foundation it depends on (Typed Objects) also went nowhere. If you want immutability today, Immer or plain Object.freeze() are your options; if you want value types specifically, watch the Records & Tuples proposal instead, which has actual Stage 2 tooling. 604 stars on a dead proposal is just historical name recognition from Markbåge's React affiliation.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →