Safari 8 incorrectly renders "<p>िस</p>" by incorrectly placing "स" in the right margin. The issue seems to be that these Devanagari characters are encoded in visual order rather than logical order. The canonical, logical order of "सि" renders correctly. However, the visual order is sometimes used, especially by people less familiar with the prescribed logical order of Devanagari characters in Unicode. The visual order, though in some sense "wrong", should therefore not fail so spectacularly. This case was, in fact, handled more gracefully in Safari 7; the issue seems to have been introduced in Safari 8.
cc: myles It would be helpful if you put together a minimal testcase.html that demonstrates the problem, which can be quickly loaded on different browser versions for identifying the regression. Screenshots of the expected and actual output are also very useful.
Created attachment 260949 [details] test case with Devanagari in visual order
Created attachment 260950 [details] Rendering of testcase-visual.html in Safari 8
Created attachment 260951 [details] Minimal test case with Devanagari in canonical order
Created attachment 260952 [details] Rendering of testcase-canonical.html in Safari 8
OK, here you go. The testcase-visual* files show the problem case and how it renders. The testcase-canonical* files show the correct rendering. testcase-visual.html should render the same as testcase-canonical.html, but does not in Safari 8. (It does in Safari 7 and Chrome 45.)
Safari 9 has very different behavior here than Safari 8.
Safari 9 renders this the same way as native Core Text, which means that this is a CoreText bug.
Created attachment 260957 [details] Rendering of testcase-visual.html in Safari 9
<rdar://problem/22650624>
Same failure with the nonstandard character pair आा (U+0906, U+093e), where an inversion of their order is not an issue.
Single Devanagari spacing dependent characters in center-aligned-text table cells are displayed against the left (if their logically prior character would be to their right) or right (if their logically prior character would be to their left) edge of the cell and force the column width to be about 1100 pixels. Code points appearing at the right edge include 0901, 0902, 0903, 093c, 093e, 0940, 0941, 0942, 0943, 0945, 0946, 0947, 0948, 0949, 094a, 094b 094c, 094d, and 0953. A code point appearing at the left edge is 093f.
The fix for this issue was needed outside the WebKit project, therefore this is being resolved as 'Moved'. The relevant experts in the CoreText component feel that this behavior is correct.