1. Render an emoji ZWJ sequence, for example U+1F468 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466 (MAN ZWJ WOMAN ZWJ GIRL ZWJ BOY).
2. Put it in an element with writing-mode: vertical-rl (or the legacy tb-rl) and the default text-orientation: mixed.
3. Compare against the same string in horizontal-tb.
Expected: one combined glyph, the same cluster the horizontal case produces.
Actual: the sequence falls apart into its component emoji, stacked as separate characters.
Rendered is live in your browser. Expected is a
content_shell baseline with the patch applied. Diff
highlights the pixels the patch changes relative to an unpatched build.
writing-mode: vertical-rl vs horizontal-tb
On an unpatched build the three vertical columns show four separate emoji; the horizontal one shows a single family glyph.


ZWJ sequence that also contains a variation selector


PIRATE FLAG, POLAR BEAR, WOMAN TECHNOLOGIST, MAN FARMER


a<ZWJ>b and a Devanagari half-form U+0915 U+094D U+200D U+0937 still follow UAX #50 for their own characters
Glyph selection is unchanged. The third cell shifts by a sub-pixel because GB9 moves the zero-width joiner from the rotated run into the upright emoji run.

