Rendering such languages properly depends on having a correct implementation of the bidirectional algorithm as well as glyph shaping.
Rendering these languages correctly hinges on having a proper implementation of the bidirectional algorithm along with glyph shaping.