<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Rev31 (January 15, 2015) of the ECMAScript 2015 Language Specification is ready for review at <a href="http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#january_15_2015_draft_rev_31">http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#january_15_2015_draft_rev_31</a> </div><div><br></div><div><br></div><div>Changes include: Updated specification to use and support the new built-in subclassing scheme described at: <a href="https://github.com/tc39/ecma262/blob/master/workingdocs/ES6-super-construct%3Dproposal.md">https://github.com/tc39/ecma262/blob/master/workingdocs/ES6-super-construct%3Dproposal.md</a><br><br><div><span class="Apple-tab-span" style="white-space:pre">    </span>• Added newTarget parameter to [[Construct]], Reflect.construct, and proxy ‘construct’ trap.<br></div><div><span class="Apple-tab-span" style="white-space:pre">       </span>• Added NewTarget binding to Function Environment Records and abstract operations/methods of setting and accessing that binding<br></div><div><span class="Apple-tab-span" style="white-space:pre">    </span>• Redefined [[Construct]] for ordinary ECMAScript functions so “derived” constructors don’t preallocate the new object and bind this.<br></div><div><span class="Apple-tab-span" style="white-space:pre">    </span>• Changed [[Construct]] for ordinary ECMAScript functions so “derived” constructors will throw if they try to explicitly return a non-object.<br></div><div><span class="Apple-tab-span" style="white-space:pre">    </span>• Within constructors this binding has TDZ access semantics.<br></div><div><span class="Apple-tab-span" style="white-space:pre">       </span>• super(...) syntactic form now illegal in Function/GeneratorDeclaration/Expression<br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>• super(...) and new super(...) propagates current NewTarget to [[Construct]] call<br></div><div><span class="Apple-tab-span" style="white-space:pre">  </span>• super(...) binds this value upon return from [[Construct]] call, throw if new already bound<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• Refactored [[Call]] and [[Construct]] for ordinary ECMAScript functions so they can continue to shared common spec steps.<br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>• Updated Generator object instantiation to work with new [[Construct]] design<br></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>• Refactored Function constructor and GeneratorFunction to share a common abstract operation based definition<br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>• 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.<br></div><div><span class="Apple-tab-span" style="white-space:pre">    </span>• Updated [[Construct]] of Bound functions to handle newTarget parameter.<br></div><div><span class="Apple-tab-span" style="white-space:pre">  </span>• <b>Several of the above items are tentative because they still lack full TC39 discussion and review. The following are particularly tentative:</b><br><div><span class="Apple-tab-span" style="white-space:pre">             </span>• restrictions on where super(...) is allowed may change<br></div><div><span class="Apple-tab-span" style="white-space:pre">         </span>• new supper(...) might go away or change<br></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>• Support for the new.target access syntax (yellow highlight in spec text) is speculative and may move to ES7 and/or change<br></div></div><div><br></div>Other changes<br><br><div><span class="Apple-tab-span" style="white-space:pre">        </span>• Merged AllocArrayBuffer and SetArrayBufferData into single abstract operation<br></div><div><span class="Apple-tab-span" style="white-space:pre">    </span>• %TypedArray%.of now requires that its this value is a valid Typed Array constructor<br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>• Replaced “moduleId” with “sourceCodeId” and eliminated most usage of such ids in module related abstract operations<br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>• Some tweaking of Language Overview in 4.2<br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>• A new document title<br></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>• Resolved bugs: 3543-3527, 3524-3523, 3520, 3517-3516, 3514-3511, 3501-3496, 3494-3479, 3310, 3229, 3136, 2865, 2536, 2495, 2179</div></div></body></html>