On 30 Nov 2012, at 22:50, Norbert Lindenberg <[email protected]> 
wrote:

> There's nothing in the proposal yet because I intentionally kept it small. 
> It's always possible to add functionality, but we need some evidence that it 
> will be widely used.

My guess would be that in 99% of all cases where `String.prototype.length` is 
used the intention is to count the code points, not the UCS-2/UTF-16 code 
units. As for evidence:

> Pointing at Twitter doesn't quite help - it's possible that the number that 
> Twitter shows reflects some limitation in their back-end systems.

That’s the thing — the Twitter back-end does the right thing and doesn’t 
discriminate between BMP and astral symbols. Each symbol counts as a single 
“character” towards the 140 character limit. You can post a tweet consisting of 
140 astral symbols just fine as long as you use a Twitter client that supports 
it.

The behavior you’re seeing in the Twitter web client is a bug. They’re simply 
getting the `length` of the input string rather than accounting for surrogate 
halves and counting the actual full code points.

I feel adding this functionality to ES6 would 1) help raise awareness of the 
issue, and 2) give developers an easy way to work around ECMAScript’s 
UCS-2/UTF-16-ish behavior.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to