<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[202083] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/202083">202083</a></dd>
<dt>Author</dt> <dd>mmaxfield@apple.com</dd>
<dt>Date</dt> <dd>2016-06-14 21:44:01 -0700 (Tue, 14 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Honor bidi unicode codepoints
https://bugs.webkit.org/show_bug.cgi?id=149170
&lt;rdar://problem/26527378&gt;

Reviewed by Simon Fraser.

Source/WebCore:

BidiResolver doesn't have any concept of isolate Unicode code points, so produces
unexpected output when they are present. Fix by considering such code points as
whitespace in the bidi algorithm. This is a stop-gap measure until we can support
the codepoints fully in our Bidi algorithm.

Test: fast/text/isolate-ignore.html

* platform/graphics/Font.cpp:
(WebCore::createAndFillGlyphPage):
* platform/text/BidiResolver.h:
(WebCore::Subclass&gt;::createBidiRunsForLine):

Source/WTF:

* wtf/unicode/CharacterNames.h:

LayoutTests:

* fast/text/isolate-ignore-expected.html: Added.
* fast/text/isolate-ignore.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfunicodeCharacterNamesh">trunk/Source/WTF/wtf/unicode/CharacterNames.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontcpp">trunk/Source/WebCore/platform/graphics/Font.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformtextBidiResolverh">trunk/Source/WebCore/platform/text/BidiResolver.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfasttextisolateignoreexpectedhtml">trunk/LayoutTests/fast/text/isolate-ignore-expected.html</a></li>
<li><a href="#trunkLayoutTestsfasttextisolateignorehtml">trunk/LayoutTests/fast/text/isolate-ignore.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (202082 => 202083)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-06-15 02:52:35 UTC (rev 202082)
+++ trunk/LayoutTests/ChangeLog        2016-06-15 04:44:01 UTC (rev 202083)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-06-14  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Honor bidi unicode codepoints
+        https://bugs.webkit.org/show_bug.cgi?id=149170
+        &lt;rdar://problem/26527378&gt;
+
+        Reviewed by Simon Fraser.
+
+        * fast/text/isolate-ignore-expected.html: Added.
+        * fast/text/isolate-ignore.html: Added.
+
</ins><span class="cx"> 2016-06-14  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Rename Timeline.setAutoCaptureInstruments to Timeline.setInstruments
</span></span></pre></div>
<a id="trunkLayoutTestsfasttextisolateignoreexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/text/isolate-ignore-expected.html (0 => 202083)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/text/isolate-ignore-expected.html                                (rev 0)
+++ trunk/LayoutTests/fast/text/isolate-ignore-expected.html        2016-06-15 04:44:01 UTC (rev 202083)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;body&gt;
+This test makes sure that isolate codepoints are ignored.
+&lt;div dir=&quot;ltr&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;English &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; English&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasttextisolateignorehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/text/isolate-ignore.html (0 => 202083)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/text/isolate-ignore.html                                (rev 0)
+++ trunk/LayoutTests/fast/text/isolate-ignore.html        2016-06-15 04:44:01 UTC (rev 202083)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;body&gt;
+This test makes sure that isolate codepoints are ignored.
+&lt;div dir=&quot;ltr&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; &amp;#x2068;English&amp;#x2069; &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;English &amp;#x2068;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&amp;#x2069; English&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; &amp;#x2068;English&amp;#x2069; &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;English &amp;#x2068;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&amp;#x2069; English&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; &amp;#x2066;English&amp;#x2069; &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;English &amp;#x2066;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&amp;#x2069; English&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; &amp;#x2066;English&amp;#x2069; &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;English &amp;#x2066;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&amp;#x2069; English&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; &amp;#x2067;English&amp;#x2069; &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;ltr&quot;&gt;English &amp;#x2067;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&amp;#x2069; English&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea; &amp;#x2067;English&amp;#x2069; &amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&lt;/div&gt;
+&lt;div dir=&quot;rtl&quot;&gt;English &amp;#x2067;&amp;#x05e2;&amp;#x05d1;&amp;#x05e8;&amp;#x05d9;&amp;#x05ea;&amp;#x2069; English&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (202082 => 202083)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2016-06-15 02:52:35 UTC (rev 202082)
+++ trunk/Source/WTF/ChangeLog        2016-06-15 04:44:01 UTC (rev 202083)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-06-14  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Honor bidi unicode codepoints
+        https://bugs.webkit.org/show_bug.cgi?id=149170
+        &lt;rdar://problem/26527378&gt;
+
+        Reviewed by Simon Fraser.
+
+        * wtf/unicode/CharacterNames.h:
+
</ins><span class="cx"> 2016-06-14  Commit Queue  &lt;commit-queue@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r202057.
</span></span></pre></div>
<a id="trunkSourceWTFwtfunicodeCharacterNamesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/unicode/CharacterNames.h (202082 => 202083)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/unicode/CharacterNames.h        2016-06-15 02:52:35 UTC (rev 202082)
+++ trunk/Source/WTF/wtf/unicode/CharacterNames.h        2016-06-15 04:44:01 UTC (rev 202083)
</span><span class="lines">@@ -48,6 +48,7 @@
</span><span class="cx"> const UChar carriageReturn = 0x000D;
</span><span class="cx"> const UChar ethiopicPrefaceColon = 0x1366;
</span><span class="cx"> const UChar ethiopicWordspace = 0x1361;
</span><ins>+const UChar firstStrongIsolate = 0x2068;
</ins><span class="cx"> const UChar fisheye = 0x25C9;
</span><span class="cx"> const UChar quotationMark = 0x0022;
</span><span class="cx"> const UChar hebrewPunctuationGeresh = 0x05F3;
</span><span class="lines">@@ -62,6 +63,7 @@
</span><span class="cx"> const UChar leftDoubleQuotationMark = 0x201C;
</span><span class="cx"> const UChar leftSingleQuotationMark = 0x2018;
</span><span class="cx"> const UChar leftToRightEmbed = 0x202A;
</span><ins>+const UChar leftToRightIsolate = 0x2066;
</ins><span class="cx"> const UChar leftToRightMark = 0x200E;
</span><span class="cx"> const UChar leftToRightOverride = 0x202D;
</span><span class="cx"> const UChar minusSign = 0x2212;
</span><span class="lines">@@ -70,10 +72,12 @@
</span><span class="cx"> const UChar noBreakSpace = 0x00A0;
</span><span class="cx"> const UChar objectReplacementCharacter = 0xFFFC;
</span><span class="cx"> const UChar popDirectionalFormatting = 0x202C;
</span><ins>+const UChar popDirectionalIsolate = 0x2069;
</ins><span class="cx"> const UChar replacementCharacter = 0xFFFD;
</span><span class="cx"> const UChar rightDoubleQuotationMark = 0x201D;
</span><span class="cx"> const UChar rightSingleQuotationMark = 0x2019;
</span><span class="cx"> const UChar rightToLeftEmbed = 0x202B;
</span><ins>+const UChar rightToLeftIsolate = 0x2067;
</ins><span class="cx"> const UChar rightToLeftMark = 0x200F;
</span><span class="cx"> const UChar rightToLeftOverride = 0x202E;
</span><span class="cx"> const UChar sesameDot = 0xFE45;
</span><span class="lines">@@ -107,6 +111,7 @@
</span><span class="cx"> using WTF::Unicode::carriageReturn;
</span><span class="cx"> using WTF::Unicode::ethiopicPrefaceColon;
</span><span class="cx"> using WTF::Unicode::ethiopicWordspace;
</span><ins>+using WTF::Unicode::firstStrongIsolate;
</ins><span class="cx"> using WTF::Unicode::fisheye;
</span><span class="cx"> using WTF::Unicode::hebrewPunctuationGeresh;
</span><span class="cx"> using WTF::Unicode::hebrewPunctuationGershayim;
</span><span class="lines">@@ -120,6 +125,7 @@
</span><span class="cx"> using WTF::Unicode::leftDoubleQuotationMark;
</span><span class="cx"> using WTF::Unicode::leftSingleQuotationMark;
</span><span class="cx"> using WTF::Unicode::leftToRightEmbed;
</span><ins>+using WTF::Unicode::leftToRightIsolate;
</ins><span class="cx"> using WTF::Unicode::leftToRightMark;
</span><span class="cx"> using WTF::Unicode::leftToRightOverride;
</span><span class="cx"> using WTF::Unicode::minusSign;
</span><span class="lines">@@ -128,10 +134,12 @@
</span><span class="cx"> using WTF::Unicode::noBreakSpace;
</span><span class="cx"> using WTF::Unicode::objectReplacementCharacter;
</span><span class="cx"> using WTF::Unicode::popDirectionalFormatting;
</span><ins>+using WTF::Unicode::popDirectionalIsolate;
</ins><span class="cx"> using WTF::Unicode::replacementCharacter;
</span><span class="cx"> using WTF::Unicode::rightDoubleQuotationMark;
</span><span class="cx"> using WTF::Unicode::rightSingleQuotationMark;
</span><span class="cx"> using WTF::Unicode::rightToLeftEmbed;
</span><ins>+using WTF::Unicode::rightToLeftIsolate;
</ins><span class="cx"> using WTF::Unicode::rightToLeftMark;
</span><span class="cx"> using WTF::Unicode::rightToLeftOverride;
</span><span class="cx"> using WTF::Unicode::sesameDot;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (202082 => 202083)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-15 02:52:35 UTC (rev 202082)
+++ trunk/Source/WebCore/ChangeLog        2016-06-15 04:44:01 UTC (rev 202083)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2016-06-14  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Honor bidi unicode codepoints
+        https://bugs.webkit.org/show_bug.cgi?id=149170
+        &lt;rdar://problem/26527378&gt;
+
+        Reviewed by Simon Fraser.
+
+        BidiResolver doesn't have any concept of isolate Unicode code points, so produces
+        unexpected output when they are present. Fix by considering such code points as
+        whitespace in the bidi algorithm. This is a stop-gap measure until we can support
+        the codepoints fully in our Bidi algorithm.
+
+        Test: fast/text/isolate-ignore.html
+
+        * platform/graphics/Font.cpp:
+        (WebCore::createAndFillGlyphPage):
+        * platform/text/BidiResolver.h:
+        (WebCore::Subclass&gt;::createBidiRunsForLine):
+
</ins><span class="cx"> 2016-06-14  Antoine Quint  &lt;graouts@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS] Play glyph is pixelated when the page zoom is large
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Font.cpp (202082 => 202083)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Font.cpp        2016-06-15 02:52:35 UTC (rev 202082)
+++ trunk/Source/WebCore/platform/graphics/Font.cpp        2016-06-15 04:44:01 UTC (rev 202083)
</span><span class="lines">@@ -185,9 +185,13 @@
</span><span class="cx">             buffer[rightToLeftEmbed - start] = zeroWidthSpace;
</span><span class="cx">             buffer[leftToRightOverride - start] = zeroWidthSpace;
</span><span class="cx">             buffer[rightToLeftOverride - start] = zeroWidthSpace;
</span><ins>+            buffer[leftToRightIsolate - start] = zeroWidthSpace;
+            buffer[rightToLeftIsolate - start] = zeroWidthSpace;
</ins><span class="cx">             buffer[zeroWidthNonJoiner - start] = zeroWidthSpace;
</span><span class="cx">             buffer[zeroWidthJoiner - start] = zeroWidthSpace;
</span><span class="cx">             buffer[popDirectionalFormatting - start] = zeroWidthSpace;
</span><ins>+            buffer[popDirectionalIsolate - start] = zeroWidthSpace;
+            buffer[firstStrongIsolate - start] = zeroWidthSpace;
</ins><span class="cx">         } else if (start == (objectReplacementCharacter &amp; ~(GlyphPage::size - 1))) {
</span><span class="cx">             // Object replacement character must not render at all.
</span><span class="cx">             buffer[objectReplacementCharacter - start] = zeroWidthSpace;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextBidiResolverh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/BidiResolver.h (202082 => 202083)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/BidiResolver.h        2016-06-15 02:52:35 UTC (rev 202082)
+++ trunk/Source/WebCore/platform/text/BidiResolver.h        2016-06-15 04:44:01 UTC (rev 202083)
</span><span class="lines">@@ -630,9 +630,16 @@
</span><span class="cx">                 dirCurrent = m_status.last;
</span><span class="cx">         }
</span><span class="cx"> 
</span><ins>+#if PLATFORM(WIN)
+        // Our Windows build hasn't updated its headers from ICU 6.1, which doesn't have these symbols.
+        const UCharDirection U_FIRST_STRONG_ISOLATE = static_cast&lt;UCharDirection&gt;(19);
+        const UCharDirection U_LEFT_TO_RIGHT_ISOLATE = static_cast&lt;UCharDirection&gt;(20);
+        const UCharDirection U_RIGHT_TO_LEFT_ISOLATE = static_cast&lt;UCharDirection&gt;(21);
+        const UCharDirection U_POP_DIRECTIONAL_ISOLATE = static_cast&lt;UCharDirection&gt;(22);
+#endif
</ins><span class="cx">         // We ignore all character directionality while in unicode-bidi: isolate spans.
</span><span class="cx">         // We'll handle ordering the isolated characters in a second pass.
</span><del>-        if (inIsolate())
</del><ins>+        if (inIsolate() || dirCurrent == U_FIRST_STRONG_ISOLATE || dirCurrent == U_LEFT_TO_RIGHT_ISOLATE || dirCurrent == U_RIGHT_TO_LEFT_ISOLATE || dirCurrent == U_POP_DIRECTIONAL_ISOLATE)
</ins><span class="cx">             dirCurrent = U_OTHER_NEUTRAL;
</span><span class="cx"> 
</span><span class="cx">         ASSERT(m_status.eor != U_OTHER_NEUTRAL || m_eor.atEnd());
</span></span></pre>
</div>
</div>

</body>
</html>