-
Notifications
You must be signed in to change notification settings - Fork 29
Closed
Description
Grammar:
- block-scoped variable declarations (let/const)
- block-level function declarations
- spread arguments (ES6: spread in call/new arguments and array initialiser #47; started for array initialisers in ES6: restrict assignment positions to bindings #30)
- rest parameters (rolled into ES6: restrict assignment positions to bindings #30)
- import and export declarations (ES6: Imports and Exports #75)
- destructuring (ES6: restrict assignment positions to bindings #30)
- classes (ES6 Support: Classes #82)
- arrow functions (ES6: arrow functions #24)
- generator functions + yield (ES6: Generator functions, Generator Methods and Yield. #71)
- default function parameters (rolled into ES6: restrict assignment positions to bindings #30)
- method definitions (in object literal) (ES6: add method definition support #40)
- binary/octal integer literals (ES6: add binary and octal integer literal support #16)
- noctals (ES6: Noctal support #117)
- shorthand object property notation (ES6: add shorthand object property notation support #37)
- remove duplicate object property (besides
__proto__
) strict mode restriction (ES6: remove duplicate object property (besides __proto__) restriction #28) - computed property names (ES6: computed property names #26)
- template strings (ES6: template strings #27)
- for-of (ES6: for-of #29)
- restrict assignment positions to bindings (assignment LHS, catch param, for-in left, etc.) (ES6: restrict assignment positions to bindings #30)
- allow missing semicolon after do-while
-
super
calls andsuper
member accesses (ES6: SuperCalls and SuperProperty #100) -
new.target
(ES6: new.target #101) - extended unicode escapes in strings, templates, and regexps
"\u{123456}"
(ES6: extended unicode escapes in strings, templates, and regexps "\u{123456}" #78) -
validate surrogate pairs in strings, templates, and regexps(deferred) - allow HTML-style comments in Script (not Module) code (ES6: allow HTML-style comments in Script (not Module) code #109)
- disallow initialiser in for-in and for-of head (ES6: disallow initialiser in for-in and for-of head #68)
- finish shift-spec ES6 milestone
- add
parseScript
andparseModule
interfaces (ES6: AddparseModule
interface #98)
Verification:
- go through Annex A to confirm we cover the entire grammar
- go through Annex B, C, D, E to confirm we've not missed any incompatibilities
- confirm we have failure tests for each occurrence of "it is a syntax error if"
Create an issue (or comment on an existing one) if you want to start working on one.