Status, process, and documents for ECMA-262
Note: this is still only a candidate, until the Ecma GA approves it in June. TC39 approved it on 2020.04.02.
escape
produces uppercase characters (#559)__defineGetter__
, __defineSetter__
, __lookupGetter__
, and __lookupSetter
for web compatibility reasons (#381)ES2016 will be snapped and begin its journey toward an official ECMAScript standard on March 1st.
/{1}/
(previously allowed through ExtendedTerm -> Atom -> PatternCharacter)/{*/
, /}*/
/]/
/\c%/
by removing the \
restriction (/\c%/
is equivalent to writing /\\c%/
)/[\c_]/
and /[\c1]/
to ClassEscape (the extended forms \c_
and \c<decimal digit>
are only valid in Charact - Changed "ClassEscape :: [~U] DecimalEscape" to allow /[\8]/
by adding the restriction "but only if the integer value of DecimalEsc - Character ranges which start or end with a non-single element CharSet are now handled in a more web-conform way.Too numerous to mention all of them. However, a new exciting change is that well-known intrinsic objects are now linked to their definitions!
Happy Holidays everyone in ECMAScript land! :gift: :fire: :family:
length
property of built-in functions. The general case defined in clause 17 no longer includes optional arguments in the expected argument count thus aligning with how parameters with initializers. All subsequent length
property specifications are removed when it duplicates the general case in clause 17. Explicit length specifications were added to clauses to preserve the previous semantics and web reality. In the case of a number of DataView.prototype
APIs, there is no web consensus, and so these now follow the general case in clause 17.This edition adds a new prefix operator, !
, to the algorithm conventions for asserting that the result of an abstract operation does not result in an abrupt completion and that the completion record's [[value]] field should be unwrapped. This convention was applied to a number of calls to abstract operations but there are many remaining places that can use this new operator (pull requests welcome!).
Additionally, this edition moves more algorithms to the new ?
operator for ReturnIfAbrupt. Also, many abstract operations that previously would pass through abrupt completions passed as parameters now do not exhibit this behavior. Instead, callers should use ?
to prevent the call to the abstract operation in the first place.
callee
is now created before caller
.this
in global scope to be different by adding a [[GlobalThisValue]] slot to global environment records and allow hosts to set it as needed in NewGlobalEnvironment.Layering updates do not contain any semantic changes but are instead useful for other specifications to use.