Allen Wirfs-Brock (2015-01-16T00:24:15.000Z)
Rev31 (January 15, 2015) of the ECMAScript 2015 Language Specification is ready for review at http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#january_15_2015_draft_rev_31 


Changes include: Updated specification to use and support the new built-in subclassing scheme described at: https://github.com/tc39/ecma262/blob/master/workingdocs/ES6-super-construct%3Dproposal.md

	• Added newTarget parameter to [[Construct]], Reflect.construct, and proxy ‘construct’ trap.
	• Added NewTarget binding to Function Environment Records and abstract operations/methods of setting and accessing that binding
	• Redefined [[Construct]] for ordinary ECMAScript functions so “derived” constructors don’t preallocate the new object and bind this.
	• Changed [[Construct]] for ordinary ECMAScript functions so “derived” constructors will throw if they try to explicitly return a non-object.
	• Within constructors this binding has TDZ access semantics.
	• super(...) syntactic form now illegal in Function/GeneratorDeclaration/Expression
	• super(...) and new super(...) propagates current NewTarget to [[Construct]] call
	• super(...) binds this value upon return from [[Construct]] call, throw if new already bound
	• Refactored [[Call]] and [[Construct]] for ordinary ECMAScript functions so they can continue to shared common spec steps.
	• Updated Generator object instantiation to work with new [[Construct]] design
	• Refactored Function constructor and GeneratorFunction to share a common abstract operation based definition
	• Every built-in constructor changed to merge object allocation and initialization code. In some cases (eg, TypedArray and Promise) significant refactoring of allocation and initialization logic.
	• Updated [[Construct]] of Bound functions to handle newTarget parameter.
	• Several of the above items are tentative because they still lack full TC39 discussion and review. The following are particularly tentative:
		• restrictions on where super(...) is allowed may change
		• new supper(...) might go away or change
		• Support for the new.target access syntax (yellow highlight in spec text) is speculative and may move to ES7 and/or change

Other changes

	• Merged AllocArrayBuffer and SetArrayBufferData into single abstract operation
	• %TypedArray%.of now requires that its this value is a valid Typed Array constructor
	• Replaced “moduleId” with “sourceCodeId” and eliminated most usage of such ids in module related abstract operations
	• Some tweaking of Language Overview in 4.2
	• A new document title
	• Resolved bugs: 3543-3527, 3524-3523, 3520, 3517-3516, 3514-3511, 3501-3496, 3494-3479, 3310, 3229, 3136, 2865, 2536, 2495, 2179
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150115/5233ebf8/attachment.html>
d at domenic.me (2015-01-28T19:25:57.426Z)
Rev31 (January 15, 2015) of the ECMAScript 2015 Language Specification is ready for review at http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#january_15_2015_draft_rev_31 


Changes include: Updated specification to use and support the new built-in subclassing scheme described at: https://github.com/tc39/ecma262/blob/master/workingdocs/ES6-super-construct%3Dproposal.md

- Added newTarget parameter to [[Construct]], Reflect.construct, and proxy ‘construct’ trap.
- Added NewTarget binding to Function Environment Records and abstract operations/methods of setting and accessing that binding
- Redefined [[Construct]] for ordinary ECMAScript functions so “derived” constructors don’t preallocate the new object and bind this.
- Changed [[Construct]] for ordinary ECMAScript functions so “derived” constructors will throw if they try to explicitly return a non-object.
- Within constructors this binding has TDZ access semantics.
- super(...) syntactic form now illegal in Function/GeneratorDeclaration/Expression
- super(...) and new super(...) propagates current NewTarget to [[Construct]] call
- super(...) binds this value upon return from [[Construct]] call, throw if new already bound
- Refactored [[Call]] and [[Construct]] for ordinary ECMAScript functions so they can continue to shared common spec steps.
- Updated Generator object instantiation to work with new [[Construct]] design
- Refactored Function constructor and GeneratorFunction to share a common abstract operation based definition
- Every built-in constructor changed to merge object allocation and initialization code. In some cases (eg, TypedArray and Promise) significant refactoring of allocation and initialization logic.
- Updated [[Construct]] of Bound functions to handle newTarget parameter.
- Several of the above items are tentative because they still lack full TC39 discussion and review. The following are particularly tentative:
    - restrictions on where super(...) is allowed may change
    - new supper(...) might go away or change
    - Support for the new.target access syntax (yellow highlight in spec text) is speculative and may move to ES7 and/or change

Other changes

- Merged AllocArrayBuffer and SetArrayBufferData into single abstract operation
- %TypedArray%.of now requires that its this value is a valid Typed Array constructor
- Replaced “moduleId” with “sourceCodeId” and eliminated most usage of such ids in module related abstract operations
- Some tweaking of Language Overview in 4.2
- A new document title
- Resolved bugs: 3543-3527, 3524-3523, 3520, 3517-3516, 3514-3511, 3501-3496, 3494-3479, 3310, 3229, 3136, 2865, 2536, 2495, 2179