handleTextInput seems got an outdated range for text

Here is my minimum reproduce:

new Plugin({
    props: {
      handleTextInput(view, from, to, text) {
        console.log(`handleTextInput, from: ${from}, to: ${to}, text: ${text}`);
        return !view.composing;


My quesion and expectation

I think it would give me from: 1, end: 3, text: 🤡 as result, since '🤡'.length === 2 and now is after composition end. Or I have anything misunderstood?

@marjin Is the current performance align with your expectations?

The range is the range of text that is being replaced. So in <p>xiao chou</p>, the xiao chou that is being replaced sits at range 1 to 9 and this output corresponds to what is intended.