20 credit z-inf project

Student: Kai Waløen (UiB)

Supervisor: Mikhail Barash (UiB)

Examinator: Mikhail Barash (UiB), Anya Helene Bagge (UiB)

JavaScript is amongst the world’s most popular and most used languages. It is a popular choice for web development and is supported by powerful libraries and frameworks such as React, Angular, Vue.js, Next.js and many more. The committee responsible for maintaining and standardizing the JavaScript programming language is Technical Committee 39 (TC39) of the ECMA International. There are 6 TC39 meetings each year in which proposals are made to implement new functionality with the goal foster the evolution of JavaScript, of which University of Bergen was the host of the international TC39 meeting in 2023. In order for a proposal to be implemented into JavaScript, it goes through a rigourous 6 stage process (https://tc39.es/process-document/). Each proposal has one or more author and champion who are responsible for developing and maintaining the proposal.

The changes we are classifying are the following:

  • API Change: Modifies or introduces new functions, objects, or methods in the standard library. These changes do not affect the syntax of the language but add new functionality to existing features.

  • Semantic Change: Changes the meaning of the JavaScript code even if the syntax remains the same. These changes can alter the behavior of existing JavaScript programs in subtle or breaking ways. Usually involves modifying execution rules rather than introducing new syntax.

  • Syntactic Change: Introduces new syntax or modifies existing syntax rules. Usually involves new keywords, operators, or expressions. These changes often require updates to parsers and affect how JavaScript code is written.