<?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>145638</bug_id>
          
          <creation_ts>2015-06-03 23:44:58 -0700</creation_ts>
          <short_desc>[ES6] Arrow function. Write tests for the controlFlowProfiler</short_desc>
          <delta_ts>2015-09-20 21:36:57 -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>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>
          <dependson>144955</dependson>
          <blocked>140855</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="GSkachkov">gskachkov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1099435</commentid>
    <comment_count>0</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-06-03 23:44:58 -0700</bug_when>
    <thetext>To be sure and prevent regressions, it&apos;s worth writing a few simple tests for the controlFlowProfiler.
Check path JavaScriptCore/tests/controlFlowProfiler/* there is a standardized way of doing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100346</commentid>
    <comment_count>1</comment_count>
      <attachid>254489</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-06-08 06:18:10 -0700</bug_when>
    <thetext>Created attachment 254489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100430</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-06-08 13:14:28 -0700</bug_when>
    <thetext>This looks good to me. You should also have a test that
tests the assumption for range of the entire function itself.
The way this works for functions now is that the entire
function executing offset will begin from the &quot;function&quot;
key word and will end with the closing &quot;}&quot; of the function.
We do this by passing in different parts of the function that
represent the textual boundary of the function.

We should match this style with arrow function syntax so the beginning
should be the &quot;(&quot; in the parameter list, or the beginning letter
of the parameter in the single parameter case. For example, I&apos;d make tests
like this:

```
function foo1(test) {
   var f1 = () =&gt; { &quot;hello&quot;; }
   if (test)
       f1();
}
foo1(false);
checkBasicBlock(foo1, &apos;() =&gt;&apos;, ShouldNotHaveExecuted);
checkBasicBlock(foo1, &apos;; }&apos;, ShouldNotHaveExecuted);
foo1(true);
checkBasicBlock(foo1, &apos;() =&gt;&apos;, ShouldHaveExecuted);
checkBasicBlock(foo1, &apos;; }&apos;, ShouldHaveExecuted);
// etc, maybe different offsets, too.

function foo2(test) {
   var f1 = (xyz) =&gt; { &quot;hello&quot; }
   if (test)
       f1();
}
foo1(false);
checkBasicBlock(foo1, &apos;(xyz) =&gt;&apos;, ShouldNotHaveExecuted);
checkBasicBlock(foo1, &apos;; }&apos;, ShouldNotHaveExecuted);
foo1(true);
checkBasicBlock(foo1, &apos;(xyz) =&gt;&apos;, ShouldHaveExecuted);
checkBasicBlock(foo1, &apos;; }&apos;, ShouldHaveExecuted);
// etc, maybe other tests with single parameter syntax, etc.

``` 

(Actually, looking through the tests for the control flow profiler, it doesn&apos;t look like there are other
tests that check function boundaries for regular functions. I should open a bug for that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100432</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-06-08 13:17:03 -0700</bug_when>
    <thetext>nction foo2(test) {
&gt;    var f1 = (xyz) =&gt; { &quot;hello&quot; }
&gt;    if (test)
&gt;        f1();
&gt; }
&gt; foo1(false);
&gt; checkBasicBlock(foo1, &apos;(xyz) =&gt;&apos;, ShouldNotHaveExecuted);
&gt; checkBasicBlock(foo1, &apos;; }&apos;, ShouldNotHaveExecuted);
&gt; foo1(true);
&gt; checkBasicBlock(foo1, &apos;(xyz) =&gt;&apos;, ShouldHaveExecuted);
&gt; checkBasicBlock(foo1, &apos;; }&apos;, ShouldHaveExecuted);
Mistake: these should all be &quot;foo2&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100433</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-06-08 13:18:03 -0700</bug_when>
    <thetext>Also, you can actually check the ranges out visually inside the Web Inspector
by enable the TypeProfiler/ControlFlowProfiler using the &quot;T&quot; button in the upper
right when looking at the source code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104878</commentid>
    <comment_count>5</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-06-26 00:22:16 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Also, you can actually check the ranges out visually inside the Web Inspector
&gt; by enable the TypeProfiler/ControlFlowProfiler using the &quot;T&quot; button in the
&gt; upper
&gt; right when looking at the source code.

OK. I&apos;ll upload new tests today</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104889</commentid>
    <comment_count>6</comment_count>
      <attachid>255624</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-06-26 02:07:27 -0700</bug_when>
    <thetext>Created attachment 255624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105023</commentid>
    <comment_count>7</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-06-26 12:33:54 -0700</bug_when>
    <thetext>As for now need to wait until https://bugs.webkit.org/show_bug.cgi?id=144956 will be fixed. After that can be checked</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105177</commentid>
    <comment_count>8</comment_count>
      <attachid>255700</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-06-27 08:33:28 -0700</bug_when>
    <thetext>Created attachment 255700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105187</commentid>
    <comment_count>9</comment_count>
      <attachid>255700</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-06-27 12:24:11 -0700</bug_when>
    <thetext>Comment on attachment 255700
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127037</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-09-17 21:16:00 -0700</bug_when>
    <thetext>Is this stale?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127313</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-18 18:00:07 -0700</bug_when>
    <thetext>Can you make sure this still passes and then
I can r+/cq+. We may have changed some code that
affects this. Better to be safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127396</commentid>
    <comment_count>12</comment_count>
      <attachid>261578</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-09-19 10:32:23 -0700</bug_when>
    <thetext>Created attachment 261578
Patch

Reupload</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127402</commentid>
    <comment_count>13</comment_count>
      <attachid>261578</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-09-19 11:18:29 -0700</bug_when>
    <thetext>Comment on attachment 261578
Patch

Looks like tests pass without errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127553</commentid>
    <comment_count>14</comment_count>
      <attachid>261578</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-20 20:49:45 -0700</bug_when>
    <thetext>Comment on attachment 261578
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127560</commentid>
    <comment_count>15</comment_count>
      <attachid>261578</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-20 21:36:52 -0700</bug_when>
    <thetext>Comment on attachment 261578
Patch

Clearing flags on attachment: 261578

Committed r190042: &lt;http://trac.webkit.org/changeset/190042&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127561</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-20 21:36:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254489</attachid>
            <date>2015-06-08 06:18:10 -0700</date>
            <delta_ts>2015-06-26 02:07:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145638-20150608151745.patch</filename>
            <type>text/plain</type>
            <size>2115</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
OGY1YmI0ZDRiMWZjMTVmYWU4YzQwYTBlYTZkNDMwMjEyZjU0MDU1Li4xN2ZkNGZlYTg2ZGNhMmYx
MWIyMmVlODQ2MGI0MmFiZjE2YWEzZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxNCBAQAogMjAxNS0wNS0xMyBBbGVrc2FuZHIgU2thY2hrb3YgICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KIAorICAgICAgICBbRVM2XSBBZGRlZCBjb250cm9sRmxvd1Byb2ZpbGVyIHRlc3Qg
Zm9yIGFycm93IGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2Zp
bGVyL2Fycm93ZnVuY3Rpb24tZXhwcmVzc2lvbi5qczogYWRkZWQKKworMjAxNS0wNS0xMyBBbGVr
c2FuZHIgU2thY2hrb3YgICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KKwogICAgICAgICBbRVM2XSBJ
bXBsZW1lbnQgRVM2IGFycm93IGZ1bmN0aW9uIHN5bnRheC4gQXJyb3cgZnVuY3Rpb24gc3BlY2lm
aWMgZmVhdHVyZXMuIExleGljYWwgYmluZCBvZiB0aGlzCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ5NTYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvYXJyb3dmdW5jdGlvbi1leHBy
ZXNzaW9uLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmls
ZXIvYXJyb3dmdW5jdGlvbi1leHByZXNzaW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwZmVkZGJlM2MyNjA5
N2Q0NTU4YzY3ZWZhNTBhMjdlODBmNDNhM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZsb3dQcm9maWxlci9hcnJvd2Z1bmN0aW9uLWV4cHJl
c3Npb24uanMKQEAgLTAsMCArMSwyNiBAQAorbG9hZCgiLi9kcml2ZXIvZHJpdmVyLmpzIik7CisK
K3ZhciBhZlNpbWxlID0geSA9PiB5ICsgMSwKKyAgICBhZkJsb2NrID0geSA9PiB7IHkrKzsgcmV0
dXJuIHkgKyAxO30sCisgICAgYWZCbG9ja1dpdGhDb25kaXRpb24gPSB4ID0+IHsgeCA+IDAgPyB4
KysgOiB4LS07IHJldHVybiB4O307CisKK2NoZWNrQmFzaWNCbG9jayhhZlNpbWxlLCAieSArIDEi
LCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOworYWZTaW1sZSgxKTsKK2NoZWNrQmFzaWNCbG9jayhh
ZlNpbWxlLCAieSArIDEiLCBTaG91bGRIYXZlRXhlY3V0ZWQpOworCisKK2NoZWNrQmFzaWNCbG9j
ayhhZkJsb2NrLCAieSsrIiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsKK2FmQmxvY2soMik7Citj
aGVja0Jhc2ljQmxvY2soYWZCbG9jaywgInkrKyIsIFNob3VsZEhhdmVFeGVjdXRlZCk7CitjaGVj
a0Jhc2ljQmxvY2soYWZCbG9jaywgInJldHVybiB5ICsgMSIsIFNob3VsZEhhdmVFeGVjdXRlZCk7
CisKKworY2hlY2tCYXNpY0Jsb2NrKGFmQmxvY2tXaXRoQ29uZGl0aW9uLCd4KysnLCBTaG91bGRO
b3RIYXZlRXhlY3V0ZWQpOworYWZCbG9ja1dpdGhDb25kaXRpb24oMTApOworY2hlY2tCYXNpY0Js
b2NrKGFmQmxvY2tXaXRoQ29uZGl0aW9uLCd4KysnLCBTaG91bGRIYXZlRXhlY3V0ZWQpOworY2hl
Y2tCYXNpY0Jsb2NrKGFmQmxvY2tXaXRoQ29uZGl0aW9uLCdyZXR1cm4geCcsIFNob3VsZEhhdmVF
eGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2soYWZCbG9ja1dpdGhDb25kaXRpb24sJ3gtLScsIFNo
b3VsZE5vdEhhdmVFeGVjdXRlZCk7CisKKworYWZCbG9ja1dpdGhDb25kaXRpb24oLTEwKTsKK2No
ZWNrQmFzaWNCbG9jayhhZkJsb2NrV2l0aENvbmRpdGlvbiwneC0tJywgU2hvdWxkSGF2ZUV4ZWN1
dGVkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255624</attachid>
            <date>2015-06-26 02:07:27 -0700</date>
            <delta_ts>2015-06-27 08:33:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145638-20150626120646.patch</filename>
            <type>text/plain</type>
            <size>3056</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1OTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YmVjYjJhNTU4MTI3MWMxNjk0YjZjNDEyOWE5Njc5MmQ5NDllYjg4Li4wNzI3YWQ5OGIxZjhhZjZj
ZjZiOTljODYyM2E0OTM1MzBhMjkyMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNS0xMyBBbGVrc2FuZHIgU2thY2hrb3YgICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBBZGRlZCBjb250cm9sRmxvd1Byb2ZpbGVyIHRlc3Qg
Zm9yIGFycm93IGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2Zp
bGVyL2Fycm93ZnVuY3Rpb24tZXhwcmVzc2lvbi5qczogYWRkZWQKKwogMjAxNS0wNi0yNiBBbGVr
c2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAgICBbRVM2XSBJ
bXBsZW1lbnQgRVM2IGFycm93IGZ1bmN0aW9uIHN5bnRheC4gUGFyc2VyIG9mIGFycm93IGZ1bmN0
aW9uIHdpdGggZXhlY3V0aW9uIGFzIGNvbW1vbiBmdW5jdGlvbi4gCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZsb3dQcm9maWxlci9hcnJvd2Z1bmN0aW9u
LWV4cHJlc3Npb24uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZsb3dQ
cm9maWxlci9hcnJvd2Z1bmN0aW9uLWV4cHJlc3Npb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZjNmUzOTEx
ZjFlMDE5NzRmZDcwY2VjMTgzYmE4MzI5MzRjYmQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2Fycm93ZnVuY3Rpb24t
ZXhwcmVzc2lvbi5qcwpAQCAtMCwwICsxLDYzIEBACitsb2FkKCIuL2RyaXZlci9kcml2ZXIuanMi
KTsKKwordmFyIGFmU2ltbGUgPSB5ID0+IHkgKyAxLAorICAgIGFmQmxvY2sgPSB5ID0+IHsgeSsr
OyByZXR1cm4geSArIDE7fSwKKyAgICBhZkJsb2NrV2l0aENvbmRpdGlvbiA9IHggPT4geyB4ID4g
MCA/IHgrKyA6IHgtLTsgcmV0dXJuIHg7fTsKKworY2hlY2tCYXNpY0Jsb2NrKGFmU2ltbGUsICJ5
ICsgMSIsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7CithZlNpbWxlKDEpOworY2hlY2tCYXNpY0Js
b2NrKGFmU2ltbGUsICJ5ICsgMSIsIFNob3VsZEhhdmVFeGVjdXRlZCk7CisKKworY2hlY2tCYXNp
Y0Jsb2NrKGFmQmxvY2ssICJ5KysiLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOworYWZCbG9jaygy
KTsKK2NoZWNrQmFzaWNCbG9jayhhZkJsb2NrLCAieSsrIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsK
K2NoZWNrQmFzaWNCbG9jayhhZkJsb2NrLCAicmV0dXJuIHkgKyAxIiwgU2hvdWxkSGF2ZUV4ZWN1
dGVkKTsKKworCitjaGVja0Jhc2ljQmxvY2soYWZCbG9ja1dpdGhDb25kaXRpb24sJ3grKycsIFNo
b3VsZE5vdEhhdmVFeGVjdXRlZCk7CithZkJsb2NrV2l0aENvbmRpdGlvbigxMCk7CitjaGVja0Jh
c2ljQmxvY2soYWZCbG9ja1dpdGhDb25kaXRpb24sJ3grKycsIFNob3VsZEhhdmVFeGVjdXRlZCk7
CitjaGVja0Jhc2ljQmxvY2soYWZCbG9ja1dpdGhDb25kaXRpb24sJ3JldHVybiB4JywgU2hvdWxk
SGF2ZUV4ZWN1dGVkKTsKK2NoZWNrQmFzaWNCbG9jayhhZkJsb2NrV2l0aENvbmRpdGlvbiwneC0t
JywgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsKKworCithZkJsb2NrV2l0aENvbmRpdGlvbigtMTAp
OworY2hlY2tCYXNpY0Jsb2NrKGFmQmxvY2tXaXRoQ29uZGl0aW9uLCd4LS0nLCBTaG91bGRIYXZl
RXhlY3V0ZWQpOworCitmdW5jdGlvbiBmb28xKHRlc3QpIHsKKyAgIHZhciBmMSA9ICgpID0+IHsg
ImhlbGxvIjsgfQorICAgaWYgKHRlc3QpCisgICAgICAgZjEoKTsKK30KK2ZvbzEoZmFsc2UpOwor
Y2hlY2tCYXNpY0Jsb2NrKGZvbzEsICcoKSA9PicsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7Citj
aGVja0Jhc2ljQmxvY2soZm9vMSwgJzsgfScsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7Citmb28x
KHRydWUpOworY2hlY2tCYXNpY0Jsb2NrKGZvbzEsICcoKSA9PicsIFNob3VsZEhhdmVFeGVjdXRl
ZCk7CitjaGVja0Jhc2ljQmxvY2soZm9vMSwgJzsgfScsIFNob3VsZEhhdmVFeGVjdXRlZCk7CisK
K2Z1bmN0aW9uIGZvbzIodGVzdCkgeworICAgdmFyIGYxID0geCA9PiB7ICJoZWxsbyIgfQorICAg
aWYgKHRlc3QpCisgICAgICAgZjEoKTsKK30KK2ZvbzEoZmFsc2UpOworY2hlY2tCYXNpY0Jsb2Nr
KGZvbzIsICd4ID0+JywgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsKK2NoZWNrQmFzaWNCbG9jayhm
b28yLCAnOyB9JywgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsKK2ZvbzEodHJ1ZSk7CitjaGVja0Jh
c2ljQmxvY2soZm9vMiwgJ3ggPT4nLCBTaG91bGRIYXZlRXhlY3V0ZWQpOworY2hlY2tCYXNpY0Js
b2NrKGZvbzIsICc7IH0nLCBTaG91bGRIYXZlRXhlY3V0ZWQpOworCisKK2Z1bmN0aW9uIGZvbzMo
dGVzdCkgeworICAgdmFyIGYxID0gKHh5eikgPT4geyAiaGVsbG8iIH0KKyAgIGlmICh0ZXN0KQor
ICAgICAgIGYxKCk7Cit9Citmb28zKGZhbHNlKTsKK2NoZWNrQmFzaWNCbG9jayhmb28zLCAnKHh5
eikgPT4nLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOworY2hlY2tCYXNpY0Jsb2NrKGZvbzMsICc7
IH0nLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOworZm9vMyh0cnVlKTsKK2NoZWNrQmFzaWNCbG9j
ayhmb28zLCAnKHh5eikgPT4nLCBTaG91bGRIYXZlRXhlY3V0ZWQpOworY2hlY2tCYXNpY0Jsb2Nr
KGZvbzMsICc7IH0nLCBTaG91bGRIYXZlRXhlY3V0ZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255700</attachid>
            <date>2015-06-27 08:33:28 -0700</date>
            <delta_ts>2015-09-19 10:32:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145638-20150627183249.patch</filename>
            <type>text/plain</type>
            <size>2980</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
OTBiZTM1OWRjMjJmNjE4ZDVmYzEzZjY4Y2U3NzFiNGMyM2I2Yjg1Li5kMTU5ZWMzNmU5ZDFlNjhh
MTZkMDM3NmVlZDZhYjA3ZmY5OTI4ZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNi0yNiBBbGVrc2FuZHIgU2thY2hrb3YgICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBBZGRlZCBjb250cm9sRmxvd1Byb2ZpbGVyIHRlc3Qg
Zm9yIGFycm93IGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2Zp
bGVyL2Fycm93ZnVuY3Rpb24tZXhwcmVzc2lvbi5qczogYWRkZWQKKwogMjAxNS0wNi0yNiAgQ3Nh
YmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBBUk12
N0Fzc2VtYmxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9j
b250cm9sRmxvd1Byb2ZpbGVyL2Fycm93ZnVuY3Rpb24tZXhwcmVzc2lvbi5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2Fycm93ZnVuY3Rpb24tZXhw
cmVzc2lvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTM1NjBlMTE4YzFjNTUyZWFiYjdjYjg3ODUzZTdiYmU5
ZWJmYTJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Nv
bnRyb2xGbG93UHJvZmlsZXIvYXJyb3dmdW5jdGlvbi1leHByZXNzaW9uLmpzCkBAIC0wLDAgKzEs
NjMgQEAKK2xvYWQoIi4vZHJpdmVyL2RyaXZlci5qcyIpOworCit2YXIgYWZTaW1wbGUgPSB5ID0+
IHkgKyAxLAorICAgIGFmQmxvY2sgPSB5ID0+IHsgeSsrOyByZXR1cm4geSArIDE7fSwKKyAgICBh
ZkJsb2NrV2l0aENvbmRpdGlvbiA9IHggPT4geyB4ID4gMCA/IHgrKyA6IHgtLTsgcmV0dXJuIHg7
fTsKKworY2hlY2tCYXNpY0Jsb2NrKGFmU2ltcGxlLCAieSArIDEiLCBTaG91bGROb3RIYXZlRXhl
Y3V0ZWQpOworYWZTaW1wbGUoMSk7CitjaGVja0Jhc2ljQmxvY2soYWZTaW1wbGUsICJ5ICsgMSIs
IFNob3VsZEhhdmVFeGVjdXRlZCk7CisKKworY2hlY2tCYXNpY0Jsb2NrKGFmQmxvY2ssICJ5Kysi
LCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOworYWZCbG9jaygyKTsKK2NoZWNrQmFzaWNCbG9jayhh
ZkJsb2NrLCAieSsrIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsKK2NoZWNrQmFzaWNCbG9jayhhZkJs
b2NrLCAicmV0dXJuIHkgKyAxIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsKKworCitjaGVja0Jhc2lj
QmxvY2soYWZCbG9ja1dpdGhDb25kaXRpb24sJ3grKycsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7
CithZkJsb2NrV2l0aENvbmRpdGlvbigxMCk7CitjaGVja0Jhc2ljQmxvY2soYWZCbG9ja1dpdGhD
b25kaXRpb24sJ3grKycsIFNob3VsZEhhdmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2soYWZC
bG9ja1dpdGhDb25kaXRpb24sJ3JldHVybiB4JywgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsKK2NoZWNr
QmFzaWNCbG9jayhhZkJsb2NrV2l0aENvbmRpdGlvbiwneC0tJywgU2hvdWxkTm90SGF2ZUV4ZWN1
dGVkKTsKKworCithZkJsb2NrV2l0aENvbmRpdGlvbigtMTApOworY2hlY2tCYXNpY0Jsb2NrKGFm
QmxvY2tXaXRoQ29uZGl0aW9uLCd4LS0nLCBTaG91bGRIYXZlRXhlY3V0ZWQpOworCitmdW5jdGlv
biBmb28xKHRlc3QpIHsKKyAgIHZhciBmMSA9ICgpID0+IHsgImhlbGxvIjsgfQorICAgaWYgKHRl
c3QpCisgICAgICAgZjEoKTsKK30KK2ZvbzEoZmFsc2UpOworY2hlY2tCYXNpY0Jsb2NrKGZvbzEs
ICcoKSA9PicsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2soZm9vMSwg
JzsgfScsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7Citmb28xKHRydWUpOworY2hlY2tCYXNpY0Js
b2NrKGZvbzEsICcoKSA9PicsIFNob3VsZEhhdmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2so
Zm9vMSwgJzsgfScsIFNob3VsZEhhdmVFeGVjdXRlZCk7CisKK2Z1bmN0aW9uIGZvbzIodGVzdCkg
eworICAgdmFyIGYxID0geCA9PiB7ICJoZWxsbyI7IH0KKyAgIGlmICh0ZXN0KQorICAgICAgIGYx
KCk7Cit9Citmb28yKGZhbHNlKTsKK2NoZWNrQmFzaWNCbG9jayhmb28yLCAneCA9PicsIFNob3Vs
ZE5vdEhhdmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2soZm9vMiwgJzsgfScsIFNob3VsZE5v
dEhhdmVFeGVjdXRlZCk7Citmb28yKHRydWUpOworY2hlY2tCYXNpY0Jsb2NrKGZvbzIsICd4ID0+
JywgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsKK2NoZWNrQmFzaWNCbG9jayhmb28yLCAnOyB9JywgU2hv
dWxkSGF2ZUV4ZWN1dGVkKTsKKworCitmdW5jdGlvbiBmb28zKHRlc3QpIHsKKyAgIHZhciBmMSA9
ICh4eXopID0+IHsgImhlbGxvIjsgfQorICAgaWYgKHRlc3QpCisgICAgICAgZjEoKTsKK30KK2Zv
bzMoZmFsc2UpOworY2hlY2tCYXNpY0Jsb2NrKGZvbzMsICcoeHl6KSA9PicsIFNob3VsZE5vdEhh
dmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2soZm9vMywgJzsgfScsIFNob3VsZE5vdEhhdmVF
eGVjdXRlZCk7Citmb28zKHRydWUpOworY2hlY2tCYXNpY0Jsb2NrKGZvbzMsICcoeHl6KSA9Pics
IFNob3VsZEhhdmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2soZm9vMywgJzsgfScsIFNob3Vs
ZEhhdmVFeGVjdXRlZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261578</attachid>
            <date>2015-09-19 10:32:23 -0700</date>
            <delta_ts>2015-09-20 21:36:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145638-20150919203209.patch</filename>
            <type>text/plain</type>
            <size>3010</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YTA0NWIyNGVhODdlYzlmYjMxYmEyZjM5NWU0ZWQ5Y2Q5NGQzYWNhLi43NjQ2OWI5YzFhMDA3ODhi
MzA2NTg5NWU1NTQ4YjE0MjdhNTZlMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wOS0xOSBBbGVrc2FuZHIgU2thY2hrb3YgICAgPGdza2FjaGtvdkBn
bWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkZWQgY29udHJvbEZsb3dQcm9maWxlciB0ZXN0
IGZvciBhcnJvdyBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ1NjM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZsb3dQcm9m
aWxlci9hcnJvd2Z1bmN0aW9uLWV4cHJlc3Npb24uanM6IGFkZGVkCisKIDIwMTUtMDktMTkgQWxl
a3NhbmRyIFNrYWNoa292ICAgPGdza2FjaGtvdkBnbWFpbC5jb20+CiAKICAgICAgICAgTmV3IHRl
c3RzIGludHJvZHVjZWQgaW4gcjE4ODU0NSBmYWlsIG9uIDMyIGJpdCBBUk0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2Fycm93ZnVu
Y3Rpb24tZXhwcmVzc2lvbi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9s
Rmxvd1Byb2ZpbGVyL2Fycm93ZnVuY3Rpb24tZXhwcmVzc2lvbi5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTM1
NjBlMTE4YzFjNTUyZWFiYjdjYjg3ODUzZTdiYmU5ZWJmYTJmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvYXJyb3dmdW5j
dGlvbi1leHByZXNzaW9uLmpzCkBAIC0wLDAgKzEsNjMgQEAKK2xvYWQoIi4vZHJpdmVyL2RyaXZl
ci5qcyIpOworCit2YXIgYWZTaW1wbGUgPSB5ID0+IHkgKyAxLAorICAgIGFmQmxvY2sgPSB5ID0+
IHsgeSsrOyByZXR1cm4geSArIDE7fSwKKyAgICBhZkJsb2NrV2l0aENvbmRpdGlvbiA9IHggPT4g
eyB4ID4gMCA/IHgrKyA6IHgtLTsgcmV0dXJuIHg7fTsKKworY2hlY2tCYXNpY0Jsb2NrKGFmU2lt
cGxlLCAieSArIDEiLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOworYWZTaW1wbGUoMSk7CitjaGVj
a0Jhc2ljQmxvY2soYWZTaW1wbGUsICJ5ICsgMSIsIFNob3VsZEhhdmVFeGVjdXRlZCk7CisKKwor
Y2hlY2tCYXNpY0Jsb2NrKGFmQmxvY2ssICJ5KysiLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOwor
YWZCbG9jaygyKTsKK2NoZWNrQmFzaWNCbG9jayhhZkJsb2NrLCAieSsrIiwgU2hvdWxkSGF2ZUV4
ZWN1dGVkKTsKK2NoZWNrQmFzaWNCbG9jayhhZkJsb2NrLCAicmV0dXJuIHkgKyAxIiwgU2hvdWxk
SGF2ZUV4ZWN1dGVkKTsKKworCitjaGVja0Jhc2ljQmxvY2soYWZCbG9ja1dpdGhDb25kaXRpb24s
J3grKycsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7CithZkJsb2NrV2l0aENvbmRpdGlvbigxMCk7
CitjaGVja0Jhc2ljQmxvY2soYWZCbG9ja1dpdGhDb25kaXRpb24sJ3grKycsIFNob3VsZEhhdmVF
eGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2soYWZCbG9ja1dpdGhDb25kaXRpb24sJ3JldHVybiB4
JywgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsKK2NoZWNrQmFzaWNCbG9jayhhZkJsb2NrV2l0aENvbmRp
dGlvbiwneC0tJywgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsKKworCithZkJsb2NrV2l0aENvbmRp
dGlvbigtMTApOworY2hlY2tCYXNpY0Jsb2NrKGFmQmxvY2tXaXRoQ29uZGl0aW9uLCd4LS0nLCBT
aG91bGRIYXZlRXhlY3V0ZWQpOworCitmdW5jdGlvbiBmb28xKHRlc3QpIHsKKyAgIHZhciBmMSA9
ICgpID0+IHsgImhlbGxvIjsgfQorICAgaWYgKHRlc3QpCisgICAgICAgZjEoKTsKK30KK2ZvbzEo
ZmFsc2UpOworY2hlY2tCYXNpY0Jsb2NrKGZvbzEsICcoKSA9PicsIFNob3VsZE5vdEhhdmVFeGVj
dXRlZCk7CitjaGVja0Jhc2ljQmxvY2soZm9vMSwgJzsgfScsIFNob3VsZE5vdEhhdmVFeGVjdXRl
ZCk7Citmb28xKHRydWUpOworY2hlY2tCYXNpY0Jsb2NrKGZvbzEsICcoKSA9PicsIFNob3VsZEhh
dmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2soZm9vMSwgJzsgfScsIFNob3VsZEhhdmVFeGVj
dXRlZCk7CisKK2Z1bmN0aW9uIGZvbzIodGVzdCkgeworICAgdmFyIGYxID0geCA9PiB7ICJoZWxs
byI7IH0KKyAgIGlmICh0ZXN0KQorICAgICAgIGYxKCk7Cit9Citmb28yKGZhbHNlKTsKK2NoZWNr
QmFzaWNCbG9jayhmb28yLCAneCA9PicsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7CitjaGVja0Jh
c2ljQmxvY2soZm9vMiwgJzsgfScsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7Citmb28yKHRydWUp
OworY2hlY2tCYXNpY0Jsb2NrKGZvbzIsICd4ID0+JywgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsKK2No
ZWNrQmFzaWNCbG9jayhmb28yLCAnOyB9JywgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsKKworCitmdW5j
dGlvbiBmb28zKHRlc3QpIHsKKyAgIHZhciBmMSA9ICh4eXopID0+IHsgImhlbGxvIjsgfQorICAg
aWYgKHRlc3QpCisgICAgICAgZjEoKTsKK30KK2ZvbzMoZmFsc2UpOworY2hlY2tCYXNpY0Jsb2Nr
KGZvbzMsICcoeHl6KSA9PicsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxv
Y2soZm9vMywgJzsgfScsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7Citmb28zKHRydWUpOworY2hl
Y2tCYXNpY0Jsb2NrKGZvbzMsICcoeHl6KSA9PicsIFNob3VsZEhhdmVFeGVjdXRlZCk7CitjaGVj
a0Jhc2ljQmxvY2soZm9vMywgJzsgfScsIFNob3VsZEhhdmVFeGVjdXRlZCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>