ES2016 Draft 2015-12-01
Pre-release
Pre-release
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.