July 2000 Draft
JavaScript 2.0
|
Tuesday, June 6, 2000
JavaScript 2.0 is an experimental proposal maintained by waldemar for future changes in the JavaScript language. The eventual language may differ significantly from this proposal, but the goal is to move in the directions indicated here and do so via a coordinated plan rather than adding miscellaneous features ad hoc on a release-by-release basis.
JavaScript is Netscape's implementation of the ECMAScript standard. The development of JavaScript 2.0 is heavily coordinated with the ECMA TC39 modularity subgroup. The intent is to make JavaScript 2.0 and ECMAScript Edition 4 be the same language, and this document will evolve as necessary to accomplish this.
The following are recent major changes in this document:
Date | Revisions |
---|---|
Jun 6, 2000 | Added discussion of constant expressions and related restrictions on the expressions
page. Defined the [] operator. Added visibility modifier
attributes. |
May 26, 2000 | Minor grammar changes and cleanups. Allowed attributes in var and const declarations in for statements.
Added [no line break] assertions in various rules to prevent changing the meaning of JavaScript 1.5 programs. Simplified switch and block
grammars without changing their meanings. |
May 8, 2000 | Changed the name of a default constructor from new to the same
name as its class. This eliminated the various syntactic special cases of new in places where a member name
was expected. Also allowed qualified identifiers as literal field names. |
May 1, 2000 | Rewrote packages page. |
Apr 30, 2000 | Made significant syntax changes (Parser Grammar and other pages): revised identifier
qualifiers, primary expressions, and definition
attributes; added attribute , namespace , interface , import , export ,
and use statements; changed package naming. Updated definition of scopes and namespaces on Concepts
page. Updated list of keywords on Lexer page. Revised definition
extent rules. Allowed multiple const , class , and interface declarations as
long as only one is a definition. Rewrote variables, functions,
definitions, and classes pages. |
Feb 16, 2000 | Updated machine type and operator overloading pages. |
Feb 15, 2000 | Updated grammar and discussions of concepts, types, expressions, statements, definitions, and variables, as well as the syntax rationale. |
Dec 7, 1999 | Removed field , method , and constructor
from the semantics and replaced with creative uses of the static prefix. |
Nov 11, 1999 | Continuing major reorganization of this document.... |
Nov 5, 1999 | Reorganized the document's structure into chapters. Structured the core language chapter more in the bottom-up style of the ECMAScript standard than in the previous issue-oriented style. Combined and moved rationales and issues into an appendix. Added introduction page. Removed or reworded many obsolete paragraphs throughout the document. |
Nov 2, 1999 | Modified the parser grammar: added [no line break] constraints, removed version
lists after public keywords, added box and user-defined
visibility keywords, and added named function arguments. |
Oct 29, 1999 | Revised the execution model based on recent ECMA modularity group discussions. JavaScript 2.0 now has a hybrid execution model instead of a pure dynamic one, which allows for better compatibility with JavaScript 1.5. |
Oct 20, 1999 | Added throw and try-catch
semantic operators to semantic notation and used them to signal syntax errors detected
by the semantics that would be impossible or too messy to detect in the grammars. Updated formal
description pages to match recent ECMA TC39 subcommittee decisions: eliminated octal numbers and escapes (both in
strings and in regular expressions) to match ECMAScript Edition 3, switched to using the Identifier : TypeExpression
syntax for type declarations, and added local blocks and the local
visibility specifier. Also simplified the parser grammar for definitions and removed the « and »
syntax for regular expression literals. |
Jul 26, 1999 | Wrote description of semantic notation. Updated grammar
notation page to describe lookahead constraints. Updated regular expression
semantics to match ECMA working group decisions for ECMAScript Edition 3; one of these included changing the behavior
of (?= to not backtrack. |
Jun 7, 1999 | Revised all grammars and semantics to simplify the grammars. Fixed several errors and omissions in the regular expression
grammar and semantics. Added support
for (?= and (?! . |
May 16, 1999 | Added regular expression grammar and semantics. |
May 12, 1999 | Added preliminary Formal Description chapter. |
Mar 25, 1999 | Added Member Lookup page. Released second draft. |
Mar 24, 1999 | Added many clarifications, discussion sections, and small changes throughout the pages. |
Mar 23, 1999 | Rewrote Execution Model page and split it off from the Definitions
page. Added discussion of float to Machine Types. |
Mar 22, 1999 | Removed numbered versions from the Versions page; added motivation, discussion,
and version aliasing using = . Removed angle brackets < and > from VersionsAndRenames. |
Mar 16, 1999 | Rewrote Types page. Split off byte , ubyte , short ,
ushort , int , uint , long , ulong into an optional Machine
Types library. |
Feb 18, 1999 | Released first draft. |
Waldemar Horwat Last modified Tuesday, June 6, 2000 |