Annex F (informative) Technically Significant Corrections and Clarifications in the 5.1 Edition

7.8.4: CV definitions added for DoubleStringCharacter :: LineContinuation and SingleStringCharacter :: LineContinuation . The argument S is not ignored. It controls whether an exception is thrown when attempting to set an immutable binding. In algorithm step 5, true is passed as the last argument to [[DefineOwnProperty]].

10.5: Former algorithm step 5.e is now 5.f and a new step 5.e was added to restore compatibility with 3rd Edition when redefining global functions.

11.5.3: In the final bullet item, use of IEEE 754 round-to-nearest mode is specified.

12.6.3: Missing ToBoolean restored in step 3.a.ii of both algorithms.

12.6.4: Additional final sentences in each of the last two paragraphs clarify certain property enumeration requirements.

12.7, 12.8, 12.9: BNF modified to clarify that a continue or break statement without an Identifier or a return statement without an Expression may have a LineTerminator before the semi-colon.

12.14: Step 3 of algorithm 1 and step 2.a of algorithm 3 are corrected such that the value field of B is passed as a parameter rather than B itself. In step 2 of algorithm, clarify that S may be the empty string. In step 2 of algorithm clarify that trimmedString may be the empty string.

15.1.3: Added notes clarifying that ECMAScript’s URI syntax is based upon RFC 2396 and not the newer RFC 3986. In the algorithm for Decode, a step was removed that immediately preceded the current step 4.d.vii.10.a because it tested for a condition that cannot occur. Corrected use of variable P in steps 5 and 6 of algorithm. Edition 5 handling of undefined and null as this value caused existing code to fail. Specification modified to maintain compatibility with such code. New steps 1 and 2 added to the algorithm. Steps 5 and 7 of Edition 5 algorithm have been deleted because they imposed requirements upon the argArray argument that are inconsistent with other uses of generic array-like objects. In step 9.a, incorrect reference to relativeStart was replaced with a reference to actualStart. Clarified that the default value for fromIndex is the length minus 1 of the array. In step 9 of the algorithm, undefined is now the specified return value. In step 9.c.ii the first argument to the [[Call]] internal method has been changed to undefined for consistency with the definition of Array.prototype.reduce. In Algorithm steps 3.l.ii and 3.l.iii the variable name was inverted resulting in an incorrectly inverted test. Normative requirement concerning canonically equivalent strings deleted from paragraph following algorithm because it is listed as a recommendation in NOTE 2. In split algorithm step 11.a and 13.a, the positional order of the arguments to SplitMatch was corrected to match the actual parameter signature of SplitMatch. In step 13.a.iii.7.d, lengthA replaces A.length. In first paragraph, removed the implication that the individual character property access had “array index” semantics. Modified algorithm steps 3 and 5 such that they do not enforce “array index” requirement. Specified legal value ranges for fields that lacked them. Eliminated “time-only” formats. Specified default values for all optional fields. The step numbers of the algorithm for the internal closure produced by step 2 were incorrectly numbered in a manner that implied that they were steps of the outer algorithm. In the abstract operation IsWordChar the first character in the list in step 3 is “a” rather than “A”. In the algorithm for the closure returned by the abstract operation CharacterSetMatcher, the variable defined by step 3 and passed as an argument in step 4 was renamed to ch in order to avoid a name conflict with a formal parameter of the closure. Step 9.e was deleted because It performed an extra increment of i. Removed requirement that the message own property is set to the empty String when the message argument is undefined. Removed requirement that the message own property is set to the empty String when the message argument is undefined. Steps 6-10 modified/added to correctly deal with missing or empty message property value. Removed requirement that the message own property is set to the empty String when the message argument is undefined.

15.12.3: In step 10.b.iii of the JA internal operation, the last element of the concatenation is “]”.

B.2.1: Added to NOTE that the encoding is based upon RFC 1738 rather than the newer RFC 3986.

Annex C: An item was added corresponding to 7.6.12 regarding FutureReservedWords in strict mode.