On 4 Sep 2013, at 18:34, Brendan Eich <[email protected]> wrote:

> Here, from the latest ES6 draft, is 15.5.2.3 String.fromCodePoint ( 
> ...codePoints):
> 
> The String.fromCodePoint function may be called with a variable number of 
> arguments which form the
> rest parameter codePoints. The following steps are taken:
> 1. Assert: codePoints is a well-formed rest parameter object.
> 2. Let length be the result of Get(codePoints, "length").
> 3. Let elements be a new List.
> 4. Let nextIndex be 0.
> 5. Repeat while nextIndex < length
> a. Let next be the result of Get(codePoints, ToString(nextIndex)).
> b. Let nextCP be ToNumber(next).
> c. ReturnIfAbrupt(nextCP).
> d. If SameValue(nextCP, ToInteger(nextCP)) is false,then throw a RangeError 
> exception.
> e. If nextCP < 0 or nextCP > 0x10FFFF, then throw a RangeError exception.
> f. Append the elements of the UTF-16 Encoding (clause 6) of nextCP to the end 
> of elements.
> g. Let nextIndex be nextIndex + 1.
> 6. Return the String value whose elements are, in order, the elements in the 
> List elements. If length is 0, the
> empty string is returned.
> 
> 
> No exposed surrogates here!

I think what Anne means to say is that `String.fromCodePoint(0xD800)` returns 
'\uD800` as per that algorithm, which is a lone surrogate (and not a scalar 
value).
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to