How New Features Get Added to JavaScript

Making changes to JavaScript language is complex. The features are implemented by various browsers including Google Chrome, Firefox, Microsoft Edge, Apple Safari etc. Ensuring security, usability and stability across platforms is complex.How ECMA Inter…

Making changes to JavaScript language is complex. The features are implemented by various browsers including Google Chrome, Firefox, Microsoft Edge, Apple Safari etc. Ensuring security, usability and stability across platforms is complex.

How ECMA International and the TC39 review and process new features and updates to the JavaScript programming language

JavaScript is not owned by a single organization or an entity. Then how does the language continue to evolve and keep up with changes to the technology? Moreover, there are a variety of browsers (and JavaScript engines) implementing the language. A change needs to be updated by all the browsers, which is a challenge considering they are often developed and maintained by a variety of organizations.

Introduction to ECMA

ECMA (European Computer Manufacturers Association) is an institution that facilitates Information Technology and Consumer Electronics standards. The scope of standardization includes software, hardware, storage, electronics etc. Few examples for areas of the work include programming languages, NFC (Near Field Communication), IoT and wearable technologies, describe environmental attributes for consumer electronics and many more.

ECMA International Building in Geneva, Switzerland
ECMA International, Geneva, Switzerland

TC39

TC39, Technical Committee number 39 is part of ECMA. They are responsible for standardizing and maintaining JavaScript. It includes developers, academics collaborating with the community.

The committee develops and evolves a specification named ECMAScript (ES for short). It is implemented by various browsers. The versions ES5, ES2015 (also known as ES6) are often popular.

A new version of the ECMAScript is released every year in the June month’s time frame. The latest version of the specification is ES2021, which was published in June 2021.

TC39 Process

How are the new features selected to be added to the language? TC39 defined the following process for identifying, driving consensus and adding features to the ECMAScript specification. Finished specifications are implemented by the browsers.

Stage 0: Strawperson

An idea for a new specification or a change to an existing specification is input to the system. It need not be a formal proposal yet; It could just be a discussion. The idea need not have an acceptance criteria.

Stage 1: Proposal

At this stage idea turns in to a formal proposal. An outline for the problem and a solution are created. Examples and use cases for the new specification are defined.

This stage not only describes the shape of a solution, but also lists potential problems.

At this stage, a public repository is created for the specification, typically on GitHub.

Stage 2: Draft

At this stage, an initial specification is created. Semantics and syntax are defined. An API is created.

Stage 3: Candidate

At this stage, design work is completed. The committee expects feedback from implementation. Most browsers implement the feature at this stage.

Stage 4: Finished

Final semantics are approved. At this stage only critical and editorial changes are accepted. The specification is ready to be formally included in the ES (ECMAScript) standard.

GitHub Repository for TC39 Proposals

Please find a TC39 GitHub repository and useful links below,

  1. A list of finished proposals — link
  2. A list of changes planned to be presented to TC39; In other words, a list of Stage 0 ideas — link
  3. A list of stage 1 proposals that the committee (TC39) is interested in spending time in finding solutions for— link
  4. A list of abandoned or rejected proposals — link

Resources and links

ECMA International — Areas of work

CanIUse.com for browser support

ECMA International Building image

The TC39 Process Document

Unlock 10x development with independent components

Building monolithic apps means all your code is internal and is not useful anywhere else. It just serves this one project. And as you scale to more code and people, development becomes slow and painful as everyone works in one codebase and on the same version.

But what if you build independent components first, and then use them to build any number of projects? You could accelerate and scale modern development 10x.

OSS Tools like Bit offer a powerful developer experience for building independent components and composing modular applications. Many teams start by building their Design Systems or Micro Frontends, through independent components. Give it a try →

An independent product component: watch the auto-generated dependency graph

Find out more about me at codevenkey.com


How New Features Get Added to JavaScript was originally published in Bits and Pieces on Medium, where people are continuing the conversation by highlighting and responding to this story.


Print Share Comment Cite Upload Translate
APA
Keerti Kotaru | Sciencx (2024-03-29T15:42:53+00:00) » How New Features Get Added to JavaScript. Retrieved from https://www.scien.cx/2022/02/07/how-new-features-get-added-to-javascript/.
MLA
" » How New Features Get Added to JavaScript." Keerti Kotaru | Sciencx - Monday February 7, 2022, https://www.scien.cx/2022/02/07/how-new-features-get-added-to-javascript/
HARVARD
Keerti Kotaru | Sciencx Monday February 7, 2022 » How New Features Get Added to JavaScript., viewed 2024-03-29T15:42:53+00:00,<https://www.scien.cx/2022/02/07/how-new-features-get-added-to-javascript/>
VANCOUVER
Keerti Kotaru | Sciencx - » How New Features Get Added to JavaScript. [Internet]. [Accessed 2024-03-29T15:42:53+00:00]. Available from: https://www.scien.cx/2022/02/07/how-new-features-get-added-to-javascript/
CHICAGO
" » How New Features Get Added to JavaScript." Keerti Kotaru | Sciencx - Accessed 2024-03-29T15:42:53+00:00. https://www.scien.cx/2022/02/07/how-new-features-get-added-to-javascript/
IEEE
" » How New Features Get Added to JavaScript." Keerti Kotaru | Sciencx [Online]. Available: https://www.scien.cx/2022/02/07/how-new-features-get-added-to-javascript/. [Accessed: 2024-03-29T15:42:53+00:00]
rf:citation
» How New Features Get Added to JavaScript | Keerti Kotaru | Sciencx | https://www.scien.cx/2022/02/07/how-new-features-get-added-to-javascript/ | 2024-03-29T15:42:53+00:00
https://github.com/addpipe/simple-recorderjs-demo