Anne van Kesteren (2013-10-18T16:05:17.000Z)
On Fri, Oct 18, 2013 at 4:58 PM, Mathias Bynens <mathias at qiwi.be> wrote:
> On 18 Oct 2013, at 10:48, Anne van Kesteren <annevk at annevk.nl> wrote:
>> When you phrase it like that, I see another problem with
>> codePointAt(). You can't just replace existing usage of charCodeAt()
>> with codePointAt() as that would fail for input with paired
>> surrogates. E.g. a simple loop over a string that prints code points
>> would print both the code point and the trail surrogate code point for
>> a surrogate pair.
>
> I disagree. In those situations you should just iterate over the string using `for…of`.

That seems to iterate over code units as far as I can tell.

  for (var x of "💩")
    print(x.charCodeAt(0))

invokes print() twice in Gecko.


-- 
http://annevankesteren.nl/
domenic at domenicdenicola.com (2013-10-24T14:19:37.453Z)
On Fri, Oct 18, 2013 at 4:58 PM, Mathias Bynens <mathias at qiwi.be> wrote:
> On 18 Oct 2013, at 10:48, Anne van Kesteren <annevk at annevk.nl> wrote:
>> When you phrase it like that, I see another problem with
>> codePointAt(). You can't just replace existing usage of charCodeAt()
>> with codePointAt() as that would fail for input with paired
>> surrogates. E.g. a simple loop over a string that prints code points
>> would print both the code point and the trail surrogate code point for
>> a surrogate pair.
>
> I disagree. In those situations you should just iterate over the string using `for…of`.

That seems to iterate over code units as far as I can tell.

    for (var x of "💩")
      print(x.charCodeAt(0))

invokes print() twice in Gecko.