The Ecma TC39 committee is responsible for evolving the ECMAScript programming language and authoring the specification.

Changes to the language are developed by way of process which provides guidelines for evolving an addition from an idea to a fully specified feature. There are five stages where TC39 must approve acceptance for each stage:

  • Stage 0 Strawperson : Proposal planned to be presented to the committee.
  • Stage 1 Proposals: Represent a problem that the committee is interesting in spending time exploring solutions to.
  • Stage 2 Draft: The committee expects the feature to be developed and eventually included in the standard.
  • Stage 3 Candidate: The solution is complete and no further work is possible without implementation experience, significant usage and external feedback.
  • Stage 4 Finished: The addition will be included in the soonest practical standard revision.

The proposal Records and Tuples just reached stage 2, meaning the feature will be developed and will maybe included in the standard. Let’s discover it together!

What are Records and Tuples


Records and Tuples look like regular Objects and Arrays, but with a # prefix which make them deeply **immutable. **They can only contain primitives and other Records and Tuples.

Image for post

Record and Tuple are deeply immutable. Attempting to insert an object in them will result in a TypeError:

Image for post


Equality of Records and Tuples works like that of other JS primitive like boolean and string values, comparing by contents, not identity:

assert(#{ a: 1 } === #{ a: 1 })
assert(#[1, 2] === #[1, 2])

#javascript #react #technology #programming #software-engineering

Records and Tuples will change how React developers write code
1.45 GEEK