New "ES6" draft

# Allen Wirfs-Brock (14 years ago)

(apparently this didn't make it out when I originally sent it)

A new ES6 draft is available at harmony:specification_drafts This is the Feb. 27, 2012 draft.

Here is the change summary from the wiki page: Eliminated “extended mode” in support of “one JavaScript” plan, all new features are generally available in all modes. Eliminated various static semantic rules that would be breaking changes in “one JavaScript” Added support for for-in, for-of, and first cut at lexically scoped for(;;). Added section B.3.1 with specifies proto feature. Did spec. changes to implement “completion reform”. Did most of the work to pervasively use completion results for expressions as well as statements. Still some work to do in sections 10 and 15 but all of expressions and the Array methods have all been updated to handle completion records as general results. See 8.8 for enhance completion record internal API. Note that observable occurrence points are more precisely specified for many exception that had been informally “thrown” by various specification algorithms. Added [[Enumerate]] and [[Iterate]] internal methods for normal objects. Generalized the List special type to also include a Record specification type. Added an Invoke abstract operation that is used to internally “call methods” Added syntactic productions for array comprehensions, generators and Generator comprehensions. No semantics yet. Converted prose specification of labelled statements into algorithmic spec. Added BreakableStatement production that includes IterationStatement and SwitchStatement. Refactored let/const into a single set of productions and semantics rules. Many minor edits and typo/bug corrections, see bugs.ecmascript.org for details. Preliminary work in support of super references and super calls is still incomplete

# Andreas Rossberg (14 years ago)

On 2 March 2012 00:38, Allen Wirfs-Brock <allen at wirfs-brock.com> wrote:

  • Eliminated various static semantic rules that would be breaking changes in “one JavaScript”

Can you give a brief overview of the class of rules that you had to abandon?

Among other things, I'm wondering how that affects our existing implementation of lexical scoping.

Thanks,

# Allen Wirfs-Brock (14 years ago)

On Mar 2, 2012, at 1:55 AM, Andreas Rossberg wrote:

On 2 March 2012 00:38, Allen Wirfs-Brock <allen at wirfs-brock.com> wrote:

  • Eliminated various static semantic rules that would be breaking changes in “one JavaScript”

Can you give a brief overview of the class of rules that you had to abandon?

Among other things, I'm wondering how that affects our existing implementation of lexical scoping.

Thanks, /Andreas

There doesn't appear to be as many as I recalled. This is probably partially because I still haven't dealt with the global scope yet.

Here are a couple issues from section 13:

• It is a Syntax Error if the source code matching this production is extended code and the BoundNames of BindingIdentifier also occurs in the VarDeclaredNames of FunctionBody. • It is a Syntax Error if the source code matching this production is extended code and the BoundNames of BindingIdentifier also occurs in the LexicallyDeclaredNames of FunctionBody.

# Herby Vojčík (14 years ago)

Allen Wirfs-Brock wrote:

(apparently this didn't make it out when I originally sent it)

I missed the January one as well, so I'll react to it, as well:

thank you for making methods configurable. This was my utmost concern on the whole ES.next.

A new ES6 draft is available at harmony:specification_drafts This is the Feb. 27, 2012 draft.

Here is the change summary from the wiki page: ... * Preliminary work in support of super references and super calls is still incomplete

Wow! Super expressions will be allowed generally? That is what I wanted, as well.

Will you (and the rest) please consider moving a little in this direction and include <| (however this will be called) for function declarations as well (for the super thread), and adding .{} (for the object literal thread)?

Herby

P.S.: I can help with something if the amount of work is the problem, like sketching parts of the spec or extending things in wiki.