19. The non-transitory computer-readable medium of claim 18 , wherein the program code for iteratively placing each glyph comprises: program code for identifying a first point on the path, program code for determining a path segment to be occupied by the glyph and extending from the first point of the path to a second point on the path, program code for associating the glyph with a point on the path segment, and program code for truncating the path by removing the path segment occupied by the glyph.
18. A non-transitory computer-readable medium tangibly embodying program code executable by a computer system, the program code comprising: program code for, starting from a first end of a path, iteratively placing along the path each of a first subset of a plurality of glyphs in a first visual order based on determining that each of the first subset of glyphs has a first directional value indicating a first level of bidirectional embedding of the glyph, wherein the first visual order is the order in which the first subset of glyphs are displayed for reading; program code for determining that one of a second subset of the plurality of glyphs has a second directional value indicating a second level of bidirectional embedding of the glyph; program code for, starting from a second end of the path that is opposite to the first end of the path, iteratively placing along the path each of the second subset of glyphs in a second visual order, wherein the second visual order is the order in which the second subset of glyphs are displayed for reading; and program code for redetermining placement points for the second subset of glyphs by, starting from a start point on the path adjacent to the first subset of glyphs as placed on the path, iteratively placing the second subset of glyphs along the path such that the second visual order of the second subset of glyphs is maintained.