<?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>141952</bug_id>
          
          <creation_ts>2015-02-23 21:14:52 -0800</creation_ts>
          <short_desc>GenericArguments&lt;Type&gt;::getOwnPropertyNames() should respect modified descriptors</short_desc>
          <delta_ts>2021-04-09 18:36:45 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159398</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>141951</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1071529</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-23 21:14:52 -0800</bug_when>
    <thetext>Wow, that&apos;s a mouthful.  The title of this bug is almost as weird as how browsers behave when you do defineProperty on arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263059</commentid>
    <comment_count>1</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2016-12-29 09:15:26 -0800</bug_when>
    <thetext>This strange behavior was fixed on https://bugs.webkit.org/show_bug.cgi?id=159398</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739161</commentid>
    <comment_count>2</comment_count>
      <attachid>423105</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-13 11:05:44 -0800</bug_when>
    <thetext>Created attachment 423105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739164</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-13 11:08:34 -0800</bug_when>
    <thetext>(In reply to Caio Lima from comment #1)
&gt; This strange behavior was fixed on
&gt; https://bugs.webkit.org/show_bug.cgi?id=159398

r210146 is a great patch that fixed enumerability observed via getOwnPropertySlot[ByIndex](), but not via getOwnPropertyNames(), which is taken care by this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739184</commentid>
    <comment_count>4</comment_count>
      <attachid>423105</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-13 18:23:07 -0800</bug_when>
    <thetext>Comment on attachment 423105
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/GenericArgumentsInlines.h:101
&gt; +    auto shouldEnumerateIndex = [&amp;] (unsigned index) -&gt; bool {

Let&apos;s take JSGlobalObject since it can throw an error now.

&gt; Source/JavaScriptCore/runtime/GenericArgumentsInlines.h:107
&gt; +        bool hasProperty = Base::getOwnPropertySlotByIndex(thisObject, globalObject, index, slot);
&gt; +        slot.disallowVMEntry.reset();

Let&apos;s do an error check here still because we still have a chance invoking OOM errors etc.

&gt; Source/JavaScriptCore/runtime/GenericArgumentsInlines.h:116
&gt; +            if (shouldEnumerateIndex(i))

Let&apos;s insert RETURN_IF_EXCEPTION after this call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748938</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-04-09 18:36:45 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #4)

Thank you for review!

&gt; &gt; Source/JavaScriptCore/runtime/GenericArgumentsInlines.h:107
&gt; &gt; +        bool hasProperty = Base::getOwnPropertySlotByIndex(thisObject, globalObject, index, slot);
&gt; &gt; +        slot.disallowVMEntry.reset();
&gt; 
&gt; Let&apos;s do an error check here still because we still have a chance invoking OOM errors etc.

Hmm, I&apos;ve followed Base::getOwnPropertySlotByIndex() and couldn&apos;t find how an error can be invoked.

Base is JSObject here.
JSObject::getOwnPropertySlotByIndex() is safe (no throw scope); it may forward globalObject to getOwnPropertySlot() method table call though.
That would be JSObject::getOwnPropertySlotImpl(), which is itself safe (no throw scope) and may pass globalObject only to getOwnPropertySlotByIndex().
getOwnNonIndexPropertySlot() can&apos;t throw, GetterSetter allocation should be safe too.

Seems like getting slot by index is safe, unlike indexed put. What am I missing?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423105</attachid>
            <date>2021-03-13 11:05:44 -0800</date>
            <delta_ts>2021-03-13 18:23:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141952-20210313210542.patch</filename>
            <type>text/plain</type>
            <size>11495</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzQzNDkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTEyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBHZW5lcmljQXJndW1lbnRzPFR5cGU+OjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKCkgc2hvdWxkIHJlc3BlY3QgbW9kaWZpZWQgZGVzY3JpcHRvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTk1MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2hha3JhQ29yZS55YW1s
OgorICAgICAgICAqIENoYWtyYUNvcmUvdGVzdC9GdW5jdGlvbi9hcmd1bWVudHMyLmJhc2VsaW5l
OgorICAgICAgICAqIENoYWtyYUNvcmUvdGVzdC9GdW5jdGlvbi9hcmd1bWVudHMyLmpzOgorICAg
ICAgICBGaXhlcyB0aGUgaW5jb3JyZWN0IHRlc3QgY2FzZSwgcmF0aGVyIHRoYW4gYWRkaW5nIGEg
SlNDIGJhc2VsaW5lLAorICAgICAgICBiZWNhdXNlIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgaWYg
YXQgbGVhc3Qgb25lIHRlc3QgZmFpbHMuCisKKyAgICAgICAgKiBDaGFrcmFDb3JlL3Rlc3QvRnVu
Y3Rpb24vYXJndW1lbnRzMy5iYXNlbGluZS1qc2M6IFJlbW92ZWQuCisgICAgICAgICogbWljcm9i
ZW5jaG1hcmtzL2Zvci1pbi1tYXBwZWQtYXJndW1lbnRzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBz
dHJlc3MvYXJndW1lbnRzLWJpemFycmUtYmVoYXZpb3VyLWRpc2FibGUtZW51bWVyYWJpbGl0eS5q
czoKKyAgICAgICAgKiBzdHJlc3MvYXJndW1lbnRzLXByb3BlcnRpZXMtb3JkZXIuanM6CisKIDIw
MjEtMDMtMTEgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAg
QUkgdmFsaWRhdG9yIHBhdGNocG9pbnQgc2hvdWxkIHJlYWQgaGVhcCB0b3AKSW5kZXg6IEpTVGVz
dHMvQ2hha3JhQ29yZS55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hha3JhQ29yZS55YW1s
CShyZXZpc2lvbiAyNzQzNDkpCisrKyBKU1Rlc3RzL0NoYWtyYUNvcmUueWFtbAkod29ya2luZyBj
b3B5KQpAQCAtNTcyLDcgKzU3Miw3IEBACiAtIHBhdGg6IENoYWtyYUNvcmUvdGVzdC9GdW5jdGlv
bi9hcmd1bWVudHMyLmpzCiAgIGNtZDogcnVuQ2hha3JhIDpiYXNlbGluZSwgIk5vRXhjZXB0aW9u
IiwgImFyZ3VtZW50czIuYmFzZWxpbmUiLCBbXQogLSBwYXRoOiBDaGFrcmFDb3JlL3Rlc3QvRnVu
Y3Rpb24vYXJndW1lbnRzMy5qcwotICBjbWQ6IHJ1bkNoYWtyYSA6YmFzZWxpbmUsICJOb0V4Y2Vw
dGlvbiIsICJhcmd1bWVudHMzLmJhc2VsaW5lLWpzYyIsIFtdCisgIGNtZDogcnVuQ2hha3JhIDpi
YXNlbGluZSwgIk5vRXhjZXB0aW9uIiwgImFyZ3VtZW50czMuYmFzZWxpbmUiLCBbXQogLSBwYXRo
OiBDaGFrcmFDb3JlL3Rlc3QvRnVuY3Rpb24vYXJndW1lbnRzNC5qcwogICBjbWQ6IHJ1bkNoYWty
YSA6cGFzcywgIk5vRXhjZXB0aW9uIiwgIiIsIFtdCiAtIHBhdGg6IENoYWtyYUNvcmUvdGVzdC9G
dW5jdGlvbi9hcmd1bWVudHNNaXNjLmpzCkluZGV4OiBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9G
dW5jdGlvbi9hcmd1bWVudHMyLmJhc2VsaW5lCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hha3Jh
Q29yZS90ZXN0L0Z1bmN0aW9uL2FyZ3VtZW50czIuYmFzZWxpbmUJKHJldmlzaW9uIDI3NDM0OSkK
KysrIEpTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L0Z1bmN0aW9uL2FyZ3VtZW50czIuYmFzZWxpbmUJ
KHdvcmtpbmcgY29weSkKQEAgLTk4LDggKzk4LDggQEAgVGVzdDEwLjMuMiA6IFswOiAxMywgMTog
YXJnMSwgMjogYXJnMiwgNgogUEFTU0VEIDogVGVzdDEwLjMuMiBleHA6IFswOiAxMywgMTogYXJn
MSwgMjogYXJnMiwgNjogYXJnNiwgZm9vOiBiYXJdIGFjdCA6IFswOiAxMywgMTogYXJnMSwgMjog
YXJnMiwgNjogYXJnNiwgZm9vOiBiYXJdCiBUZXN0MTAuMy4xIDogWzA6IDEzLCAyOiBzdHJpbmdd
CiBQQVNTRUQgOiBUZXN0MTAuMy4xIGV4cDogWzA6IDEzLCAyOiBzdHJpbmddIGFjdCA6IFswOiAx
MywgMjogc3RyaW5nXQotVGVzdDEwLjMuMiA6IFswOiAxMywgMjogYXJnMiwgMTogYXJnMSwgNjog
YXJnNiwgZm9vOiBiYXJdCi1QQVNTRUQgOiBUZXN0MTAuMy4yIGV4cDogWzA6IDEzLCAyOiBhcmcy
LCAxOiBhcmcxLCA2OiBhcmc2LCBmb286IGJhcl0gYWN0IDogWzA6IDEzLCAyOiBhcmcyLCAxOiBh
cmcxLCA2OiBhcmc2LCBmb286IGJhcl0KK1Rlc3QxMC4zLjIgOiBbMDogMTMsIDE6IGFyZzEsIDI6
IGFyZzIsIDY6IGFyZzYsIGZvbzogYmFyXQorUEFTU0VEIDogVGVzdDEwLjMuMiBleHA6IFswOiAx
MywgMTogYXJnMSwgMjogYXJnMiwgNjogYXJnNiwgZm9vOiBiYXJdIGFjdCA6IFswOiAxMywgMTog
YXJnMSwgMjogYXJnMiwgNjogYXJnNiwgZm9vOiBiYXJdCiBUZXN0MTEgYXJncyA6IHNlbnRpbmVs
CiBQQVNTRUQgOiBUZXN0MTEgYXJncyBleHA6IHNlbnRpbmVsIGFjdCA6IHNlbnRpbmVsCiBUZXN0
MTIgYXJncyA6IHNlbnRpbmVsCkluZGV4OiBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9GdW5jdGlv
bi9hcmd1bWVudHMyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L0Z1
bmN0aW9uL2FyZ3VtZW50czIuanMJKHJldmlzaW9uIDI3NDM0OSkKKysrIEpTVGVzdHMvQ2hha3Jh
Q29yZS90ZXN0L0Z1bmN0aW9uL2FyZ3VtZW50czIuanMJKHdvcmtpbmcgY29weSkKQEAgLTMwNiw3
ICszMDYsNyBAQCBkZWxldGVfYXJnc190ZXN0KGdldF9hcmdzKDEzLCAyNCksCiAKIGRlbGV0ZV9h
cmdzX3Rlc3QoZ2V0X2FyZ3MoMTMsIDI0LCAic3RyaW5nIiwgdHJ1ZSksCiAgICAgICAgICAgICAg
ICAgICJbMDogMTMsIDI6IHN0cmluZ10iLCAvL1sxXVszXSBkZWxldGVkCi0gICAgICAgICAgICAg
ICAgICJbMDogMTMsIDI6IGFyZzIsIDE6IGFyZzEsIDY6IGFyZzYsIGZvbzogYmFyXSIKKyAgICAg
ICAgICAgICAgICAgIlswOiAxMywgMTogYXJnMSwgMjogYXJnMiwgNjogYXJnNiwgZm9vOiBiYXJd
IgogLy9bMV0gc2V0IGFmdGVyIGZvcm1hbCBhcmdzIFswXVsyXQogICAgICAgICAgICAgICAgICAp
OwogCkluZGV4OiBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9GdW5jdGlvbi9hcmd1bWVudHMzLmJh
c2VsaW5lLWpzYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9GdW5jdGlv
bi9hcmd1bWVudHMzLmJhc2VsaW5lLWpzYwkocmV2aXNpb24gMjc0MzQ5KQorKysgSlNUZXN0cy9D
aGFrcmFDb3JlL3Rlc3QvRnVuY3Rpb24vYXJndW1lbnRzMy5iYXNlbGluZS1qc2MJKG5vbmV4aXN0
ZW50KQpAQCAtMSwxMCArMCwwIEBACi0tLS0gdG9TdHJpbmcgdGVzdCAtLS0KLVtvYmplY3QgQXJn
dW1lbnRzXQotW29iamVjdCBBcmd1bWVudHNdCi0KLS0tLSBnZXRPd25Qcm9wZXJ0eU5hbWVzIHNo
b3VsZCBlbnVtZXJhdGUgYWxsIHByb3BlcnRpZXMgLS0tCi1sZW5ndGgsY2FsbGVlCi0wLGxlbmd0
aCxjYWxsZWUKLTAsMSxsZW5ndGgsY2FsbGVlCi0wLDEsMiwzLDQsbGVuZ3RoLGNhbGxlZQotMiwz
LDAsbGVuZ3RoLGNhbGxlZQpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZm9yLWluLW1h
cHBlZC1hcmd1bWVudHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
Zm9yLWluLW1hcHBlZC1hcmd1bWVudHMuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvZm9yLWluLW1hcHBlZC1hcmd1bWVudHMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMyBAQAorZnVuY3Rpb24gZ2V0QXJncyhhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBh
NiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEsIGExMiwgYTEzLCBhMTQsIGExNSwgYTE2LCBhMTcsIGEx
OCwgYTE5LCBhMjAsIGEyMSwgYTIyLCBhMjMsIGEyNCwgYTI1LCBhMjYsIGEyNywgYTI4LCBhMjks
IGEzMCwgYTMxLCBhMzIsIGEzMywgYTM0LCBhMzUsIGEzNiwgYTM3LCBhMzgsIGEzOSwgYTQwLCBh
NDEsIGE0MiwgYTQzLCBhNDQsIGE0NSwgYTQ2LCBhNDcsIGE0OCwgYTQ5LCBhNTAsIGE1MSwgYTUy
LCBhNTMsIGE1NCwgYTU1LCBhNTYsIGE1NywgYTU4LCBhNTksIGE2MCwgYTYxLCBhNjIsIGE2Mywg
YTY0LCBhNjUsIGE2NiwgYTY3LCBhNjgsIGE2OSwgYTcwLCBhNzEsIGE3MiwgYTczLCBhNzQsIGE3
NSwgYTc2LCBhNzcsIGE3OCwgYTc5LCBhODAsIGE4MSwgYTgyLCBhODMsIGE4NCwgYTg1LCBhODYs
IGE4NywgYTg4LCBhODksIGE5MCwgYTkxLCBhOTIsIGE5MywgYTk0LCBhOTUsIGE5NiwgYTk3LCBh
OTgsIGE5OSkgeworICAgIHJldHVybiBhcmd1bWVudHM7Cit9CisKK25vSW5saW5lKGdldEFyZ3Mp
OworCisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDFlNDsgaSsrKSB7CisgICAgICAgIGZvciAodmFyIF8gaW4gZ2V0QXJncygwLCAxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4
LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIs
IDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0Niwg
NDcsIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwLCA2
MSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1
LCA3NiwgNzcsIDc4LCA3OSwgODAsIDgxLCA4MiwgODMsIDg0LCA4NSwgODYsIDg3LCA4OCwgODks
IDkwLCA5MSwgOTIsIDkzLCA5NCwgOTUsIDk2LCA5NywgOTgsIDk5KSkKKyAgICAgICAgICAgIGNv
dW50Kys7CisgICAgfQorfSkoKTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2FyZ3VtZW50cy1iaXph
cnJlLWJlaGF2aW91ci1kaXNhYmxlLWVudW1lcmFiaWxpdHkuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNU
ZXN0cy9zdHJlc3MvYXJndW1lbnRzLWJpemFycmUtYmVoYXZpb3VyLWRpc2FibGUtZW51bWVyYWJp
bGl0eS5qcwkocmV2aXNpb24gMjc0MzQ5KQorKysgSlNUZXN0cy9zdHJlc3MvYXJndW1lbnRzLWJp
emFycmUtYmVoYXZpb3VyLWRpc2FibGUtZW51bWVyYWJpbGl0eS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMjEsNyArMjEsNyBAQCBmb3IgKHZhciBzIGluIHJlc3VsdFsyXSkKIGlmIChhcnJheS5qb2lu
KCIsIikgIT0gIiIpCiAgICAgdGhyb3cgbmV3IEVycm9yKCk7CiAKLWlmIChPYmplY3Qua2V5cyhy
ZXN1bHRbMl0pLmpvaW4oIiwiKSAhPSAiMCIpCitpZiAoT2JqZWN0LmtleXMocmVzdWx0WzJdKS5q
b2luKCIsIikgIT0gIiIpCiAgICAgdGhyb3cgbmV3IEVycm9yKCk7CiAKIGlmIChPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHJlc3VsdFsyXSwgMCkuZW51bWVyYWJsZSA9PT0gdHJ1ZSkK
SW5kZXg6IEpTVGVzdHMvc3RyZXNzL2FyZ3VtZW50cy1wcm9wZXJ0aWVzLW9yZGVyLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2FyZ3VtZW50cy1wcm9wZXJ0aWVzLW9yZGVyLmpzCShy
ZXZpc2lvbiAyNzQzNDkpCisrKyBKU1Rlc3RzL3N0cmVzcy9hcmd1bWVudHMtcHJvcGVydGllcy1v
cmRlci5qcwkod29ya2luZyBjb3B5KQpAQCAtNzIsOCArNzIsNTkgQEAgbm9JbmxpbmUoZm9ySW4p
OwogICAgIH0KIH0pKCk7CiAKKyhmdW5jdGlvbiBpbmRleERlbGV0ZWQoKSB7CisgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICBjb25zdCBhcmdzID0gZ2V0TWFwcGVk
QXJndW1lbnRzKDAsIDEsIDIsIDMpOworICAgICAgICBkZWxldGUgYXJnc1sxXTsKKyAgICAgICAg
ZGVsZXRlIGFyZ3NbMl07CisgICAgICAgIGFyZ3NbMl0gPSAyOworICAgICAgICBhcmdzWzFdID0g
MTsKKworICAgICAgICBzaG91bGRCZUFycmF5KGZvckluKGFyZ3MpLCBbIjAiLCAiMSIsICIyIiwg
IjMiXSk7CisgICAgICAgIHNob3VsZEJlQXJyYXkoT2JqZWN0LmtleXMoYXJncyksIFsiMCIsICIx
IiwgIjIiLCAiMyJdKTsKKyAgICAgICAgc2hvdWxkQmVBcnJheShSZWZsZWN0Lm93bktleXMoYXJn
cyksIFsiMCIsICIxIiwgIjIiLCAiMyIsICJsZW5ndGgiLCAiY2FsbGVlIiwgU3ltYm9sLml0ZXJh
dG9yXSk7CisgICAgfQorfSkoKTsKKworKGZ1bmN0aW9uIGluZGV4RGVsZXRlZFRoZW5BZGRlZCgp
IHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIGNvbnN0IGFy
Z3MgPSBnZXRNYXBwZWRBcmd1bWVudHMoMCwgMSwgMiwgMyk7CisgICAgICAgIGRlbGV0ZSBhcmdz
WzFdOworICAgICAgICBkZWxldGUgYXJnc1syXTsKKyAgICAgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KGFyZ3MsICIyIiwgeyB2YWx1ZTogMiwgZW51bWVyYWJsZTogZmFsc2UgfSk7CisgICAgICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcmdzLCAiMSIsIHsgdmFsdWU6IDEsIGVudW1lcmFibGU6
IHRydWUgfSk7CisKKyAgICAgICAgc2hvdWxkQmVBcnJheShmb3JJbihhcmdzKSwgWyIwIiwgIjEi
LCAiMyJdKTsKKyAgICAgICAgc2hvdWxkQmVBcnJheShPYmplY3Qua2V5cyhhcmdzKSwgWyIwIiwg
IjEiLCAiMyJdKTsKKyAgICAgICAgc2hvdWxkQmVBcnJheShSZWZsZWN0Lm93bktleXMoYXJncyks
IFsiMCIsICIxIiwgIjIiLCAiMyIsICJsZW5ndGgiLCAiY2FsbGVlIiwgU3ltYm9sLml0ZXJhdG9y
XSk7CisgICAgfQorfSkoKTsKKworKGZ1bmN0aW9uIGluZGV4UmVkZWZpbmVkUmVtYWluc01hcHBl
ZCgpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIGNvbnN0
IGFyZ3MgPSBnZXRNYXBwZWRBcmd1bWVudHMoMCwgMSwgMiwgMyk7CisgICAgICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShhcmdzLCAiMiIsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiAyMiB9
KTsKKyAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyZ3MsICIwIiwgeyBlbnVtZXJhYmxl
OiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlIH0pOworCisgICAgICAgIHNob3VsZEJlQXJyYXko
Zm9ySW4oYXJncyksIFsiMCIsICIxIiwgIjMiXSk7CisgICAgICAgIHNob3VsZEJlQXJyYXkoT2Jq
ZWN0LmtleXMoYXJncyksIFsiMCIsICIxIiwgIjMiXSk7CisgICAgICAgIHNob3VsZEJlQXJyYXko
UmVmbGVjdC5vd25LZXlzKGFyZ3MpLCBbIjAiLCAiMSIsICIyIiwgIjMiLCAibGVuZ3RoIiwgImNh
bGxlZSIsIFN5bWJvbC5pdGVyYXRvcl0pOworICAgIH0KK30pKCk7CisKKyhmdW5jdGlvbiBpbmRl
eFJlZGVmaW5lZEJlY29tZXNVbm1hcHBlZCgpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFl
NDsgKytpKSB7CisgICAgICAgIGNvbnN0IGFyZ3MgPSBnZXRNYXBwZWRBcmd1bWVudHMoMCwgMSwg
MiwgMyk7CisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcmdzLCAiMiIsIHsgZW51bWVy
YWJsZTogdHJ1ZSwgZ2V0KCkge30gfSk7CisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShh
cmdzLCAiMSIsIHsgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSB9KTsKKworICAg
ICAgICBzaG91bGRCZUFycmF5KGZvckluKGFyZ3MpLCBbIjAiLCAiMiIsICIzIl0pOworICAgICAg
ICBzaG91bGRCZUFycmF5KE9iamVjdC5rZXlzKGFyZ3MpLCBbIjAiLCAiMiIsICIzIl0pOworICAg
ICAgICBzaG91bGRCZUFycmF5KFJlZmxlY3Qub3duS2V5cyhhcmdzKSwgWyIwIiwgIjEiLCAiMiIs
ICIzIiwgImxlbmd0aCIsICJjYWxsZWUiLCBTeW1ib2wuaXRlcmF0b3JdKTsKKyAgICB9Cit9KSgp
OworCiAvLyBGSVhNRTogQWRkIG1vcmUgdGVzdHMsIGNvdmVyaW5nOgogLy8gKiBhZGRlZCBzeW1i
b2wgcHJvcGVydGllczsKIC8vICogYWRkZWQgdG9nZXRoZXIgaW5kZXgsIG5vbi1pbmRleCwgYW5k
IHN5bWJvbCBwcm9wZXJ0aWVzOwotLy8gKiBkZWxldGVkLCByZS1hZGRlZCwgYW5kIHJlZGVmaW5l
ZCBhcyBEb250RW51bSBpbmRleCBwcm9wZXJ0aWVzLCBib3RoIHdpdGhpbiBhbmQgYmV5b25kICJs
ZW5ndGgiOwogLy8gKiBkZWxldGVkLCByZS1hZGRlZCwgYW5kIHJlZGVmaW5lZCBhcyBEb250RW51
bSAibGVuZ3RoIiwgImNhbGxlZSIsIGFuZCBTeW1ib2wuaXRlcmF0b3IgcHJvcGVydGllcy4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc0MzQ5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisy
MDIxLTAzLTEyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAg
ICAgICBHZW5lcmljQXJndW1lbnRzPFR5cGU+OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKCkgc2hvdWxk
IHJlc3BlY3QgbW9kaWZpZWQgZGVzY3JpcHRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIHIyMTAxNDYgZml4ZWQgbW9zdCBvZiBHZW5lcmljQXJndW1l
bnRzJyBtZXRob2RzIHRvIHN1cHBvcnQgbW9kaWZpZWQgZGVzY3JpcHRvcnMuCisgICAgICAgIFRo
aXMgcGF0Y2ggZG9lcyB0aGUgc2FtZSBmb3IgZ2V0T3duUHJvcGVydHlOYW1lcygpIHNvIHRoZSBp
bmJvdW5kIGluZGljZXMsIHdoaWNoCisgICAgICAgIHdlcmUgcmVkZWZpbmVkIGFzIG5vbi1lbnVt
ZXJhYmxlIG9yIGRlbGV0ZWQgYW5kIHJlLWFkZGVkLCBhcmUgZW51bWVyYXRlZCBjb3JyZWN0bHku
CisKKyAgICAgICAgRXhjZXB0aW9uIGNoZWNraW5nIGlzbid0IHBlcmZvcm1lZCBiZWNhdXNlIEJh
c2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoKSBjYW4ndAorICAgICAgICBwb3NzaWJseSB0
aHJvdzsgYW5kIGV2ZW4gaWYgaXQgY291bGQsIHRoZSBleGNlcHRpb24gd291bGQgYmUgdW5vYnNl
cnZhYmx5IGhhbmRsZWQKKyAgICAgICAgYWZ0ZXIgZ2V0T3duUHJvcGVydHlOYW1lcygpIGV4aXRz
LgorCisgICAgICAgIEFsaWducyBKU0Mgd2l0aCB0aGUgc3BlYyBbMV0gYW5kIFNwaWRlck1vbmtl
eS4KKyAgICAgICAgUHJvdmlkZWQgbWljcm9iZW5jaG1hcmsgaXMgbmV1dHJhbCBhcyB0aGUgY2hh
bmdlIHByZXNlcnZlcyB0aGUgZmFzdCBwYXRoLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5
LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGVtYXBwZWRhcmd1bWVudHNvYmplY3QgKHN0ZXAgMTkuYi5p
aSkKKworICAgICAgICAqIHJ1bnRpbWUvR2VuZXJpY0FyZ3VtZW50c0lubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6R2VuZXJpY0FyZ3VtZW50czxUeXBlPjo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisK
IDIwMjEtMDMtMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEJ1bXAgQVBJIHZlcnNpb24gd2hlbiBidWlsZGluZyB3aXRoIGxpYnNv
dXAzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljQXJndW1lbnRz
SW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
bmVyaWNBcmd1bWVudHNJbmxpbmVzLmgJKHJldmlzaW9uIDI3NDM0OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNBcmd1bWVudHNJbmxpbmVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk4LDExICs5OCwyMyBAQCB2b2lkIEdlbmVyaWNBcmd1bWVudHM8VHlwZT46OmdldE93
blByb3BlCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFR5cGUqIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8VHlwZSo+KG9iamVjdCk7CiAKKyAgICBhdXRvIHNob3VsZEVudW1lcmF0
ZUluZGV4ID0gWyZdICh1bnNpZ25lZCBpbmRleCkgLT4gYm9vbCB7CisgICAgICAgIGlmICghdGhp
c09iamVjdC0+aXNNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcihpbmRleCkgJiYgdGhpc09iamVj
dC0+aXNNYXBwZWRBcmd1bWVudChpbmRleCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVy
bmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOworICAgICAgICBib29sIGhhc1Byb3BlcnR5
ID0gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBnbG9iYWxPYmpl
Y3QsIGluZGV4LCBzbG90KTsKKyAgICAgICAgc2xvdC5kaXNhbGxvd1ZNRW50cnkucmVzZXQoKTsK
KyAgICAgICAgaWYgKCFoYXNQcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICByZXR1cm4gbW9kZSA9PSBEb250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlIHx8
ICEoc2xvdC5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOworICAg
IH07CisKICAgICBpZiAoYXJyYXkuaW5jbHVkZVN0cmluZ1Byb3BlcnRpZXMoKSkgewogICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGhpc09iamVjdC0+aW50ZXJuYWxMZW5ndGgoKTsg
KytpKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXNPYmplY3QtPmlzTWFwcGVkQXJndW1lbnQoaSkp
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBhcnJheS5hZGQoSWRlbnRp
Zmllcjo6ZnJvbSh2bSwgaSkpOworICAgICAgICAgICAgaWYgKHNob3VsZEVudW1lcmF0ZUluZGV4
KGkpKQorICAgICAgICAgICAgICAgIGFycmF5LmFkZChJZGVudGlmaWVyOjpmcm9tKHZtLCBpKSk7
CiAgICAgICAgIH0KICAgICAgICAgdGhpc09iamVjdC0+Z2V0T3duSW5kZXhlZFByb3BlcnR5TmFt
ZXMoZ2xvYmFsT2JqZWN0LCBhcnJheSwgbW9kZSk7CiAgICAgfQo=
</data>
<flag name="review"
          id="442400"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
    <flag name="commit-queue"
          id="442410"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>