Generated by GPT-5-mini| ECMAScript 262 | |
|---|---|
| Name | ECMAScript 262 |
| Othernames | ECMAScript |
| Developer | ECMA International |
| Latest release | 13th Edition (as of 2024) |
| First release | 1997 |
| Website | ECMA-262 |
ECMAScript 262 is the formal specification that defines the scripting language commonly implemented as JavaScript, providing normative descriptions for syntax, semantics, builtin objects, and runtime behavior across diverse hosts. The specification has been developed and published by ECMA International through Technical Committee 39, aligning contributions from vendors such as Netscape, Microsoft, Google, and Mozilla Foundation as well as implementers in projects like V8, SpiderMonkey, and ChakraCore. ECMAScript 262 grounds language interoperability between environments including Node.js, Deno, and browsers like Google Chrome, Mozilla Firefox, and Microsoft Edge.
ECMAScript 262 originated from the collaboration between Netscape and Sun Microsystems in the mid-1990s during rapid web development around projects such as Netscape Navigator and Sun JavaScript (LiveWire), leading to standardization at ECMA International in 1997. Early alignment involved stakeholders including Brendan Eich and organizations like Mosaic Communications and Netscape Communications Corporation to reconcile implementations seen in Netscape Navigator and Internet Explorer; the adoption cycle intersected with initiatives such as the World Wide Web Consortium work on DOM Level 1 and the evolution of scripting in server contexts exemplified by Common Gateway Interface. Subsequent formative moments included the release of editions addressing compatibility with platforms influenced by Ajax patterns, the consolidation around Unicode support, and the industry-wide push following the publication of editions influenced by efforts from TC39 members representing Apple Inc., Google, Microsoft Corporation, and Mozilla Foundation.
ECMAScript 262 is published in sequential editions, each edition ratified by ECMA International and often discussed at TC39 plenary meetings involving representatives from IBM, Intel Corporation, Facebook (Meta Platforms), and independent contributors such as Axel Rauschmayer. Major editions introduced milestones: early editions formalized baseline syntax and builtin objects; the 5th Edition aligned with practices in Ajax-era frameworks like jQuery and Prototype (JavaScript framework); the 6th Edition (ES2015) added modules, classes, and promises driven by proposals shepherded by contributors like Allen Wirfs-Brock and groups at GitHub. Later annual editions (ES2016, ES2017, ES2018, ES2019, ES2020, ES2021, ES2022, ES2023) addressed features such as async functions, SharedArrayBuffer, Atomics (JavaScript), BigInt, and private class fields, coordinated with implementers from V8, JavaScriptCore, and Hermes (JavaScript engine). Each edition's normative text links to standards like Unicode Standard and references to international norms approved by ISO/IEC.
ECMAScript 262 defines lexical grammar, expression evaluation, statement semantics, and builtin intrinsics including Array, Function, Promise, Map (collection), and Set (collection), as well as language-level constructs such as arrow functions, classes, and modules. It specifies typing behaviors for primitives like Number (JavaScript), string handling tied to Unicode Standard, and object property semantics interoperable with Document Object Model hosts. The language includes concurrency primitives reflected in Web Workers and integration points for SharedArrayBuffer and Atomics (JavaScript), plus low-level reflection through Proxy (JavaScript) and Reflect (JavaScript). Newer proposals standardized in recent editions encompass temporal types influenced by calendaring efforts like ISO 8601, pattern matching proposals with parallels to constructs in Scala (programming language) and Haskell, and memory management considerations relevant to WebAssembly interop.
The specification provides an abstract machine model with an operational semantics style description detailing execution contexts, lexical environments, and job queues used for microtask and macrotask semantics, enabling conformance test suites such as Test262 to validate implementations. Conformance criteria reference interoperability requirements enforced through ECMAScript conformance tests and harmonized with testing infrastructures maintained by organizations like W3C and implementation projects including V8 and SpiderMonkey. Formal methods researchers have mapped ECMAScript semantics to models like small-step operational semantics and explored mechanized verification efforts in tools such as Coq and Isabelle (proof assistant), while security analyses cite standards from Common Weakness Enumeration when evaluating language-specific vulnerabilities.
Implementations of ECMAScript 262 exist across engines including V8, SpiderMonkey, JavaScriptCore, ChakraCore, Hermes (JavaScript engine), and embedded runtimes like QuickJS and JerryScript used in projects from Node.js and React Native to embedded devices by ARM Holdings. Engine teams coordinate feature rollouts, optimizations like just-in-time compilation, and garbage collection improvements influenced by research from institutions like MIT, Stanford University, and University of Cambridge. Ecosystem projects such as Babel (JavaScript compiler) and TypeScript transpile newer ECMAScript features for broader compatibility, while test suites like Test262 and fuzzers contributed by entities like Google OSS Fuzz drive correctness and security hardening.
Standardization proceeds through proposal stages within TC39 where champions propose features, with stage advancement contingent on consensus among representatives from companies including Google, Microsoft Corporation, Mozilla Foundation, Apple Inc., and contributors from projects like Node.js Foundation and GitHub. The governance model leverages open discussion in public repositories and meetings, embraces specification editing practices used by ECMA International and legal frameworks from ISO/IEC, and integrates community-driven review from independent voices including authors of influential texts such as Brendan Eich and educational contributors like Kyle Simpson. Adoption timelines for features are influenced by ecosystem readiness—implementer shipping in engines like V8 and JavaScriptCore—and by compatibility concerns addressed through transition tooling developed by organizations such as Babel (JavaScript compiler) and Microsoft Open Technologies.
Category:Programming language standards