<?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>155089</bug_id>
          
          <creation_ts>2016-03-06 08:20:32 -0800</creation_ts>
          <short_desc>[JSC] StringObject.{put, defineOwnProperty} should realize indexed properties</short_desc>
          <delta_ts>2016-03-07 10:21:47 -0800</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>WebKit 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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1171416</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-03-06 08:20:32 -0800</bug_when>
    <thetext>[JSC] StringObject.{put, defineOwnProperty} should realize indexed properties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171417</commentid>
    <comment_count>1</comment_count>
      <attachid>273136</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-03-06 08:24:47 -0800</bug_when>
    <thetext>Created attachment 273136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171418</commentid>
    <comment_count>2</comment_count>
      <attachid>273136</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-03-06 08:26:29 -0800</bug_when>
    <thetext>Comment on attachment 273136
Patch

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

Added comment.

&gt; Source/JavaScriptCore/runtime/StringObject.cpp:72
&gt; +    return JSObject::put(cell, exec, propertyName, value, slot);

Later, in Reflect.set patch, we return boolean from ::put, ::putByIndex. So now, we take the style like above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171419</commentid>
    <comment_count>3</comment_count>
      <attachid>273136</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-03-06 08:29:03 -0800</bug_when>
    <thetext>Comment on attachment 273136
Patch

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

&gt; Source/JavaScriptCore/runtime/StringObject.cpp:113
&gt; +        return validateAndApplyPropertyDescriptor(exec, nullptr, propertyName, isExtensible, descriptor, isCurrentDefined, current, throwException);

When passing nullptr to validateAndApplyPropertyDescriptor, it just performs validation.
This is OK since we know any descriptor cannot change the result.
All we need is the returned value of the validation phase.

And we note that this path is very very rare path. So performing slow / generic operation here causes no problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171615</commentid>
    <comment_count>4</comment_count>
      <attachid>273136</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-07 09:30:57 -0800</bug_when>
    <thetext>Comment on attachment 273136
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171640</commentid>
    <comment_count>5</comment_count>
      <attachid>273136</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-07 10:21:42 -0800</bug_when>
    <thetext>Comment on attachment 273136
Patch

Clearing flags on attachment: 273136

Committed r197684: &lt;http://trac.webkit.org/changeset/197684&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171641</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-07 10:21:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273136</attachid>
            <date>2016-03-06 08:24:47 -0800</date>
            <delta_ts>2016-03-07 10:21:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155089-20160307012433.patch</filename>
            <type>text/plain</type>
            <size>10932</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZTQ5NGJjNWVjZTNkMjdmY2FlODRkNGNjMTkyMDI5OTIyYzBkODkyLi4yZGUyNjI4ZDNjODYyOTYw
NmYzNWQyNjQyMzY2MTI3ZjMxZWRkZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxNi0wMy0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBTdHJpbmdPYmplY3Que3B1dCwgZGVmaW5lT3duUHJvcGVy
dHl9IHNob3VsZCByZWFsaXplIGluZGV4ZWQgcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MDg5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhyb3VnaCBpbXBsZW1lbnRpbmcgUmVmbGVj
dC5zZXRbMV0sIHdlIGZvdW5kIFN0cmluZ09iamVjdCBkb2VzIG5vdCBvYmV5IHRoZSBzcGVjLgor
ICAgICAgICBTdHJpbmdPYmplY3Q6OnB1dCBzaG91bGQgY2FsbCBwdXRCeUluZGV4IGlmIHRoZSBn
aXZlbiBwcm9wZXJ0eU5hbWUgaXMgaW5kZXguCisgICAgICAgIEFuZCBTdHJpbmdPYmplY3Q6OmRl
ZmluZU93blByb3BlcnR5IHNob3VsZCByZWNvZ25pemUgaW5kZXhlZCBwcm9wZXJ0aWVzIHNpbmNl
CisgICAgICAgIEpTT2JqZWN0OjpkZWZpbmVPd25JbmRleGVkUHJvcGVydHkgaXMgc3BlY2lhbGl6
ZWQgdG8gSlNPYmplY3QgbGF5b3V0LgorICAgICAgICBCZWZvcmUgY2FsbGluZyBKU09iamVjdDo6
ZGVmaW5lT3duUHJvcGVydHksCisgICAgICAgIFN0cmluZ09iamVjdCBzaG91bGQgaGFuZGxlIGl0
cyBzcGVjaWFsIGluZGV4ZWQgb3duIHByb3BlcnRpZXMuCisgICAgICAgIEl0IGlzIHJlc3BvbnNp
YmlsaXR5IG9mIFN0cmluZ09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkuCisKKyAgICAgICAgQW5k
IHRoZSBsb2dpYyBpcyBjbGVhbmVkIHVwIGJ5IHVzaW5nIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0
eURlc2NyaXB0b3IuCisKKyAgICAgICAgWzFdOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU1MDI0CisKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6cHV0KToKKyAgICAgICAgKEpTQzo6U3RyaW5n
T2JqZWN0OjpwdXRCeUluZGV4KToKKyAgICAgICAgKEpTQzo6aXNTdHJpbmdPd25Qcm9wZXJ0eSk6
CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAg
ICAoSlNDOjpTdHJpbmdPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3Mvc3RyaW5nLW9iamVjdC1kZWZpbmUtb3duLXByb3BlcnR5LmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZFRocm93KToKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3Mvc3RyaW5nLW9iamVjdC1wdXQtYnktaW5kZXguanM6IEFkZGVkLgorICAgICAgICAoc2hv
dWxkQmUpOgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAodGVzdFNsb3BweSk6Cisg
ICAgICAgICh0ZXN0U3RyaWN0KToKKwogMjAxNi0wMy0wNSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgogCiAgICAgICAgIFRoZSBtb3N0IGFnZ3Jlc3NpdmUgZm9ybSBvZiBSZWdFeHBU
ZXN0L1JlZ0V4cEV4ZWMgc2hvdWxkIHNwZWN1bGF0ZSBtb3JlIGFnZ3Jlc3NpdmVseSB0aGFuIGp1
c3QgY2VsbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5j
cHAKaW5kZXggMDk4OGQ2ZDA2OTAyOTg5MDRlZDU5OWExZGU4OGM3ZjNkMDQ1NGEzZC4uMmFiNDg2
NzcyMjI2NjJiNWM5OWE2ZDZiZmEzZDgyZTU2MmE1ZmVkZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC02Nyw3ICs2Nyw5IEBAIHZvaWQg
U3RyaW5nT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsCiAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJp
Y3RNb2RlUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIEpTT2JqZWN0OjpwdXQoY2VsbCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7CisgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVy
dHlOYW1lKSkKKyAgICAgICAgcmV0dXJuIHB1dEJ5SW5kZXgoY2VsbCwgZXhlYywgaW5kZXgudmFs
dWUoKSwgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkpOworICAgIHJldHVybiBKU09iamVjdDo6
cHV0KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIFN0
cmluZ09iamVjdDo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAt
NzgsNDkgKzgwLDM3IEBAIHZvaWQgU3RyaW5nT2JqZWN0OjpwdXRCeUluZGV4KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hCiAgICAgICAgICAgICB0aHJv
d1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmpl
Y3Q6OnB1dEJ5SW5kZXgoY2VsbCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxkVGhy
b3cpOworfQorCitzdGF0aWMgYm9vbCBpc1N0cmluZ093blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhl
YywgU3RyaW5nT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCit7Cisg
ICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcGFy
c2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChvYmplY3QtPmludGVybmFsVmFs
dWUoKS0+Y2FuR2V0SW5kZXgoaW5kZXgudmFsdWUoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFN0cmluZ09iamVjdDo6ZGVm
aW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Is
IGJvb2wgdGhyb3dFeGNlcHRpb24pCiB7CiAgICAgU3RyaW5nT2JqZWN0KiB0aGlzT2JqZWN0ID0g
anNDYXN0PFN0cmluZ09iamVjdCo+KG9iamVjdCk7CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKLSAgICAgICAgYm9vbCBpc0V4dGVuc2li
bGUgPSBvYmplY3QtPmlzRXh0ZW5zaWJsZShleGVjKTsKKyAgICBpZiAoaXNTdHJpbmdPd25Qcm9w
ZXJ0eShleGVjLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIC8vIFRoZSBj
dXJyZW50IFByb3BlcnR5RGVzY3JpcHRvciBpcyBhbHdheXMKKyAgICAgICAgLy8gUHJvcGVydHlE
ZXNjcmlwdG9ye1tbVmFsdWVdXTogdmFsdWUsIFtbV3JpdGFibGVdXTogZmFsc2UsIFtbRW51bWVy
YWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiBmYWxzZX0uCisgICAgICAgIC8vIFRoaXMg
ZW5zdXJlcyB0aGF0IGFueSBwcm9wZXJ0eSBkZXNjcmlwdG9yIGNhbm5vdCBjaGFuZ2UgdGhlIGV4
aXN0aW5nIG9uZS4KKyAgICAgICAgLy8gSGVyZSwgc2ltcGx5IHJldHVybiB0aGUgcmVzdWx0IG9m
IHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3IuCisgICAgICAgIC8vIGh0dHBzOi8v
dGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy1leG90aWMtb2JqZWN0cy1nZXRvd25w
cm9wZXJ0eS1wCisgICAgICAgIFByb3BlcnR5RGVzY3JpcHRvciBjdXJyZW50OworICAgICAgICBi
b29sIGlzQ3VycmVudERlZmluZWQgPSB0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZXhlYywgcHJvcGVydHlOYW1lLCBjdXJyZW50KTsKKyAgICAgICAgQVNTRVJUKGlzQ3VycmVu
dERlZmluZWQpOworICAgICAgICBib29sIGlzRXh0ZW5zaWJsZSA9IHRoaXNPYmplY3QtPmlzRXh0
ZW5zaWJsZShleGVjKTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWlzRXh0ZW5zaWJsZSkgewotICAgICAg
ICAgICAgaWYgKHRocm93RXhjZXB0aW9uKQotICAgICAgICAgICAgICAgIGV4ZWMtPnZtKCkudGhy
b3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQXR0
ZW1wdGluZyB0byBkZWZpbmUgcHJvcGVydHkgb24gb2JqZWN0IHRoYXQgaXMgbm90IGV4dGVuc2li
bGUuIikpKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoZGVzY3JpcHRvci5jb25maWd1cmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5jb25maWd1
cmFibGUoKSkgewotICAgICAgICAgICAgaWYgKHRocm93RXhjZXB0aW9uKQotICAgICAgICAgICAg
ICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdGluZyB0byBjaGFuZ2UgY29uZmlndXJhYmxlIGF0dHJpYnV0
ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iKSkpOwotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFibGVQcmVzZW50
KCkgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKCkpIHsKLSAgICAgICAgICAgIGlmICh0aHJvd0V4
Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMs
IGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHRpbmcgdG8gY2hhbmdl
IGVudW1lcmFibGUgYXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGRlc2NyaXB0
b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSkgewotICAgICAgICAgICAgaWYgKHRocm93RXhjZXB0
aW9uKQotICAgICAgICAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdGluZyB0byBjaGFuZ2UgYWNj
ZXNzIG1lY2hhbmlzbSBmb3IgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIikpKTsKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGVzY3JpcHRvci53
cml0YWJsZVByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLndyaXRhYmxlKCkpIHsKLSAgICAgICAgICAg
IGlmICh0aHJvd0V4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBleGVjLT52bSgpLnRocm93RXhj
ZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHRp
bmcgdG8gY2hhbmdlIHdyaXRhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0
eS4iKSkpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlm
ICghZGVzY3JpcHRvci52YWx1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
IGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCAmJiBzYW1l
VmFsdWUoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCBqc051bWJlcih0aGlzT2JqZWN0LT5pbnRl
cm5hbFZhbHVlKCktPmxlbmd0aCgpKSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgaWYgKHRocm93RXhjZXB0aW9uKQotICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2Vw
dGlvbihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJBdHRlbXB0aW5n
IHRvIGNoYW5nZSB2YWx1ZSBvZiBhIHJlYWRvbmx5IHByb3BlcnR5LiIpKSk7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2Ny
aXB0b3IoZXhlYywgbnVsbHB0ciwgcHJvcGVydHlOYW1lLCBpc0V4dGVuc2libGUsIGRlc2NyaXB0
b3IsIGlzQ3VycmVudERlZmluZWQsIGN1cnJlbnQsIHRocm93RXhjZXB0aW9uKTsKICAgICB9CiAK
ICAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBleGVjLCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IsIHRocm93RXhjZXB0aW9uKTsKQEAgLTEzMiw5ICsxMjIsOCBAQCBi
b29sIFN0cmluZ09iamVjdDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZSBwcgogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJv
cGVydHlOYW1lcygpLmxlbmd0aCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIE9wdGlvbmFs
PHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAoaW5k
ZXggJiYgdGhpc09iamVjdC0+aW50ZXJuYWxWYWx1ZSgpLT5jYW5HZXRJbmRleChpbmRleC52YWx1
ZSgpKSkgeworICAgIGlmIChpbmRleCAmJiB0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCktPmNh
bkdldEluZGV4KGluZGV4LnZhbHVlKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQog
ICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9zdHJpbmctb2JqZWN0LWRlZmluZS1vd24tcHJvcGVydHkuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N0cmluZy1vYmplY3QtZGVmaW5lLW93bi1wcm9wZXJ0
eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZWQ3MTEzMWViN2VhYzM2ZDQ0N2M1MjU2ZjNiZjMzNjdkYTMzOTEy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9z
dHJpbmctb2JqZWN0LWRlZmluZS1vd24tcHJvcGVydHkuanMKQEAgLTAsMCArMSw4MiBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIG1lc3NhZ2UpIHsKKyAgICB2YXIgZXJy
b3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJub3QgdGhyb3duLiIpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBt
ZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0cmluZyhl
cnJvcikpOworfQorCit2YXIgc3RyaW5nID0gbmV3IFN0cmluZygiQ29jb2EiKTsKK3Nob3VsZEJl
KFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoc3RyaW5nLCAwLCB7Cit9KSwgdHJ1ZSk7CitzaG91bGRC
ZShSZWZsZWN0LmdldChzdHJpbmcsIDApLCAnQycpOworCitzaG91bGRCZShSZWZsZWN0LmRlZmlu
ZVByb3BlcnR5KHN0cmluZywgMCwgeworICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UKK30pLCB0cnVl
KTsKK3Nob3VsZEJlKFJlZmxlY3QuZ2V0KHN0cmluZywgMCksICdDJyk7CisKK3Nob3VsZEJlKFJl
ZmxlY3QuZGVmaW5lUHJvcGVydHkoc3RyaW5nLCAwLCB7CisgICAgY29uZmlndXJhYmxlOiB0cnVl
Cit9KSwgZmFsc2UpOworc2hvdWxkQmUoUmVmbGVjdC5nZXQoc3RyaW5nLCAwKSwgJ0MnKTsKKwor
c2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShzdHJpbmcsIDAsIHsKKyAgICBlbnVtZXJh
YmxlOiB0cnVlCit9KSwgdHJ1ZSk7CitzaG91bGRCZShSZWZsZWN0LmdldChzdHJpbmcsIDApLCAn
QycpOworCitzaG91bGRCZShSZWZsZWN0LmRlZmluZVByb3BlcnR5KHN0cmluZywgMCwgeworICAg
IGVudW1lcmFibGU6IGZhbHNlCit9KSwgZmFsc2UpOworc2hvdWxkQmUoUmVmbGVjdC5nZXQoc3Ry
aW5nLCAwKSwgJ0MnKTsKKworc2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShzdHJpbmcs
IDAsIHsKKyAgICB3cml0YWJsZTogZmFsc2UsCit9KSwgdHJ1ZSk7CitzaG91bGRCZShSZWZsZWN0
LmdldChzdHJpbmcsIDApLCAnQycpOworCitzaG91bGRCZShSZWZsZWN0LmRlZmluZVByb3BlcnR5
KHN0cmluZywgMCwgeworICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB2YWx1ZTogJ0MnLAorICAg
IGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSksIGZhbHNlKTsKK3Nob3VsZEJlKFJlZmxlY3QuZ2V0KHN0
cmluZywgMCksICdDJyk7CisKK3Nob3VsZEJlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoc3RyaW5n
LCAwLCB7CisgICAgd3JpdGFibGU6IHRydWUsCisgICAgdmFsdWU6IDUyLAorfSksIGZhbHNlKTsK
K3Nob3VsZEJlKFJlZmxlY3QuZ2V0KHN0cmluZywgMCksICdDJyk7CisKK3Nob3VsZEJlKFJlZmxl
Y3QuZGVmaW5lUHJvcGVydHkoc3RyaW5nLCAwLCB7CisgICAgdmFsdWU6IDUyLAorfSksIGZhbHNl
KTsKK3Nob3VsZEJlKFJlZmxlY3QuZ2V0KHN0cmluZywgMCksICdDJyk7CisKK3Nob3VsZEJlKFJl
ZmxlY3QuZGVmaW5lUHJvcGVydHkoc3RyaW5nLCAwLCB7CisgICAgd3JpdGFibGU6IGZhbHNlLAor
ICAgIHZhbHVlOiAnQycsCisgICAgY29uZmlndXJhYmxlOiBmYWxzZQorfSksIHRydWUpOworc2hv
dWxkQmUoUmVmbGVjdC5nZXQoc3RyaW5nLCAwKSwgJ0MnKTsKKworLy8gT3V0IG9mIHJhbmdlLgor
c2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShzdHJpbmcsIDIwMDAsIHsKKyAgICB2YWx1
ZTogJ0NhcHB1Y2Npbm8nCit9KSwgdHJ1ZSk7CitzaG91bGRCZShSZWZsZWN0LmdldChzdHJpbmcs
IDIwMDApLCAnQ2FwcHVjY2lubycpOworc2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShz
dHJpbmcsICJIZWxsbyIsIHsKKyAgICB2YWx1ZTogJ0NhcHB1Y2Npbm8nCit9KSwgdHJ1ZSk7Citz
aG91bGRCZShSZWZsZWN0LmdldChzdHJpbmcsICJIZWxsbyIpLCAnQ2FwcHVjY2lubycpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdHJpbmctb2JqZWN0
LXB1dC1ieS1pbmRleC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc3Ry
aW5nLW9iamVjdC1wdXQtYnktaW5kZXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ5Y2JkNDVmZWZlZjk5ODc5
MWFhYjkyZGMyNTE4YmI1MzY3OTk1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvc3RyaW5nLW9iamVjdC1wdXQtYnktaW5kZXguanMKQEAgLTAs
MCArMSw0MSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlm
IChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1
ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIG1lc3NhZ2Up
IHsKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJv
cikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJub3QgdGhyb3duLiIpOworICAgIGlmIChTdHJp
bmcoZXJyb3IpICE9PSBtZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJv
cjogIiArIFN0cmluZyhlcnJvcikpOworfQorCitmdW5jdGlvbiB0ZXN0U2xvcHB5KHN0cmluZykK
K3sKKyAgICBzdHJpbmdbMF0gPSA1MjsKKyAgICBzaG91bGRCZShzdHJpbmdbMF0sICdDJyk7CisK
KyAgICBzdHJpbmdbMTAwXSA9IDUyOworICAgIHNob3VsZEJlKHN0cmluZ1sxMDBdLCA1Mik7Cit9
CisKK2Z1bmN0aW9uIHRlc3RTdHJpY3Qoc3RyaW5nKQoreworICAgICd1c2Ugc3RyaWN0JzsKKyAg
ICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHN0cmluZ1swXSA9IDUyOworICAgIH0sIGBU
eXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuYCk7Cisg
ICAgc2hvdWxkQmUoc3RyaW5nWzBdLCAnQycpOworCisgICAgc3RyaW5nWzEwMF0gPSA1MjsKKyAg
ICBzaG91bGRCZShzdHJpbmdbMTAwXSwgNTIpOworfQorCit0ZXN0U2xvcHB5KG5ldyBTdHJpbmco
IkNvY29hIikpOwordGVzdFN0cmljdChuZXcgU3RyaW5nKCJDb2NvYSIpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>