The big question is, do you want to work on “graphemes” or on “codepoints”? If the latter, do you do normalize first?
The Javascript seems to operate on “codepoints”, though the current normalisation is unknown, if it normalises at all, instead of just taking what it gets from the operating system.


















