Fix links after emoji
JavaScript strings are encoded as UTF-16. When a Unicode character
outside of the BMP is part of a string, it is encoded as a surrogate
pair. For instance, '🎨' is encoded as '\uD83C\uDFA8', but a for-of loop
will treat that as a single character with length 2. In
getByteToCharMap, this was not handled, resulting in an incorrect value
of charIndex and links being placed at the wrong location in messages.
authored by