Skip to content

ES2016 Draft 2015-12-01

Pre-release
Pre-release
Compare
Choose a tag to compare
@bterlson bterlson released this 01 Dec 18:36

Normative Changes

  • Promise.all and Promise.race no longer use @@ species to construct a new instance.
  • RegExp.prototype.[[@@ split]] now coerces limit using ToUint32. This was erroneously changed in ES6 to use ToLength which could result in broken array indexes.
  • Add new early error for functions which contain both a non-simple parameter list and a use strict directive (Notes: here and here).
  • BindingPattern is now allowed in BindingRestElement. Semantically this is not very useful, but it aligns the binding patterns with the assignment patterns. (Notes).
  • Remove [[Construct]] from generators. (Notes: here and here).
  • Allow CreateDynamicFunction to throw early reference errors (previously, it expected only syntax errors to be thrown).
  • Multiple fixes to Annex B declaration initialization semantics:
    • Tighten Annex B.3.5 catch parameter remedy to not allow redeclaration of bindings introduced via destructuring on the catch parameter.
    • Don't change GlobalDeclarationInitialization & EvalDeclarationInitialization declaredVarNames list because it is used to install the global var names (step 18).
    • Check GlobalDeclarationInitialization & EvalDeclarationInitialization declaredFunctionNames to avoid installing a global function binding multiple times.
    • Don't create a global function binding in EvalDeclarationInitialization if a global lexical binding is present.
    • Check for existing var-bindings in EvalDeclarationInitialization before calling CreateMutableBinding.
    • Set the deletable flag to true for CreateMutableBinding in EvalDeclarationInitialization.
  • Add new invariants for [[IsExtensible]] - it must return a Boolean, and once it returns false, all future calls must return false.
  • Add missing ToUint32 to ArrayAccumulation and Array Evaluation

Layering Updates

Layering updates do not contain any semantic changes but are instead useful for other specifications to use.

  • Add HostPromiseRejectionTracker which makes it easier for host applications (especially browsers) to provide promise debugging capabilities.

Bugzilla bugs fixed:

4510 4538 4474 4489
4477 4469