We can't have text selection break up ligatures. We need to adopt the design where a pre-pass shapes everything (or everything relevant) and then the iterator iterates over the data structure generated.
https://bugs.webkit.org/show_bug.cgi?id=6148 will fix this, but I think we'll want to fix this bug as a halfway point before https://bugs.webkit.org/show_bug.cgi?id=6148 is fully fixed.
<rdar://problem/82546203>