Edition 3 Final Draft Ecmascript Language Specification
Total Page:16
File Type:pdf, Size:1020Kb
ECMAScript Language Specification Edition 3 13-Oct-99 Edition 3 Final Draft ECMAScript Language Specification 13 October 1999 ECMAScript Language Specification Edition 3 13-Oct-99 Brief History This ECMA Standard is based on several originating technologies, the most well known being JavaScript (Netscape) and JScript (Microsoft). The language was invented by Brendan Eich at Netscape and first appeared in that company’s Navigator 2.0 browser. It has appeared in all subsequent browsers from Netscape and in all browsers from Microsoft starting with Internet Explorer 3.0. The development of this Standard started in November 1996. The first edition of this ECMA Standard was adopted by the ECMA General Assembly of June 1997. That ECMA Standard was submitted to ISO/IEC JTC 1 for adoption under the fast-track procedure, and approved as international standard ISO/IEC 16262, in April 1998. The ECMA General Assembly of June 1998 approved the second edition of ECMA-262 to keep it fully aligned with ISO/IEC 16262. Changes between the first and the second edition are editorial in nature. The current document defines the third edition of the Standard and includes powerful regular expressions, better string handling, new control statements, try/catch exception handling, tighter definition of errors, formatting for numeric output and minor changes in anticipation of forthcoming internationalisation facilities and future language growth. Work on the language is not complete. The technical committee is working on significant enhancements, including mechanisms for scripts to be created and used across the Internet, and tighter coordination with other standards bodies such as groups within the World Wide Web Consortium and the Wireless Application Protocol Forum. This Standard has been adopted as 3rd Edition of ECMA-262 by the ECMA General Assembly in December, 1999. The following people have contributed to the work leading to ECMA 262: Mike Ang Clayton Lewis Christine Begle Drew Lytle Norris Boyd Bob Mathis Carl Cargill Karl Matzke Andrew Clinick Mike McCabe Donna Converse Tom McFarland Mike Cowlishaw Anh Nguyen Chris Dollin Brent Noorda Jeff Dyer Andy Palay Brendan Eich Dave Raggett Chris Espinosa Gary Robinson Gary Fisher Sam Ruby Richard Gabriel Dario Russi Michael Gardner David Singer Bill Gibbons Randy Solton Richard Gillam Guy Steele Waldemar Horwat Michael Turyn Shon Katzenberg Herman Venter Cedric Krumbein George Wilingmyre Mike Ksar Scott Wiltamuth Roger Lawrence Rok Yu Steve Leach ECMAScript Language Specification Edition 3 13-Oct-99 Table of contents 1 Scope ...........................................................................................................................................................1 2 Conformance................................................................................................................................................1 3 Normative References..................................................................................................................................1 4 Overview ......................................................................................................................................................3 4.1 Web Scripting ...........................................................................................................................................3 4.2 Language Overview ..................................................................................................................................3 4.2.1 Objects ...............................................................................................................................................4 4.3 Definitions ................................................................................................................................................5 4.3.1 Type....................................................................................................................................................5 4.3.2 Primitive Value.....................................................................................................................................5 4.3.3 Object .................................................................................................................................................5 4.3.4 Constructor..........................................................................................................................................5 4.3.5 Prototype.............................................................................................................................................5 4.3.6 Native Object.......................................................................................................................................6 4.3.7 Built-in Object ......................................................................................................................................6 4.3.8 Host Object .........................................................................................................................................6 4.3.9 Undefined Value ..................................................................................................................................6 4.3.10 Undefined Type..................................................................................................................................6 4.3.11 Null Value..........................................................................................................................................6 4.3.12 Null Type ...........................................................................................................................................6 4.3.13 Boolean Value ...................................................................................................................................6 4.3.14 Boolean Type.....................................................................................................................................6 4.3.15 Boolean Object ..................................................................................................................................6 4.3.16 String Value .......................................................................................................................................6 4.3.17 String Type ........................................................................................................................................6 4.3.18 String Object......................................................................................................................................7 4.3.19 Number Value....................................................................................................................................7 4.3.20 Number Type.....................................................................................................................................7 4.3.21 Number Object...................................................................................................................................7 4.3.22 Infinity ...............................................................................................................................................7 4.3.23 NaN...................................................................................................................................................7 5 Notational Conventions................................................................................................................................9 5.1 Syntactic and Lexical Grammars ................................................................................................................9 5.1.1 Context-Free Grammars .......................................................................................................................9 5.1.2 The Lexical and RegExp Grammars ......................................................................................................9 5.1.3 The Numeric String Grammar ...............................................................................................................9 5.1.4 The Syntactic Grammar........................................................................................................................9 5.1.5 Grammar Notation.............................................................................................................................. 10 5.2 Algorithm Conventions ............................................................................................................................ 12 6 Source Text................................................................................................................................................ 15 7 Lexical Conventions................................................................................................................................... 17 7.1 Unicode Format-Control Characters ......................................................................................................... 17 7.2 White Space........................................................................................................................................... 17 7.3 Line Terminators ..................................................................................................................................... 18 7.4 Comments.............................................................................................................................................. 18 7.5 Tokens