<?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>224215</bug_id>
          
          <creation_ts>2021-04-05 16:38:36 -0700</creation_ts>
          <short_desc>Array&apos;s toString() is incorrect if join() is non-callable</short_desc>
          <delta_ts>2021-04-06 15:03:41 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747158</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-04-05 16:38:36 -0700</bug_when>
    <thetext>Array&apos;s toString() is incorrect if join() is non-callable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747182</commentid>
    <comment_count>1</comment_count>
      <attachid>425225</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-04-05 17:13:06 -0700</bug_when>
    <thetext>Created attachment 425225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747189</commentid>
    <comment_count>2</comment_count>
      <attachid>425225</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-05 17:36:51 -0700</bug_when>
    <thetext>Comment on attachment 425225
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747600</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-04-06 13:20:47 -0700</bug_when>
    <thetext>Committed r275544 (236200@main): &lt;https://commits.webkit.org/236200@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747602</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-06 13:21:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/76281426&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747647</commentid>
    <comment_count>5</comment_count>
      <attachid>425225</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-06 14:41:23 -0700</bug_when>
    <thetext>Comment on attachment 425225
Patch

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

&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:322
&gt; +    if (thisValue.isUndefined())
&gt; +        return vm.smallStrings.undefinedObjectString();
&gt; +    if (thisValue.isNull())
&gt; +        return vm.smallStrings.nullObjectString();

Isn’t it an error to return after invoking DECLARE_THROW_SCOPE without using RELEASE_AND_RETURN? Must admit I am confused about the ThrowScope idioms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747657</commentid>
    <comment_count>6</comment_count>
      <attachid>425225</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-06 15:03:41 -0700</bug_when>
    <thetext>Comment on attachment 425225
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:322
&gt;&gt; +        return vm.smallStrings.nullObjectString();
&gt; 
&gt; Isn’t it an error to return after invoking DECLARE_THROW_SCOPE without using RELEASE_AND_RETURN? Must admit I am confused about the ThrowScope idioms.

It&apos;s not if the statement you evaluate here cannot throw.  The &quot;release&quot; in RELEASE_AND_RETURN means that this ThrowScope is releasing the responsibility to check for any exceptions from this point on till the return, and letting the caller handle it.  This makes sense if the last statement we evaluate can throw.  If you don&apos;t release the responsibility, and you don&apos;t check for an exception, but the statement can throw, then that&apos;s an unhandled exception because you still have the responsibility and you didn&apos;t do the check when one is needed.

But if the statement cannot throw, then all is well because no check is needed after all before we return though we still have the responsibility.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425225</attachid>
            <date>2021-04-05 17:13:06 -0700</date>
            <delta_ts>2021-04-06 07:53:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224215-20210406031304.patch</filename>
            <type>text/plain</type>
            <size>10943</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzU0NTApCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIxLTA0LTA1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBBcnJheSdzIHRvU3RyaW5nKCkgaXMgaW5jb3JyZWN0IGlm
IGpvaW4oKSBpcyBub24tY2FsbGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNDIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL2FycmF5LXRvU3RyaW5nLW5vbi1jYWxsYWJsZS1qb2lu
LmpzOiBBZGRlZC4KKwogMjAyMS0wNC0wMiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+CiAKICAgICAgICAgUmVkdWNlIGJ5dGVjb2RlIGluc3RydWN0aW9uIGNvdW50IGVt
aXR0ZWQgZm9yIGBjbGFzcyBleHRlbmRzYApJbmRleDogSlNUZXN0cy9zdHJlc3MvYXJyYXktdG9T
dHJpbmctbm9uLWNhbGxhYmxlLWpvaW4uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3Mv
YXJyYXktdG9TdHJpbmctbm9uLWNhbGxhYmxlLWpvaW4uanMJKG5vbmV4aXN0ZW50KQorKysgSlNU
ZXN0cy9zdHJlc3MvYXJyYXktdG9TdHJpbmctbm9uLWNhbGxhYmxlLWpvaW4uanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3MyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoYEJhZCB2YWx1ZTogJHthY3R1YWx9IWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhm
dW5jLCBleHBlY3RlZEVycm9yKSB7CisgICAgbGV0IGVycm9yVGhyb3duID0gZmFsc2U7CisgICAg
dHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGVy
cm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgaWYgKGVycm9yLnRvU3RyaW5nKCkgIT09IGV4cGVj
dGVkRXJyb3IpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhZCBlcnJvcjogJHtlcnJv
cn0hYCk7CisgICAgfQorICAgIGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBF
cnJvcigiRGlkbid0IHRocm93ISIpOworfQorCitzaG91bGRCZShkZWxldGUgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZywgdHJ1ZSk7CisKK0FycmF5LnByb3RvdHlwZS5qb2luID0ge307CitzaG91
bGRCZShBcnJheS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh7fSksICJbb2JqZWN0IE9iamVjdF0i
KTsKKworbGV0IHJldm9rZU9uR2V0ID0gZmFsc2U7Citjb25zdCB7IHByb3h5LCByZXZva2UgfSA9
IFByb3h5LnJldm9jYWJsZShbXSwgeworICAgIGdldDogKHRhcmdldCwga2V5LCByZWNlaXZlcikg
PT4geworICAgICAgICBpZiAocmV2b2tlT25HZXQpCisgICAgICAgICAgICByZXZva2UoKTsKKyAg
ICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwga2V5LCByZWNlaXZlcik7CisgICAgfSwK
K30pOworCitzaG91bGRCZShBcnJheS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChwcm94eSksICJb
b2JqZWN0IEFycmF5XSIpOworcmV2b2tlT25HZXQgPSB0cnVlOworc2hvdWxkVGhyb3coKCkgPT4g
eyBBcnJheS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChwcm94eSk7IH0sICJUeXBlRXJyb3I6IEFy
cmF5LmlzQXJyYXkgY2Fubm90IGJlIGNhbGxlZCBvbiBhIFByb3h5IHRoYXQgaGFzIGJlZW4gcmV2
b2tlZCIpOworCitBcnJheS5wcm90b3R5cGUuam9pbiA9IDFuOworc2hvdWxkQmUoQXJyYXkucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwoKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KSgp
KSwgIltvYmplY3QgQXJndW1lbnRzXSIpOworc2hvdWxkQmUoQXJyYXkucHJvdG90eXBlLnRvU3Ry
aW5nLmNhbGwobmV3IEVycm9yKSwgIltvYmplY3QgRXJyb3JdIik7CisKK0FycmF5LnByb3RvdHlw
ZS5qb2luID0gU3ltYm9sKCk7CitzaG91bGRCZShBcnJheS5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChuZXcgQm9vbGVhbiksICJbb2JqZWN0IEJvb2xlYW5dIik7CitzaG91bGRCZShBcnJheS5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgTnVtYmVyKSwgIltvYmplY3QgTnVtYmVyXSIpOworCitB
cnJheS5wcm90b3R5cGUuam9pbiA9ICJqb2luIjsKK3Nob3VsZEJlKEFycmF5LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKG5ldyBTdHJpbmcpLCAiW29iamVjdCBTdHJpbmddIik7CitzaG91bGRCZShB
cnJheS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgRGF0ZSksICJbb2JqZWN0IERhdGVdIik7
CisKK0FycmF5LnByb3RvdHlwZS5qb2luID0gMTsKK3Nob3VsZEJlKEFycmF5LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKG5ldyBSZWdFeHApLCAiW29iamVjdCBSZWdFeHBdIik7CitzaG91bGRCZShB
cnJheS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgUHJveHkoKCkgPT4ge30sIHt9KSksICJb
b2JqZWN0IEZ1bmN0aW9uXSIpOworc2hvdWxkQmUoQXJyYXkucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwobmV3IFByb3h5KG5ldyBEYXRlLCB7fSkpLCAiW29iamVjdCBPYmplY3RdIik7CisKK0FycmF5
LnByb3RvdHlwZS5qb2luID0gdHJ1ZTsKK3Nob3VsZEJlKEFycmF5LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKHsgW1N5bWJvbC50b1N0cmluZ1RhZ106ICJGb28iIH0pLCAiW29iamVjdCBGb29dIik7
CitzaG91bGRCZShBcnJheS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgTWFwKSwgIltvYmpl
Y3QgTWFwXSIpOworCitBcnJheS5wcm90b3R5cGUuam9pbiA9IG51bGw7CitSZWdFeHAucHJvdG90
eXBlW1N5bWJvbC50b1N0cmluZ1RhZ10gPSAiRm9vIjsKK3Nob3VsZEJlKEFycmF5LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKG5ldyBSZWdFeHApLCAiW29iamVjdCBGb29dIik7CitOdW1iZXIucHJv
dG90eXBlW1N5bWJvbC50b1N0cmluZ1RhZ10gPSBPYmplY3QoIkZvbyIpOyAvLyBpZ25vcmVkCitz
aG91bGRCZShBcnJheS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgTnVtYmVyKSwgIltvYmpl
Y3QgTnVtYmVyXSIpOworCitzaG91bGRCZShkZWxldGUgQXJyYXkucHJvdG90eXBlLmpvaW4sIHRy
dWUpOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoSlNPTiwgU3ltYm9sLnRvU3RyaW5nVGFnLCB7
IHZhbHVlOiAiRm9vIiB9KTsKK3Nob3VsZEJlKEFycmF5LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KEpTT04pLCAiW29iamVjdCBGb29dIik7CisKK3Nob3VsZEJlKGRlbGV0ZSBTZXQucHJvdG90eXBl
W1N5bWJvbC50b1N0cmluZ1RhZ10sIHRydWUpOworc2hvdWxkQmUoQXJyYXkucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwobmV3IFNldCksICJbb2JqZWN0IE9iamVjdF0iKTsKKworT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsIFN5bWJvbC50b1N0cmluZ1RhZywgeyBnZXQ6ICgp
ID0+IHsgdGhyb3cgbmV3IEVycm9yKCJAQHRvU3RyaW5nVGFnIik7IH0gfSk7CitzaG91bGRUaHJv
dygoKSA9PiB7IEFycmF5LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHt9KTsgfSwgIkVycm9yOiBA
QHRvU3RyaW5nVGFnIik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3
NTQ1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyOSBAQAorMjAyMS0wNC0wNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CisKKyAgICAgICAgQXJyYXkncyB0b1N0cmluZygpIGlzIGluY29ycmVjdCBp
ZiBqb2luKCkgaXMgbm9uLWNhbGxhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjQyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGV4cG9zZXMgT2JqZWN0LnByb3RvdHlwZS50b1N0
cmluZyB0byBiZSB1c2VkIGJ5IEFycmF5LnByb3RvdHlwZS50b1N0cmluZworICAgICAgICBpZiAi
am9pbiIgbG9va3VwIGRvZXNuJ3QgcmV0dXJuIGEgY2FsbGFibGUgdmFsdWUgWzFdLgorCisgICAg
ICAgIEZpeGVzIEFycmF5J3MgdG9TdHJpbmcoKSB0byByZXR1cm4gdGhlIGNvcnJlY3QgdGFnIGlu
c3RlYWQgb2YgaW50ZXJuYWwgYGNsYXNzTmFtZWAsCisgICAgICAgIHBlcmZvcm0gU3ltYm9sLnRv
U3RyaW5nVGFnIGxvb2t1cCwgYW5kIGhhbmRsZSBQcm94eSAoaW5jbHVkaW5nIHJldm9rZWQpIHBl
ciBzcGVjLgorICAgICAgICBBbGlnbnMgSlNDIHdpdGggVjggYW5kIFNwaWRlck1vbmtleS4KKwor
ICAgICAgICBBbHNvLCBhIGZldyBvYmplY3RQcm90b3R5cGVUb1N0cmluZygpIHR3ZWFrczogYSBi
aXQgbmljZXIgYHVuZGVmaW5lZGAgLyBgbnVsbGAKKyAgICAgICAgY2hlY2tzIGFuZCBzaW1wbGVy
IHRvT2JqZWN0KCkgZXhjZXB0aW9uIGhhbmRsaW5nLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90
YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUudG9zdHJpbmcgKHN0ZXAgMykKKwor
ICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG90eXBlVG9TdHJpbmcpOgorICAgICAgICAo
SlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmg6CisKIDIwMjEtMDQtMDIgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hA
Z21haWwuY29tPgogCiAgICAgICAgIFJlZHVjZSBieXRlY29kZSBpbnN0cnVjdGlvbiBjb3VudCBl
bWl0dGVkIGZvciBgY2xhc3MgZXh0ZW5kc2AKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDI3NTQ1MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkpTSW1tdXRhYmxlQnV0dGVyZmx5Lmgi
CiAjaW5jbHVkZSAiSlNTdHJpbmdKb2luZXIuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rv
ci5oIgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlN0cmluZ1JlY3Vy
c2lvbkNoZWNrZXIuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KQEAgLTYxMiwxOSArNjEzLDEzIEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihh
cnJheVByb3RvRnVuY1QKICAgICBJbnRlZ3JpdHk6OmF1ZGl0U3RydWN0dXJlSUQodm0sIHRoaXNP
YmplY3QtPnN0cnVjdHVyZUlEKCkpOwogICAgIGlmICghY2FuVXNlRGVmYXVsdEFycmF5Sm9pbkZv
clRvU3RyaW5nKHZtLCB0aGlzT2JqZWN0KSkgewogICAgICAgICAvLyAyLiBMZXQgZnVuYyBiZSB0
aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIFtbR2V0XV0gaW50ZXJuYWwgbWV0aG9kIG9mIGFycmF5
IHdpdGggYXJndW1lbnQgImpvaW4iLgotICAgICAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gSlNWYWx1
ZSh0aGlzT2JqZWN0KS5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5qb2luKTsK
KyAgICAgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IHRoaXNPYmplY3QtPmdldChnbG9iYWxPYmplY3Qs
IHZtLnByb3BlcnR5TmFtZXMtPmpvaW4pOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgICAgICAvLyAzLiBJZiBJc0NhbGxhYmxlKGZ1
bmMpIGlzIGZhbHNlLCB0aGVuIGxldCBmdW5jIGJlIHRoZSBzdGFuZGFyZCBidWlsdC1pbiBtZXRo
b2QgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyAoMTUuMi40LjIpLgotICAgICAgICBib29sIGN1
c3RvbUpvaW5DYXNlID0gZmFsc2U7Ci0gICAgICAgIGlmICghZnVuY3Rpb24uaXNDZWxsKCkpCi0g
ICAgICAgICAgICBjdXN0b21Kb2luQ2FzZSA9IHRydWU7CiAgICAgICAgIGF1dG8gY2FsbERhdGEg
PSBnZXRDYWxsRGF0YSh2bSwgZnVuY3Rpb24pOwotICAgICAgICBpZiAoY2FsbERhdGEudHlwZSA9
PSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSkKLSAgICAgICAgICAgIGN1c3RvbUpvaW5DYXNlID0gdHJ1
ZTsKLQotICAgICAgICBpZiAoVU5MSUtFTFkoY3VzdG9tSm9pbkNhc2UpKQotICAgICAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlh
bFN0cmluZyhnbG9iYWxPYmplY3QsICJbb2JqZWN0ICIsIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxl
KHZtKS0+Y2xhc3NOYW1lKHRoaXNPYmplY3QsIHZtKSwgIl0iKSkpOworICAgICAgICBpZiAoVU5M
SUtFTFkoY2FsbERhdGEudHlwZSA9PSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSkpCisgICAgICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShvYmplY3RQcm90b3R5
cGVUb1N0cmluZyhnbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSk7CiAKICAgICAgICAgLy8gNC4g
UmV0dXJuIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgW1tDYWxsXV0gaW50ZXJuYWwgbWV0aG9k
IG9mIGZ1bmMgcHJvdmlkaW5nIGFycmF5IGFzIHRoZSB0aGlzIHZhbHVlIGFuZCBhbiBlbXB0eSBh
cmd1bWVudHMgbGlzdC4KICAgICAgICAgaWYgKCFpc0pTQXJyYXkodGhpc09iamVjdCkgfHwgY2Fs
bERhdGEudHlwZSAhPSBDYWxsRGF0YTo6VHlwZTo6TmF0aXZlIHx8IGNhbGxEYXRhLm5hdGl2ZS5m
dW5jdGlvbiAhPSBhcnJheVByb3RvRnVuY0pvaW4pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDI3NTQ1MCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxMSwyNiArMzExLDI1IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihvYmplY3RQcm90b0Z1bmMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgdG9TdHJpbmcsIGNhbGxEYXRhLCB0aGlzVmFsdWUs
ICp2bS5lbXB0eUxpc3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RQ
cm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK0pTU3RyaW5nKiBvYmplY3RQcm90b3R5cGVUb1N0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCi0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgp
LnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0gICAgaWYgKHRoaXNW
YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHRoaXNWYWx1ZS5pc1VuZGVmaW5lZCgpID8gdm0uc21hbGxTdHJpbmdzLnVuZGVmaW5lZE9iamVj
dFN0cmluZygpIDogdm0uc21hbGxTdHJpbmdzLm51bGxPYmplY3RTdHJpbmcoKSk7CisgICAgaWYg
KHRoaXNWYWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1cm4gdm0uc21hbGxTdHJpbmdz
LnVuZGVmaW5lZE9iamVjdFN0cmluZygpOworICAgIGlmICh0aGlzVmFsdWUuaXNOdWxsKCkpCisg
ICAgICAgIHJldHVybiB2bS5zbWFsbFN0cmluZ3MubnVsbE9iamVjdFN0cmluZygpOwogICAgIEpT
T2JqZWN0KiB0aGlzT2JqZWN0ID0gdGhpc1ZhbHVlLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7Ci0g
ICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlvbigpID09ICF0aGlzT2JqZWN0KTsK
LSAgICBpZiAoIXRoaXNPYmplY3QpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKIAogICAgIEludGVn
cml0eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgdGhpc09iamVjdC0+c3RydWN0dXJlSUQoKSk7CiAg
ICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5jYWNoZWRTcGVjaWFs
UHJvcGVydHkoQ2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5OjpUb1N0cmluZ1RhZyk7CiAgICAgaWYg
KHJlc3VsdCkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworICAgICAg
ICByZXR1cm4gYXNTdHJpbmcocmVzdWx0KTsKIAogICAgIFN0cmluZyB0YWcgPSB0aGlzT2JqZWN0
LT5tZXRob2RUYWJsZSh2bSktPnRvU3RyaW5nTmFtZSh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3Qp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgSlNTdHJpbmcqIGpzVGFnID0gbnVsbHB0cjsK
IAogICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpHZXQpOwpAQCAtMzM4LDcgKzMzNyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihvYmplY3RQcm90b0Z1bmMKICAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNl
cHRpb24oKSB8fCAhaGFzUHJvcGVydHkpOwogICAgIGlmIChoYXNQcm9wZXJ0eSkgewogICAgICAg
ICBKU1ZhbHVlIHRhZ1ZhbHVlID0gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIHZtLnByb3Bl
cnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7CiAgICAgICAgIGlmICh0YWdWYWx1ZS5pc1N0cmluZygpKQogICAgICAgICAgICAganNUYWcg
PSBhc1N0cmluZyh0YWdWYWx1ZSk7CiAgICAgfQpAQCAtMzQ5LDkgKzM0OCwxNSBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jCiAgICAgfQogCiAgICAgSlNTdHJpbmcq
IGpzUmVzdWx0ID0ganNTdHJpbmcoZ2xvYmFsT2JqZWN0LCB2bS5zbWFsbFN0cmluZ3Mub2JqZWN0
U3RyaW5nU3RhcnQoKSwganNUYWcsIHZtLnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJp
bmcoJ10nKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICB0aGlzT2JqZWN0LT5zdHJ1Y3R1
cmUodm0pLT5jYWNoZVNwZWNpYWxQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBqc1Jlc3VsdCwg
Q2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5OjpUb1N0cmluZ1RhZywgc2xvdCk7Ci0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1Jlc3VsdCk7CisgICAgcmV0dXJuIGpzUmVzdWx0OworfQorCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmpl
Y3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmpl
Y3RQcm90b3R5cGVUb1N0cmluZyhnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5oCShyZXZpc2lvbiAyNzU0NTApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiAr
NTEsNyBAQCBwcml2YXRlOgogfTsKIAogSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk7CitKU1N0cmluZyogb2JqZWN0UHJv
dG90eXBlVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHRoaXNWYWx1ZSk7CiBib29s
IG9iamVjdFByb3RvdHlwZUhhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBi
YXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>
<flag name="review"
          id="445082"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
    <flag name="commit-queue"
          id="445169"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>