<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>114779</bug_id>
          
          <creation_ts>2013-04-17 19:02:58 -0700</creation_ts>
          <short_desc>Use StringJoiner to create the JSString of arrayProtoFuncToString</short_desc>
          <delta_ts>2013-04-18 18:51:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>877660</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-17 19:02:58 -0700</bug_when>
    <thetext>Use StringJoiner to create the JSString of arrayProtoFuncToString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877661</commentid>
    <comment_count>1</comment_count>
      <attachid>198668</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-17 19:05:55 -0700</bug_when>
    <thetext>Created attachment 198668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877662</commentid>
    <comment_count>2</comment_count>
      <attachid>198668</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-17 19:11:22 -0700</bug_when>
    <thetext>Comment on attachment 198668
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=198668&amp;action=review

&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:322
&gt; +        if (exec-&gt;hadException())
&gt; +            return JSValue::encode(jsUndefined());

To reviewers:
This part is unclear to me. Shouldn&apos;t the code also check hadException() after invoking JSArray-&gt;get()? The code of arrayProtoFuncToLocaleString checks exception twice:
-after JSArray::get()
-after JSValue.toWTFString()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877663</commentid>
    <comment_count>3</comment_count>
      <attachid>198668</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-17 19:14:45 -0700</bug_when>
    <thetext>Comment on attachment 198668
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=198668&amp;action=review

r=me

&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:324
&gt; +    return JSValue::encode(stringJoiner.build(exec));

As Ghost Dog would say, it is bad when one thing becomes two. It&apos;s a pet peeve of mine when a class has a name like &quot;string joiner&quot; and its action function is a different name like &quot;build&quot;. This would read better as &quot;stringJoiner.join()&quot;. Oh well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877664</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-17 19:15:49 -0700</bug_when>
    <thetext>&gt; To reviewers:
&gt; This part is unclear to me. Shouldn&apos;t the code also check hadException() after invoking JSArray-&gt;get()? The code of arrayProtoFuncToLocaleString checks exception twice:
&gt; -after JSArray::get()
&gt; -after JSValue.toWTFString()

Both JSArray::get() and JSValue.toWTFString() can throw, so yes, both should check for exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877665</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-17 19:16:53 -0700</bug_when>
    <thetext>(JSObject::getIndexQuickly() cannot throw.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877680</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-17 20:35:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; To reviewers:
&gt; &gt; This part is unclear to me. Shouldn&apos;t the code also check hadException() after invoking JSArray-&gt;get()? The code of arrayProtoFuncToLocaleString checks exception twice:
&gt; &gt; -after JSArray::get()
&gt; &gt; -after JSValue.toWTFString()
&gt; 
&gt; Both JSArray::get() and JSValue.toWTFString() can throw, so yes, both should check for exception.

I thought so!

Thanks for checking that and reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878084</commentid>
    <comment_count>7</comment_count>
      <attachid>198763</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-18 14:37:52 -0700</bug_when>
    <thetext>Created attachment 198763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878180</commentid>
    <comment_count>8</comment_count>
      <attachid>198763</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-18 18:51:29 -0700</bug_when>
    <thetext>Comment on attachment 198763
Patch

Clearing flags on attachment: 198763

Committed r148721: &lt;http://trac.webkit.org/changeset/148721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878181</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-18 18:51:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198668</attachid>
            <date>2013-04-17 19:05:55 -0700</date>
            <delta_ts>2013-04-18 14:37:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114779-20130417190526.patch</filename>
            <type>text/plain</type>
            <size>4296</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ODYxZDE0MmNlYjUwN2U0MmZiOGU3MTBjMjcwZDIyOTVlZjdmNDI0Li5mZTE5NTAwMGFiODc3MzI5
MjIwZGQ2ZGI5ZjQwMjJhNWM1ZGJkOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMy0wNC0xNyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgU3RyaW5nSm9pbmVyIHRvIGNyZWF0ZSB0aGUgSlNTdHJpbmcg
b2YgYXJyYXlQcm90b0Z1bmNUb1N0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE0Nzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIGZ1bmN0aW9uIGFycmF5UHJvdG9GdW5jVG9TdHJpbmcgd2Fz
IGp1c3QgYSBnbG9yaWZpZWQgSlNTdHJpbmdKb2luZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVw
bGFjZXMgaXQgYnkgSlNTdHJpbmdKb2luZXIgdG8gc2ltcGxpZnkgdGhlIGNvZGUgYW5kIGVuam95
IGFueSBvcHRpbWl6YXRpb24KKyAgICAgICAgbWFkZSBvbiBKU1N0cmluZ0pvaW5lci4KKworICAg
ICAgICBGb3Igc29tZSByZWFzb24sIHRoaXMgbWFrZXMgdGhlIGV4ZWN1dGlvbiAzLjQlIGZhc3Rl
ciwgZGVzcGl0ZSBoYXZpbmcgYWxtb3N0IGlkZW50aWNhbCBjb2RlLgorCisgICAgICAgICogcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVG9T
dHJpbmcpOgorCiAyMDEzLTA0LTE2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCB0aGUgV2luZG93cyBidWlsZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCAxMzdiYjE4
MzYwNzU5YWQ5MmIzNzFlMjVmNDliYzk0Y2Y1YjA2ZTc1Li40YjdjZjRhNTc4NWU2ZThhYjMzMGY4
MzY2ZTYyMWE3OTM4OTI2ZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQg
KEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEx
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMp
IDIwMDMgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKICAqICBDb3B5cmlnaHQgKEMpIDIwMDYg
QWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICoKQEAgLTMwNCw2NCArMzA0LDI0
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNUb1N0cmluZyhF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKEpTVmFsdWUgZWFybHlSZXR1cm5WYWx1ZSA9IGNoZWNr
ZXIuZWFybHlSZXR1cm5WYWx1ZSgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGVh
cmx5UmV0dXJuVmFsdWUpOwogCi0gICAgdW5zaWduZWQgdG90YWxTaXplID0gbGVuZ3RoID8gbGVu
Z3RoIC0gMSA6IDA7Ci0gICAgVmVjdG9yPFJlZlB0cjxTdHJpbmdJbXBsPiwgMjU2PiBzdHJCdWZm
ZXIobGVuZ3RoKTsKLSAgICBib29sIGFsbFN0cmluZ3M4Qml0ID0gdHJ1ZTsKLQorICAgIFN0cmlu
ZyBzZXBhcmF0b3IoIiwiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBKU1N0
cmluZ0pvaW5lciBzdHJpbmdKb2luZXIoc2VwYXJhdG9yLCBsZW5ndGgpOwogICAgIGZvciAodW5z
aWduZWQgayA9IDA7IGsgPCBsZW5ndGg7IGsrKykgewogICAgICAgICBKU1ZhbHVlIGVsZW1lbnQ7
CiAgICAgICAgIGlmICh0aGlzT2JqLT5jYW5HZXRJbmRleFF1aWNrbHkoaykpCiAgICAgICAgICAg
ICBlbGVtZW50ID0gdGhpc09iai0+Z2V0SW5kZXhRdWlja2x5KGspOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBlbGVtZW50ID0gdGhpc09iai0+Z2V0KGV4ZWMsIGspOwotICAgICAgICAKKwog
ICAgICAgICBpZiAoZWxlbWVudC5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgIAotICAgICAgICBTdHJpbmcgc3RyID0gZWxlbWVudC50b1dURlN0cmlu
ZyhleGVjKTsKLSAgICAgICAgc3RyQnVmZmVyW2tdID0gc3RyLmltcGwoKTsKLSAgICAgICAgdG90
YWxTaXplICs9IHN0ci5sZW5ndGgoKTsKLSAgICAgICAgYWxsU3RyaW5nczhCaXQgPSBhbGxTdHJp
bmdzOEJpdCAmJiBzdHIuaXM4Qml0KCk7Ci0gICAgICAgIAotICAgICAgICBpZiAoIXN0ckJ1ZmZl
ci5kYXRhKCkpIHsKLSAgICAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjKTsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGlmICghdG90YWxTaXplKQotICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRW1wdHlTdHJpbmcoZXhlYykpOwotCi0gICAgaWYgKGFsbFN0
cmluZ3M4Qml0KSB7Ci0gICAgICAgIFZlY3RvcjxMQ2hhcj4gYnVmZmVyOwotICAgICAgICBidWZm
ZXIucmVzZXJ2ZUNhcGFjaXR5KHRvdGFsU2l6ZSk7Ci0gICAgICAgIGlmICghYnVmZmVyLmRhdGEo
KSkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1lbW9yeUVy
cm9yKGV4ZWMpKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgaWYgKGkpCi0gICAgICAgICAgICAgICAgYnVmZmVy
LmFwcGVuZCgnLCcpOwotICAgICAgICAgICAgaWYgKFJlZlB0cjxTdHJpbmdJbXBsPiByZXAgPSBz
dHJCdWZmZXJbaV0pCi0gICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChyZXAtPmNoYXJhY3Rl
cnM4KCksIHJlcC0+bGVuZ3RoKCkpOwotICAgICAgICB9Ci0gICAgICAgIEFTU0VSVChidWZmZXIu
c2l6ZSgpID09IHRvdGFsU2l6ZSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNT
dHJpbmcoZXhlYywgU3RyaW5nOjphZG9wdChidWZmZXIpKSk7Ci0gICAgfQorICAgICAgICAgICAg
c3RyaW5nSm9pbmVyLmFwcGVuZChTdHJpbmcoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHN0cmluZ0pvaW5lci5hcHBlbmQoZWxlbWVudC50b1dURlN0cmluZyhleGVjKSk7CiAKLSAgICBW
ZWN0b3I8VUNoYXI+IGJ1ZmZlcjsKLSAgICBidWZmZXIucmVzZXJ2ZUNhcGFjaXR5KHRvdGFsU2l6
ZSk7Ci0gICAgaWYgKCFidWZmZXIuZGF0YSgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjKSk7Ci0gICAgICAgIAotICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoaSkKLSAgICAgICAg
ICAgIGJ1ZmZlci5hcHBlbmQoJywnKTsKLSAgICAgICAgaWYgKFJlZlB0cjxTdHJpbmdJbXBsPiBy
ZXAgPSBzdHJCdWZmZXJbaV0pCi0gICAgICAgICAgICBidWZmZXIuYXBwZW5kKHJlcC0+Y2hhcmFj
dGVycygpLCByZXAtPmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICB9Ci0gICAgQVNTRVJUKGJ1ZmZlci5zaXplKCkgPT0gdG90YWxTaXplKTsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIFN0cmluZzo6YWRvcHQoYnVmZmVyKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc3RyaW5nSm9pbmVyLmJ1aWxkKGV4ZWMpKTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1RvTG9jYWxlU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198763</attachid>
            <date>2013-04-18 14:37:52 -0700</date>
            <delta_ts>2013-04-18 18:51:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114779-20130418143722.patch</filename>
            <type>text/plain</type>
            <size>4443</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MTMzMGVkNjJiNDM2N2VlOWJjNGMwN2ZhYWZmZjNmNDRjYWU4ZDIzLi42YmNkZjUzMzIyYTEzYjgx
YzYxMmRlMTI4NTI3ZTZjYWViYjM5ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMy0wNC0xOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgU3RyaW5nSm9pbmVyIHRvIGNyZWF0ZSB0aGUgSlNTdHJpbmcg
b2YgYXJyYXlQcm90b0Z1bmNUb1N0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE0Nzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkg
R2FyZW4uCisKKyAgICAgICAgVGhlIGZ1bmN0aW9uIGFycmF5UHJvdG9GdW5jVG9TdHJpbmcgd2Fz
IGp1c3QgYSBnbG9yaWZpZWQgSlNTdHJpbmdKb2luZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVw
bGFjZXMgaXQgYnkgSlNTdHJpbmdKb2luZXIgdG8gc2ltcGxpZnkgdGhlIGNvZGUgYW5kIGVuam95
IGFueSBvcHRpbWl6YXRpb24KKyAgICAgICAgbWFkZSBvbiBKU1N0cmluZ0pvaW5lci4KKworICAg
ICAgICBGb3Igc29tZSByZWFzb24sIHRoaXMgbWFrZXMgdGhlIGV4ZWN1dGlvbiAzLjQlIGZhc3Rl
ciwgZGVzcGl0ZSBoYXZpbmcgYWxtb3N0IGlkZW50aWNhbCBjb2RlLgorCisgICAgICAgICogcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVG9T
dHJpbmcpOgorCiAyMDEzLTA0LTE3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVuYW1lZCBKU0dsb2JhbERhdGEgdG8gVk0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCBhMDlmZjhjOTU1NzRi
MmFjYjVhMTYxNTk2ZjVjNzVmNzQ5NTI2Mjc3Li40MWI2MDM0ZWZlYTQ2MWZkNGI4YjU1ZWY1M2Iw
OTc3ZGY1Y2FmZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5
OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykg
MjAwMywgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDMg
UGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5
IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICoKQEAgLTMwNCw2NCArMzA0LDI3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgaWYgKEpTVmFsdWUgZWFybHlSZXR1cm5WYWx1ZSA9IGNoZWNrZXIuZWFy
bHlSZXR1cm5WYWx1ZSgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGVhcmx5UmV0
dXJuVmFsdWUpOwogCi0gICAgdW5zaWduZWQgdG90YWxTaXplID0gbGVuZ3RoID8gbGVuZ3RoIC0g
MSA6IDA7Ci0gICAgVmVjdG9yPFJlZlB0cjxTdHJpbmdJbXBsPiwgMjU2PiBzdHJCdWZmZXIobGVu
Z3RoKTsKLSAgICBib29sIGFsbFN0cmluZ3M4Qml0ID0gdHJ1ZTsKLQorICAgIFN0cmluZyBzZXBh
cmF0b3IoIiwiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBKU1N0cmluZ0pv
aW5lciBzdHJpbmdKb2luZXIoc2VwYXJhdG9yLCBsZW5ndGgpOwogICAgIGZvciAodW5zaWduZWQg
ayA9IDA7IGsgPCBsZW5ndGg7IGsrKykgewogICAgICAgICBKU1ZhbHVlIGVsZW1lbnQ7CiAgICAg
ICAgIGlmICh0aGlzT2JqLT5jYW5HZXRJbmRleFF1aWNrbHkoaykpCiAgICAgICAgICAgICBlbGVt
ZW50ID0gdGhpc09iai0+Z2V0SW5kZXhRdWlja2x5KGspOwotICAgICAgICBlbHNlCisgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgZWxlbWVudCA9IHRoaXNPYmotPmdldChleGVjLCBrKTsKLSAg
ICAgICAgCi0gICAgICAgIGlmIChlbGVtZW50LmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgCi0gICAgICAgIFN0cmluZyBzdHIgPSBlbGVtZW50LnRv
V1RGU3RyaW5nKGV4ZWMpOwotICAgICAgICBzdHJCdWZmZXJba10gPSBzdHIuaW1wbCgpOwotICAg
ICAgICB0b3RhbFNpemUgKz0gc3RyLmxlbmd0aCgpOwotICAgICAgICBhbGxTdHJpbmdzOEJpdCA9
IGFsbFN0cmluZ3M4Qml0ICYmIHN0ci5pczhCaXQoKTsKLSAgICAgICAgCi0gICAgICAgIGlmICgh
c3RyQnVmZmVyLmRhdGEoKSkgewotICAgICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4
ZWMpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgaWYgKCF0b3RhbFNpemUpCi0gICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNFbXB0eVN0cmluZyhleGVjKSk7Ci0KLSAgICBp
ZiAoYWxsU3RyaW5nczhCaXQpIHsKLSAgICAgICAgVmVjdG9yPExDaGFyPiBidWZmZXI7Ci0gICAg
ICAgIGJ1ZmZlci5yZXNlcnZlQ2FwYWNpdHkodG90YWxTaXplKTsKLSAgICAgICAgaWYgKCFidWZm
ZXIuZGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd091dE9m
TWVtb3J5RXJyb3IoZXhlYykpOwotICAgICAgICAKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAoaSkKLSAgICAgICAgICAgICAg
ICBidWZmZXIuYXBwZW5kKCcsJyk7Ci0gICAgICAgICAgICBpZiAoUmVmUHRyPFN0cmluZ0ltcGw+
IHJlcCA9IHN0ckJ1ZmZlcltpXSkKLSAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHJlcC0+
Y2hhcmFjdGVyczgoKSwgcmVwLT5sZW5ndGgoKSk7CisgICAgICAgICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICBBU1NFUlQoYnVmZmVyLnNpemUoKSA9PSB0
b3RhbFNpemUpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMs
IFN0cmluZzo6YWRvcHQoYnVmZmVyKSkpOwotICAgIH0KIAotICAgIFZlY3RvcjxVQ2hhcj4gYnVm
ZmVyOwotICAgIGJ1ZmZlci5yZXNlcnZlQ2FwYWNpdHkodG90YWxTaXplKTsKLSAgICBpZiAoIWJ1
ZmZlci5kYXRhKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1l
bW9yeUVycm9yKGV4ZWMpKTsKLSAgICAgICAgCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChpKQotICAgICAgICAgICAgYnVmZmVyLmFwcGVu
ZCgnLCcpOwotICAgICAgICBpZiAoUmVmUHRyPFN0cmluZ0ltcGw+IHJlcCA9IHN0ckJ1ZmZlcltp
XSkKLSAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocmVwLT5jaGFyYWN0ZXJzKCksIHJlcC0+bGVu
Z3RoKCkpOworICAgICAgICBpZiAoZWxlbWVudC5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAg
ICAgICAgc3RyaW5nSm9pbmVyLmFwcGVuZChTdHJpbmcoKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHN0cmluZ0pvaW5lci5hcHBlbmQoZWxlbWVudC50b1dURlN0cmluZyhleGVjKSk7CisK
KyAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9Ci0gICAgQVNTRVJUKGJ1ZmZlci5z
aXplKCkgPT0gdG90YWxTaXplKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5n
KGV4ZWMsIFN0cmluZzo6YWRvcHQoYnVmZmVyKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoc3RyaW5nSm9pbmVyLmJ1aWxkKGV4ZWMpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhcnJheVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykK
</data>

          </attachment>
      

    </bug>

</bugzilla>