ECMAScript est un langage de programmation de type script standardisé par Ecma International dans le cadre de la spécification ECMA-262. Il s'agit donc d'un standard dont les spécifications sont implémentées dans la plupart des langages script, comme JavaScript ou ActionScript. Les dernières spécifications, en cours de développement, en font un véritable langage de programmation orienté objet.
La société Netscape, à l'origine connue sous le nom de Mosaic Communications Corporation, a développé un langage de script côté client, appelé LiveScript, pour renforcer l'offre commerciale de son serveur web. La sortie de LiveScript est intervenue à l'époque où la NCSA force Mosaic Communications Corporation à changer de nom pour devenir Netscape.
Netscape travailla alors au développement d'une version orientée client de LiveScript. Quelques jours avant sa sortie, Netscape changea le nom de LiveScript pour JavaScript. Sun Microsystems et Netscape étaient partenaires, et la machine virtuelle Java de plus en plus populaire. Ce changement de nom servait les intérêts des deux sociétés, et Sun promit de ne pas poursuivre Netscape.
En décembre 1995, Sun et Netscape annoncent (en) la sortie de JavaScript. En mars 1996, Netscape implémente le moteur JavaScript dans son navigateur web Netscape Navigator 2.0. Le succès de ce navigateur contribue à l'adoption rapide de JavaScript dans le développement web orienté client. Microsoft réagit alors en développant JScript, qu'il inclut ensuite dans Internet Explorer 3.0 en août 1996 pour la sortie de son navigateur.
Netscape soumet alors JavaScript à l'ECMA pour standardisation. Les travaux débutent en novembre 1996, et se terminent en juin 1997 par l'adoption du nouveau standard ECMAScript. Les spécifications sont rédigées dans le document Standard ECMA-262.
Application | Dénomination | Dernière version | Correspondance ECMAScript |
---|---|---|---|
Navigateurs de type Gecko avec le moteur embarqué SpiderMonkey, dont Mozilla Firefox | JavaScript | 1.7 | ECMA-262, edition 3 |
Internet Explorer | JScript | 5.6.7 | ECMA-262, edition 3 |
Opera | ECMAScript, avec des extensions JavaScript etJScript | 1.3/1.5 | ECMA-262, edition 3 |
KHTML based browsers, including KDE's Konqueror | JavaScript | 1.5 | ECMA-262 |
Framework .NET de Microsoft | JScript .NET et Managed JScript | 8.0 | ECMA-262, edition 3 |
Adobe Flash | ActionScript | 2 3 | ECMA-262, edition 3 ECMA-262, edition 4 |
Adobe Acrobat | JavaScript | 1.5 | ECMA-262, edition 3 |
General purpose scripting language | DMDScript | 1.06 | ECMA-262 |
OpenLaszlo Platform | JavaScript | 1.4 | ECMA-262, edition 3 |
iCab | InScript | 3.22 | ECMA-262, edition 3 |
Implémentation d'XML dans les navigateurs basés sur Gecko et les programmes embarqués comme SpiderMonkey | E4X | ??? | ECMA-357, edition 2 |
E4X [1] en partie supporté par Gecko 1.8.1 ; pour d'autres fonctionnalités, voir Nouveautés dans JavaScript 1.7.
Microsoft indique que JScript 8.0 supporte « presque toutes les caractéristiques d'ECMAScript Edition 3" mais ne donne pas de liste des caractéristiques non supportées.
En plus du support d'ECMA-262 edition 3, ActionScript 2 inclus aussi un support des propriétés, fonctions et mécanisme qui avaient été propose dans une version préliminaire d'ECMA-262 edition 3. Il n'est pas connu si ActionScript restera synchronisé avec de futures modifications des spécifications d'ECMAScript.
Adobe indique supporter une version préliminaire de l'édition 4 d'ECMA-262 [2]
OpenLaszlo supporte partiellement ECMA-262 édition 3 [3]
Un document "JScript Deviations from ES3" [4] a été publié par Microsoft.
Le support par Mozilla, (SpiderMonkey en langage C et Rhino en Java), sont utilisés par plusieurs programmes tiers, par exemple le Yahoo! Widget Engine (Konfabulator) et le langage de script pour Macintosh JavaScript OSA.
Safari utilise JavaScriptCore qui est basé sur la libraire KJS de KDE.