JavaScript is the world's most popular programming language. JavaScript is the programming language of the Web.
As we know that for any software or programming language, new features are added from time to time. When you want to use the new features we download the latest version by going to particular link and update the version installed in our system.
But JavaScript is bit different in this case. There is an organisation called Ecma International: is an industry association dedicated to the standardization of information and communication systems. Ecma decides all the standards for JavaScript (which means what will be the rules of JS programming language) You can read more here.
All the browsers then follow these rules and implement in these browser (Chrome, Safari, IE). Ecma International's TC39 is a group of JavaScript developers, implementers, academics, and more, collaborating with the community to maintain and evolve the definition of JavaScript. Every year they meet and discuss new features and what should be added to JavaScript and once they finalise they release the document and browsers has to implement new features.
Initially the TC39 committee used to release the standards using naming ES5, ES6 but ES6 took alot of time and so they decided to change things and annually update the spec and use Year for naming like ES2015 (same as ES6), ES2016, ES2017.
The TC39 proposals for ECMAScript (the standard upon which JavaScript is based) follow a structured process with several stages. Here are the different stages of TC39 proposals:
- Stage 0: Strawman
- The initial idea or proposal.
- Anyone can submit a proposal at this stage.
- It's essentially a suggestion and a way to gauge interest within the TC39 community.
- Stage 1: Proposal
- The idea has been formally accepted by TC39 for further development.
- A champion (a member of TC39) must support the proposal.
- The proposal is documented and includes a high-level API description and potential use cases.
- Stage 2: Draft
- The proposal is being fleshed out.
- The champion must provide a first draft of the specification text.
- The draft is expected to be reviewed by TC39 members and undergo iterations.
- A concrete example is provided, including semantics and algorithms.
- Stage 3: Candidate
- The proposal is mostly finished and needs to be reviewed for potential inclusion in the standard.
- Feedback from implementers and early adopters is sought.
- The specification text must be complete and undergo thorough review.
- There must be at least two experimental implementations (e.g., in different JavaScript engines).
- Stage 4: Finished
- The proposal is ready to be included in the ECMAScript standard.
- The proposal must have received significant feedback from early adopters.
- There must be two or more compatible implementations passing acceptance tests.
- The editor of the ECMAScript specification accepts the finished proposal.
After a proposal reaches Stage 4, it is included in the next ECMAScript release, such as ECMAScript 2022. The entire process ensures that proposals are rigorously vetted and refined before becoming part of the official language specification.
Checkout caniuse.com to check if the browser has implemented the feature specified by EcmaScript and from which version it started supporting that feature!