marker#deleteValueAtOffset detects if the character is outside the BMP #275
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There remain some potential places where markers can still be affected by multi-code-point characters. Anywhere in
models/marker.js
that uses the native string-mutation methods (substr
, e.g.) onthis.value
are affected, butdeleteValueAtOffset
is the only one that will typically trip on this. The other methods will normally be dealing with selections read from the DOM and browsers should not allow a user to select 1/2 of an emoji.A more comprehensive fix is to write a set of UCS-2 safe string mutation functions and replace every use of built-in string mutation functions in
models/marker.js
with those.fixes #274