News for hackers. Stuff that matters.
Re:The UTF-8-Everywhere Manifesto by khuey on Sunday April 29, 2012 @04:39PM (#3907009)
JS does require UTF-16, because the surrogate pairs of non-BMP characters are separable in JS strings.

'<non-BMP character>'.length == 2 '<non-BMP character>'[0] == first codepoint in the surrogate pair '<non-BMP character>'[1] == second codepoint in the surrogate pair

Any JS implementation using UTF-8 would have to convert to UTF-16 for proper answers to .length and array indexing on strings.

Re:The UTF-8-Everywhere Manifesto by JoshTriplett on Sunday April 29, 2012 @04:57PM (#3907088)
Still doesn't mean that it has to store the strings in UTF-16. And a bit of common-case optimizing would allow ignoring that case until a string actually ends up with a non-BMP character in it.

Alternatively, if a JavaScript implementation chose to completely ignore that particular requirement, I'd guess that approximately zero pages (outside of test cases) would break, and a few currently broken pages (that assumed sane Unicode handling) would start working.

Re:The UTF-8-Everywhere Manifesto by gwillen on Sunday April 29, 2012 @09:37PM (#3907668)
This is horrifying. :-(
Re:The UTF-8-Everywhere Manifesto by soc88 on Sunday April 29, 2012 @06:33PM (#3907329)
If stuff like length and indexing depend on the actual underlying representation, the implementation is broken regardless of the actual format used.
Re:The UTF-8-Everywhere Manifesto by btilly on Sunday April 29, 2012 @06:44PM (#3907355)
Change "implementation" to spec and I agree with you.

An implementation that fails to meet the spec can be argued as not broken, even if said spec is broken.