<?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>161944</bug_id>
          
          <creation_ts>2016-09-13 19:49:37 -0700</creation_ts>
          <short_desc>stringProtoFuncRepeatCharacter will return `null` when it should not</short_desc>
          <delta_ts>2016-09-28 18:31:30 -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>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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1229426</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-13 19:49:37 -0700</bug_when>
    <thetext>It doesn&apos;t properly detect when an int is in double form.
However, there is also a deeper problem, where it looks like numbers are being polluted into double form instead
of staying in integer form, even though there is only one comparison on that number that needs it in double form.
I&apos;m looking at String.prototype.padStart. the @toLength builtin will cause the pollution.

See this example:
```

function logLinesWithContext(n, context) {
    let start = n - context;
    let end = n + context;
    for (let x = start; x &lt;= end; ++x) {
        let number = x.toString().padStart(3);
        // WHAT?!
        if (parseInt(number) != x)
            print(number);
    }
}

let numbers = [
    19,19,19,19,19,19,19,20,20,20,20,20,20,20,11,11,11,11,11,11,11,20,20,20,20,
    20,20,20,15,15,15,15,15,15,15,21,21,21,21,21,21,21,19,19,19,19,19,19,19,20,
    20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,24,24,24,24,24,
    24,24,25,25,25,25,25,25,25,11,11,11,11,11,11,11,25,25,25,25,25,25,25,15,15,
    15,15,15,15,15,25,25,25,25,25,25,25,7,7,7,7,7,7,7,26,26,26,26,26,26,26,24,
    24,24,24,24,24,24,25,25,25,25,25,25,25,11,11,11,11,11,11,11,25,25,25,25,25,
    25,25,26,26,26,26,26,26,26,24,24,24,24,24,24,24,25,25,25,25,25,25,25,11,11,
    11,11,11,11,11,12,12,12,12,12,12,12,25,25,25,25,25,25,25,15,15,15,15,15,15,
    15,16,16,16,16,16,16,16,25,25,25,25,25,25,25,7,7,7,7,7,7,7,8,8,8,8,8,8,8,
    26,26,26,26,26,26,26,24,24,24,24,24,24,24,25,25,25,25,25,25,25,11,11,11,11,
    11,11,11,12,12,12,12,12,12,12,25,25,25,25,25,25,25,15,15,15,15,15,15,15,16,
    16,16,16,16,16,16,25,25,25,25,25,25,25,7,7,7,7,7,7,7,8,8,8,8,8,8,8,26,26,
    26,26,26,26,26,29,29,29,29,29,29,29,30,30,30,30,30,30,30,35,35,35,35,35,35,
    35,29,29,29,29,29,29,29,30,30,30,30,30,30,30,11,11,11,11,11,11,11,33,33,33,
    33,33,33,33,35,35,35,35,35,35,35,39,39,39,39,39,39,39,40,40,40,40,40,40,40,
    11,11,11,11,11,11,11,40,40,40,40,40,40,40,40,40,40,40,40,40,40,15,15,15,15,
    15,15,15,41,41,41,41,41,41,41,39,39,39,39,39,39,39,40,40,40,40,40,40,40,40,
    40,40,40,40,40,40,40,40,40,40,40,40,40,41,41,41,41,41,41,41,45,45,45,45,45,
    45,45,46,46,46,46,46,46,46,11,11,11,11,11,11,11,46,46,46,46,46,46,46,15,15,
];
for (let n of numbers)
    logLinesWithContext(n, 3);
```
It will start printing things because the result string is not an integer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229427</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-13 19:50:29 -0700</bug_when>
    <thetext>The bug also goes away when @toLength is not inlined into padStart.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234588</commentid>
    <comment_count>2</comment_count>
      <attachid>290133</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-28 16:21:38 -0700</bug_when>
    <thetext>Created attachment 290133
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234592</commentid>
    <comment_count>3</comment_count>
      <attachid>290133</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-28 16:29:21 -0700</bug_when>
    <thetext>Comment on attachment 290133
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234621</commentid>
    <comment_count>4</comment_count>
      <attachid>290145</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-28 17:01:49 -0700</bug_when>
    <thetext>Created attachment 290145
patch

take 2. I removed the caller that expected the null result value and instead made protoFuncRepeatCharacter throw OOM when it will construct too long of a string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234622</commentid>
    <comment_count>5</comment_count>
      <attachid>290145</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-28 17:04:52 -0700</bug_when>
    <thetext>Comment on attachment 290145
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234651</commentid>
    <comment_count>6</comment_count>
      <attachid>290145</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-28 18:31:25 -0700</bug_when>
    <thetext>Comment on attachment 290145
patch

Clearing flags on attachment: 290145

Committed r206573: &lt;http://trac.webkit.org/changeset/206573&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234652</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-28 18:31:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290133</attachid>
            <date>2016-09-28 16:21:38 -0700</date>
            <delta_ts>2016-09-28 17:01:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>5765</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDY1NTcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE2LTA5LTI4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlciB3aWxsIHJldHVy
biBgbnVsbGAgd2hlbiBpdCBzaG91bGQgbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9wYWQtc3RhcnQtY2FsbHMtcmVwZWF0LWNoYXJh
Y3Rlci13aXRoLWRvdWJsZS5qczogQWRkZWQuCisgICAgICAgIChsb2dMaW5lc1dpdGhDb250ZXh0
KToKKwogMjAxNi0wOS0yNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIEIzOjpsb3dlck1hY3JvcyBmb3JnZXRzIHRvIGJlZm9yZS0+dXBkYXRlUHJlZGVjZXNzb3Jz
QWZ0ZXIoKSB3aGVuIGxvd2VyaW5nIENoaWxsTW9kIG9uIEFSTTY0CkluZGV4OiBKU1Rlc3RzL3N0
cmVzcy9wYWQtc3RhcnQtY2FsbHMtcmVwZWF0LWNoYXJhY3Rlci13aXRoLWRvdWJsZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9wYWQtc3RhcnQtY2FsbHMtcmVwZWF0LWNoYXJhY3Rl
ci13aXRoLWRvdWJsZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9wYWQtc3Rh
cnQtY2FsbHMtcmVwZWF0LWNoYXJhY3Rlci13aXRoLWRvdWJsZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQzIEBACitmdW5jdGlvbiBsb2dMaW5lc1dpdGhDb250ZXh0KG4sIGNvbnRleHQp
IHsKKyAgICBsZXQgc3RhcnQgPSBuIC0gY29udGV4dDsKKyAgICBsZXQgZW5kID0gbiArIGNvbnRl
eHQ7CisgICAgZm9yIChsZXQgeCA9IHN0YXJ0OyB4IDw9IGVuZDsgKyt4KSB7CisgICAgICAgIGxl
dCBudW1iZXIgPSB4LnRvU3RyaW5nKCkucGFkU3RhcnQoMyk7CisgICAgICAgIGlmIChwYXJzZUlu
dChudW1iZXIpICE9PSB4KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcmVzdWx0
IGZyb20gcGFkIHN0YXJ0OiAiICsgbnVtYmVyKTsKKyAgICB9Cit9Citub0lubGluZShsb2dMaW5l
c1dpdGhDb250ZXh0KTsKKworbGV0IG51bWJlcnMgPSBbCisgICAgMTksMTksMTksMTksMTksMTks
MTksMjAsMjAsMjAsMjAsMjAsMjAsMjAsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMjAsMjAsMjAsMjAs
CisgICAgMjAsMjAsMjAsMTUsMTUsMTUsMTUsMTUsMTUsMTUsMjEsMjEsMjEsMjEsMjEsMjEsMjEs
MTksMTksMTksMTksMTksMTksMTksMjAsCisgICAgMjAsMjAsMjAsMjAsMjAsMjAsMjAsMjAsMjAs
MjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjQsMjQsMjQsMjQsMjQsCisgICAgMjQs
MjQsMjUsMjUsMjUsMjUsMjUsMjUsMjUsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMjUsMjUsMjUsMjUs
MjUsMjUsMjUsMTUsMTUsCisgICAgMTUsMTUsMTUsMTUsMTUsMjUsMjUsMjUsMjUsMjUsMjUsMjUs
Nyw3LDcsNyw3LDcsNywyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNCwKKyAgICAyNCwyNCwyNCwyNCwy
NCwyNCwyNSwyNSwyNSwyNSwyNSwyNSwyNSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwyNSwyNSwyNSwy
NSwyNSwKKyAgICAyNSwyNSwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNCwyNCwyNCwyNCwyNCwyNCwy
NCwyNSwyNSwyNSwyNSwyNSwyNSwyNSwxMSwxMSwKKyAgICAxMSwxMSwxMSwxMSwxMSwxMiwxMiwx
MiwxMiwxMiwxMiwxMiwyNSwyNSwyNSwyNSwyNSwyNSwyNSwxNSwxNSwxNSwxNSwxNSwxNSwKKyAg
ICAxNSwxNiwxNiwxNiwxNiwxNiwxNiwxNiwyNSwyNSwyNSwyNSwyNSwyNSwyNSw3LDcsNyw3LDcs
Nyw3LDgsOCw4LDgsOCw4LDgsCisgICAgMjYsMjYsMjYsMjYsMjYsMjYsMjYsMjQsMjQsMjQsMjQs
MjQsMjQsMjQsMjUsMjUsMjUsMjUsMjUsMjUsMjUsMTEsMTEsMTEsMTEsCisgICAgMTEsMTEsMTEs
MTIsMTIsMTIsMTIsMTIsMTIsMTIsMjUsMjUsMjUsMjUsMjUsMjUsMjUsMTUsMTUsMTUsMTUsMTUs
MTUsMTUsMTYsCisgICAgMTYsMTYsMTYsMTYsMTYsMTYsMjUsMjUsMjUsMjUsMjUsMjUsMjUsNyw3
LDcsNyw3LDcsNyw4LDgsOCw4LDgsOCw4LDI2LDI2LAorICAgIDI2LDI2LDI2LDI2LDI2LDI5LDI5
LDI5LDI5LDI5LDI5LDI5LDMwLDMwLDMwLDMwLDMwLDMwLDMwLDM1LDM1LDM1LDM1LDM1LDM1LAor
ICAgIDM1LDI5LDI5LDI5LDI5LDI5LDI5LDI5LDMwLDMwLDMwLDMwLDMwLDMwLDMwLDExLDExLDEx
LDExLDExLDExLDExLDMzLDMzLDMzLAorICAgIDMzLDMzLDMzLDMzLDM1LDM1LDM1LDM1LDM1LDM1
LDM1LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDQwLDQwLDQwLDQwLDQwLDQwLDQwLAorICAgIDExLDEx
LDExLDExLDExLDExLDExLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQw
LDE1LDE1LDE1LDE1LAorICAgIDE1LDE1LDE1LDQxLDQxLDQxLDQxLDQxLDQxLDQxLDM5LDM5LDM5
LDM5LDM5LDM5LDM5LDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2
LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1
LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDEx
LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2
LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAg
IDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2
LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDEx
LDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2
LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2
LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDEx
LDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2
LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1
LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2
LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2
LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorXTsKKwor
Zm9yIChsZXQgbiBvZiBudW1iZXJzKQorICAgIGxvZ0xpbmVzV2l0aENvbnRleHQobiwgMyk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjUwMykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAor
MjAxNi0wOS0yOCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAgICBz
dHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIgd2lsbCByZXR1cm4gYG51bGxgIHdoZW4gaXQg
c2hvdWxkIG5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYxOTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyIHdhcyBleHBlY3RpbmcgaXRzIHNlY29u
ZCBhcmd1bWVudAorICAgICAgICB0byBhbHdheXMgYmUgYSBib3hlZCBpbnRlZ2VyLiBUaGlzIGlz
IG5vdCBjb3JyZWN0LiBUaGUgREZHIG1heSBkZWNpZGUKKyAgICAgICAgdG8gcmVwcmVzZW50IGEg
cGFydGljdWxhciB2YWx1ZSBhcyBhIGRvdWJsZSBpbnN0ZWFkIG9mIGludGVnZXIuIFRoaXMKKyAg
ICAgICAgZnVuY3Rpb24gbmVlZHMgdG8gaGF2ZSBjb3JyZWN0IGJlaGF2aW9yIHdoZW4gaXRzIHNl
Y29uZCBhcmd1bWVudCBpcworICAgICAgICBhIGJveGVkIGRvdWJsZS4gSSBhbHNvIGFkZGVkIGFu
IGFzc2VydGlvbiBzdGF0aW5nIHRoYXQgdGhlIHNlY29uZCBhcmd1bWVudAorICAgICAgICBpcyBh
bHdheXMgYSBudW1iZXIuIFdlIGNhbiBndWFyYW50ZWUgdGhpcyBzaW5jZSBpdCdzIG9ubHkgY2Fs
bGVkIGZyb20KKyAgICAgICAgYnVpbHRpbnMuCisKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3Rl
cik6CisKIDIwMTYtMDktMjcgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIE1pc3NpbmcgQXRvbWljcy5oIGluY2x1ZGUgaW4gTWFya2VkQmxvY2suaApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
CShyZXZpc2lvbiAyMDY1MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODAsMTEgKzc4MCwxMSBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgSlNTdHJpbmcqIHN0cmlu
ZyA9IGpzQ2FzdDxKU1N0cmluZyo+KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBB
U1NFUlQoc3RyaW5nLT5sZW5ndGgoKSA9PSAxKTsKIAotICAgIGlmICghZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMSkuaXNJbnQzMigpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVsbCgpKTsKLQotICAgIGludDMyX3QgcmVwZWF0Q291bnQgPSBleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgxKS5hc0ludDMyKCk7CisgICAgSlNWYWx1ZSByZXBlYXRDb3VudFZhbHVlID0gZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMSk7CisgICAgUkVMRUFTRV9BU1NFUlQocmVwZWF0Q291bnRWYWx1
ZS5pc051bWJlcigpKTsKKyAgICBpbnQzMl90IHJlcGVhdENvdW50ID0gcmVwZWF0Q291bnRWYWx1
ZS5pc0ludDMyKCkgPyByZXBlYXRDb3VudFZhbHVlLmFzSW50MzIoKSA6IHN0YXRpY19jYXN0PGlu
dDMyX3Q+KHJlcGVhdENvdW50VmFsdWUuYXNEb3VibGUoKSk7CiAgICAgQVNTRVJUKHJlcGVhdENv
dW50ID49IDApOworICAgIEFTU0VSVCghcmVwZWF0Q291bnRWYWx1ZS5pc0RvdWJsZSgpIHx8IHJl
cGVhdENvdW50VmFsdWUuYXNEb3VibGUoKSA9PSByZXBlYXRDb3VudCk7CiAKICAgICBVQ2hhciBj
aGFyYWN0ZXIgPSBzdHJpbmctPnZpZXcoZXhlYylbMF07CiAgICAgaWYgKCEoY2hhcmFjdGVyICYg
fjB4ZmYpKQo=
</data>
<flag name="review"
          id="313330"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290145</attachid>
            <date>2016-09-28 17:01:49 -0700</date>
            <delta_ts>2016-09-28 18:31:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>6724</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDY1NTcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE2LTA5LTI4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlciB3aWxsIHJldHVy
biBgbnVsbGAgd2hlbiBpdCBzaG91bGQgbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9wYWQtc3RhcnQtY2FsbHMtcmVwZWF0LWNoYXJh
Y3Rlci13aXRoLWRvdWJsZS5qczogQWRkZWQuCisgICAgICAgIChsb2dMaW5lc1dpdGhDb250ZXh0
KToKKwogMjAxNi0wOS0yNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIEIzOjpsb3dlck1hY3JvcyBmb3JnZXRzIHRvIGJlZm9yZS0+dXBkYXRlUHJlZGVjZXNzb3Jz
QWZ0ZXIoKSB3aGVuIGxvd2VyaW5nIENoaWxsTW9kIG9uIEFSTTY0CkluZGV4OiBKU1Rlc3RzL3N0
cmVzcy9wYWQtc3RhcnQtY2FsbHMtcmVwZWF0LWNoYXJhY3Rlci13aXRoLWRvdWJsZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9wYWQtc3RhcnQtY2FsbHMtcmVwZWF0LWNoYXJhY3Rl
ci13aXRoLWRvdWJsZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9wYWQtc3Rh
cnQtY2FsbHMtcmVwZWF0LWNoYXJhY3Rlci13aXRoLWRvdWJsZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQzIEBACitmdW5jdGlvbiBsb2dMaW5lc1dpdGhDb250ZXh0KG4sIGNvbnRleHQp
IHsKKyAgICBsZXQgc3RhcnQgPSBuIC0gY29udGV4dDsKKyAgICBsZXQgZW5kID0gbiArIGNvbnRl
eHQ7CisgICAgZm9yIChsZXQgeCA9IHN0YXJ0OyB4IDw9IGVuZDsgKyt4KSB7CisgICAgICAgIGxl
dCBudW1iZXIgPSB4LnRvU3RyaW5nKCkucGFkU3RhcnQoMyk7CisgICAgICAgIGlmIChwYXJzZUlu
dChudW1iZXIpICE9PSB4KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcmVzdWx0
IGZyb20gcGFkIHN0YXJ0OiAiICsgbnVtYmVyKTsKKyAgICB9Cit9Citub0lubGluZShsb2dMaW5l
c1dpdGhDb250ZXh0KTsKKworbGV0IG51bWJlcnMgPSBbCisgICAgMTksMTksMTksMTksMTksMTks
MTksMjAsMjAsMjAsMjAsMjAsMjAsMjAsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMjAsMjAsMjAsMjAs
CisgICAgMjAsMjAsMjAsMTUsMTUsMTUsMTUsMTUsMTUsMTUsMjEsMjEsMjEsMjEsMjEsMjEsMjEs
MTksMTksMTksMTksMTksMTksMTksMjAsCisgICAgMjAsMjAsMjAsMjAsMjAsMjAsMjAsMjAsMjAs
MjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjQsMjQsMjQsMjQsMjQsCisgICAgMjQs
MjQsMjUsMjUsMjUsMjUsMjUsMjUsMjUsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMjUsMjUsMjUsMjUs
MjUsMjUsMjUsMTUsMTUsCisgICAgMTUsMTUsMTUsMTUsMTUsMjUsMjUsMjUsMjUsMjUsMjUsMjUs
Nyw3LDcsNyw3LDcsNywyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNCwKKyAgICAyNCwyNCwyNCwyNCwy
NCwyNCwyNSwyNSwyNSwyNSwyNSwyNSwyNSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwyNSwyNSwyNSwy
NSwyNSwKKyAgICAyNSwyNSwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNCwyNCwyNCwyNCwyNCwyNCwy
NCwyNSwyNSwyNSwyNSwyNSwyNSwyNSwxMSwxMSwKKyAgICAxMSwxMSwxMSwxMSwxMSwxMiwxMiwx
MiwxMiwxMiwxMiwxMiwyNSwyNSwyNSwyNSwyNSwyNSwyNSwxNSwxNSwxNSwxNSwxNSwxNSwKKyAg
ICAxNSwxNiwxNiwxNiwxNiwxNiwxNiwxNiwyNSwyNSwyNSwyNSwyNSwyNSwyNSw3LDcsNyw3LDcs
Nyw3LDgsOCw4LDgsOCw4LDgsCisgICAgMjYsMjYsMjYsMjYsMjYsMjYsMjYsMjQsMjQsMjQsMjQs
MjQsMjQsMjQsMjUsMjUsMjUsMjUsMjUsMjUsMjUsMTEsMTEsMTEsMTEsCisgICAgMTEsMTEsMTEs
MTIsMTIsMTIsMTIsMTIsMTIsMTIsMjUsMjUsMjUsMjUsMjUsMjUsMjUsMTUsMTUsMTUsMTUsMTUs
MTUsMTUsMTYsCisgICAgMTYsMTYsMTYsMTYsMTYsMTYsMjUsMjUsMjUsMjUsMjUsMjUsMjUsNyw3
LDcsNyw3LDcsNyw4LDgsOCw4LDgsOCw4LDI2LDI2LAorICAgIDI2LDI2LDI2LDI2LDI2LDI5LDI5
LDI5LDI5LDI5LDI5LDI5LDMwLDMwLDMwLDMwLDMwLDMwLDMwLDM1LDM1LDM1LDM1LDM1LDM1LAor
ICAgIDM1LDI5LDI5LDI5LDI5LDI5LDI5LDI5LDMwLDMwLDMwLDMwLDMwLDMwLDMwLDExLDExLDEx
LDExLDExLDExLDExLDMzLDMzLDMzLAorICAgIDMzLDMzLDMzLDMzLDM1LDM1LDM1LDM1LDM1LDM1
LDM1LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDQwLDQwLDQwLDQwLDQwLDQwLDQwLAorICAgIDExLDEx
LDExLDExLDExLDExLDExLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQw
LDE1LDE1LDE1LDE1LAorICAgIDE1LDE1LDE1LDQxLDQxLDQxLDQxLDQxLDQxLDQxLDM5LDM5LDM5
LDM5LDM5LDM5LDM5LDQwLDQwLDQwLDQwLDQwLDQwLDQwLDQwLAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2
LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1
LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDEx
LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2
LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAg
IDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2
LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDEx
LDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2
LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2
LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDEx
LDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2
LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1
LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDExLDExLDExLDExLDExLDExLDExLDQ2
LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorICAgIDQ1LDQ1LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2
LDExLDExLDExLDExLDExLDExLDExLDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDQ2LDE1LDE1LAorXTsKKwor
Zm9yIChsZXQgbiBvZiBudW1iZXJzKQorICAgIGxvZ0xpbmVzV2l0aENvbnRleHQobiwgMyk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjUwMykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAor
MjAxNi0wOS0yOCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAgICBz
dHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIgd2lsbCByZXR1cm4gYG51bGxgIHdoZW4gaXQg
c2hvdWxkIG5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYxOTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyIHdhcyBleHBlY3RpbmcgaXRzIHNlY29u
ZCBhcmd1bWVudAorICAgICAgICB0byBhbHdheXMgYmUgYSBib3hlZCBpbnRlZ2VyLiBUaGlzIGlz
IG5vdCBjb3JyZWN0LiBUaGUgREZHIG1heSBkZWNpZGUKKyAgICAgICAgdG8gcmVwcmVzZW50IGEg
cGFydGljdWxhciB2YWx1ZSBhcyBhIGRvdWJsZSBpbnN0ZWFkIG9mIGludGVnZXIuIFRoaXMKKyAg
ICAgICAgZnVuY3Rpb24gbmVlZHMgdG8gaGF2ZSBjb3JyZWN0IGJlaGF2aW9yIHdoZW4gaXRzIHNl
Y29uZCBhcmd1bWVudCBpcworICAgICAgICBhIGJveGVkIGRvdWJsZS4gSSBhbHNvIGFkZGVkIGFu
IGFzc2VydGlvbiBzdGF0aW5nIHRoYXQgdGhlIHNlY29uZCBhcmd1bWVudAorICAgICAgICBpcyBh
bHdheXMgYSBudW1iZXIuIFdlIGNhbiBndWFyYW50ZWUgdGhpcyBzaW5jZSBpdCdzIG9ubHkgY2Fs
bGVkIGZyb20KKyAgICAgICAgYnVpbHRpbnMuCisKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3Rl
cik6CisKIDIwMTYtMDktMjcgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIE1pc3NpbmcgQXRvbWljcy5oIGluY2x1ZGUgaW4gTWFya2VkQmxvY2suaApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpz
CShyZXZpc2lvbiAyMDY1MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3Ry
aW5nUHJvdG90eXBlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsMTEgKzExMCw4IEBAIGZ1bmN0
aW9uIHJlcGVhdChjb3VudCkKICAgICBpZiAoY291bnQgPCAwIHx8IGNvdW50ID09PSBASW5maW5p
dHkpCiAgICAgICAgIHRocm93IG5ldyBAUmFuZ2VFcnJvcigiU3RyaW5nLnByb3RvdHlwZS5yZXBl
YXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJl
IEluZmluaXR5Iik7CiAKLSAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMSkgewotICAgICAgICB2
YXIgcmVzdWx0ID0gQHJlcGVhdENoYXJhY3RlcihzdHJpbmcsIGNvdW50KTsKLSAgICAgICAgaWYg
KHJlc3VsdCAhPT0gbnVsbCkKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQorICAg
IGlmIChzdHJpbmcubGVuZ3RoID09PSAxKQorICAgICAgICByZXR1cm4gQHJlcGVhdENoYXJhY3Rl
cihzdHJpbmcsIGNvdW50KTsKIAogICAgIHJldHVybiBAcmVwZWF0U2xvd1BhdGgoc3RyaW5nLCBj
b3VudCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAJKHJldmlzaW9uIDIwNjUwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4MCwx
MSArNzgwLDE5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAg
ICBKU1N0cmluZyogc3RyaW5nID0ganNDYXN0PEpTU3RyaW5nKj4oZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkpOwogICAgIEFTU0VSVChzdHJpbmctPmxlbmd0aCgpID09IDEpOwogCi0gICAgaWYg
KCFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS5pc0ludDMyKCkpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwotCi0gICAgaW50MzJfdCByZXBlYXRDb3VudCA9IGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLmFzSW50MzIoKTsKKyAgICBKU1ZhbHVlIHJlcGVhdENv
dW50VmFsdWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKKyAgICBSRUxFQVNFX0FTU0VS
VChyZXBlYXRDb3VudFZhbHVlLmlzTnVtYmVyKCkpOworICAgIGludDMyX3QgcmVwZWF0Q291bnQ7
CisgICAgeworICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgICAgIGRvdWJsZSB2YWx1ZSA9IHJlcGVh
dENvdW50VmFsdWUuYXNOdW1iZXIoKTsKKyAgICAgICAgaWYgKHZhbHVlID4gSlNTdHJpbmc6Ok1h
eExlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1l
bW9yeUVycm9yKGV4ZWMsIHNjb3BlKSk7CisgICAgICAgIHJlcGVhdENvdW50ID0gc3RhdGljX2Nh
c3Q8aW50MzJfdD4odmFsdWUpOworICAgIH0KICAgICBBU1NFUlQocmVwZWF0Q291bnQgPj0gMCk7
CisgICAgQVNTRVJUKCFyZXBlYXRDb3VudFZhbHVlLmlzRG91YmxlKCkgfHwgcmVwZWF0Q291bnRW
YWx1ZS5hc0RvdWJsZSgpID09IHJlcGVhdENvdW50KTsKIAogICAgIFVDaGFyIGNoYXJhY3RlciA9
IHN0cmluZy0+dmlldyhleGVjKVswXTsKICAgICBpZiAoIShjaGFyYWN0ZXIgJiB+MHhmZikpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>