<?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>129466</bug_id>
          
          <creation_ts>2014-02-27 20:38:21 -0800</creation_ts>
          <short_desc>indexOf and lastIndexOf shouldn&apos;t resolve ropes when needle is longer than haystack</short_desc>
          <delta_ts>2014-02-27 21:24:33 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985441</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 20:38:21 -0800</bug_when>
    <thetext>Right now indexOf and lastIndexOf always resolves ropes via JSString::toString.
Just return -1 before resolving ropes when needle is longer than haystack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985442</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-27 20:39:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/16192706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985443</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-27 20:39:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/16192707&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985444</commentid>
    <comment_count>3</comment_count>
      <attachid>225434</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 20:40:34 -0800</bug_when>
    <thetext>Created attachment 225434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985451</commentid>
    <comment_count>4</comment_count>
      <attachid>225434</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-02-27 21:13:50 -0800</bug_when>
    <thetext>Comment on attachment 225434
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        Refactored the code to avoid calling toString on JSString when needle is longer than haystack.

It is actually JSString::value that you are avoiding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985452</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 21:20:28 -0800</bug_when>
    <thetext>Thanks for the review.

(In reply to comment #4)
&gt; (From update of attachment 225434 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225434&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:8
&gt; &gt; +        Refactored the code to avoid calling toString on JSString when needle is longer than haystack.
&gt; 
&gt; It is actually JSString::value that you are avoiding.

Oops, yes. Will fix before landing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985453</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 21:24:33 -0800</bug_when>
    <thetext>Committed r164851: &lt;http://trac.webkit.org/changeset/164851&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225434</attachid>
            <date>2014-02-27 20:40:34 -0800</date>
            <delta_ts>2014-02-27 21:13:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129466-20140227204139.patch</filename>
            <type>text/plain</type>
            <size>4217</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0ODQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OTJhMDMyNGNmYTM0ZTcwYmVhYTFiM2RjOWQ3ZTgyMjU3ZWQyZGQ4Li4zZWUyMzZkNjQxMDk4ODQ3
YjQyNTUwMWYwNWE3ZTljMmFmMzZhNzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNC0wMi0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBpbmRleE9mIGFuZCBsYXN0SW5kZXhPZiBzaG91bGRuJ3QgcmVzb2x2ZSByb3Bl
cyB3aGVuIG5lZWRsZSBpcyBsb25nZXIgdGhhbiBoYXlzdGFjaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDY2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JlZCB0aGUgY29kZSB0byBhdm9p
ZCBjYWxsaW5nIHRvU3RyaW5nIG9uIEpTU3RyaW5nIHdoZW4gbmVlZGxlIGlzIGxvbmdlciB0aGFu
IGhheXN0YWNrLgorCisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNJbmRleE9mKToKKyAgICAgICAgKEpTQzo6c3RyaW5n
UHJvdG9GdW5jTGFzdEluZGV4T2YpOgorCiAyMDE0LTAyLTI3ICBUaW1vdGh5IEhhdGNoZXIgIDx0
aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIGhvdyBDb250ZW50U2VhcmNoVXRp
bGl0aWVzOjpsaW5lRW5kaW5ncyB3b3JrcyBieSBzdXBwb3J0aW5nIHRoZSB0aHJlZSBjb21tb24g
bGluZSBlbmRpbmdzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAKaW5kZXggNzEwZTFkNWQyNTFmNjJmZmJiZDQwOTdhMTE3ZDE4OGE5NmI4
YzhkOC4uNjY5ZmVlZmZmNzE1YmE4NTBlNGM5ODZkODcxMGNkNTNjNWRjMjcwNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC03
NTIsMTggKzc1MiwxNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
RnVuY0luZGV4T2YoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1Zh
bHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgU3RyaW5n
IHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogCiAgICAgSlNWYWx1
ZSBhMCA9IGV4ZWMtPmFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUgYTEgPSBleGVjLT5hcmd1bWVu
dCgxKTsKLSAgICBTdHJpbmcgdTIgPSBhMC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAK
LSAgICBzaXplX3QgcmVzdWx0OwotICAgIGlmIChhMS5pc1VuZGVmaW5lZCgpKQotICAgICAgICBy
ZXN1bHQgPSBzLmZpbmQodTIpOwotICAgIGVsc2UgewotICAgICAgICB1bnNpZ25lZCBwb3M7Ci0g
ICAgICAgIGludCBsZW4gPSBzLmxlbmd0aCgpOworICAgIEpTU3RyaW5nKiB0aGlzSlNTdHJpbmcg
PSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyk7CisgICAgSlNTdHJpbmcqIG90aGVySlNTdHJpbmcg
PSBhMC50b1N0cmluZyhleGVjKTsKKworICAgIHVuc2lnbmVkIHBvcyA9IDA7CisgICAgaWYgKCFh
MS5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIGludCBsZW4gPSB0aGlzSlNTdHJpbmctPmxlbmd0
aCgpOwogICAgICAgICBpZiAoYTEuaXNVSW50MzIoKSkKICAgICAgICAgICAgIHBvcyA9IHN0ZDo6
bWluPHVpbnQzMl90PihhMS5hc1VJbnQzMigpLCBsZW4pOwogICAgICAgICBlbHNlIHsKQEAgLTc3
NCw5ICs3NzIsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNJbmRleE9mKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICBkcG9zID0gbGVuOwog
ICAgICAgICAgICAgcG9zID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRwb3MpOwogICAgICAgICB9
Ci0gICAgICAgIHJlc3VsdCA9IHMuZmluZCh1MiwgcG9zKTsKICAgICB9CiAKKyAgICBpZiAodGhp
c0pTU3RyaW5nLT5sZW5ndGgoKSA8IG90aGVySlNTdHJpbmctPmxlbmd0aCgpICsgcG9zKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CisKKyAgICBzaXplX3Qg
cmVzdWx0ID0gdGhpc0pTU3RyaW5nLT52YWx1ZShleGVjKS5maW5kKG90aGVySlNTdHJpbmctPnZh
bHVlKGV4ZWMpLCBwb3MpOwogICAgIGlmIChyZXN1bHQgPT0gbm90Rm91bmQpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdCkpOwpAQCAtNzg3LDI1ICs3ODgsMzMgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhPZihFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAg
ICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmlu
ZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgaW50IGxlbiA9IHMubGVuZ3RoKCk7CiAKICAgICBK
U1ZhbHVlIGEwID0gZXhlYy0+YXJndW1lbnQoMCk7CiAgICAgSlNWYWx1ZSBhMSA9IGV4ZWMtPmFy
Z3VtZW50KDEpOwogCi0gICAgU3RyaW5nIHUyID0gYTAudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpOworICAgIEpTU3RyaW5nKiB0aGlzSlNTdHJpbmcgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhl
Yyk7CisgICAgdW5zaWduZWQgbGVuID0gdGhpc0pTU3RyaW5nLT5sZW5ndGgoKTsKKyAgICBKU1N0
cmluZyogb3RoZXJKU1N0cmluZyA9IGEwLnRvU3RyaW5nKGV4ZWMpOworCiAgICAgZG91YmxlIGRw
b3MgPSBhMS50b0ludGVnZXJQcmVzZXJ2ZU5hTihleGVjKTsKKyAgICB1bnNpZ25lZCBzdGFydFBv
c2l0aW9uOwogICAgIGlmIChkcG9zIDwgMCkKLSAgICAgICAgZHBvcyA9IDA7CisgICAgICAgIHN0
YXJ0UG9zaXRpb24gPSAwOwogICAgIGVsc2UgaWYgKCEoZHBvcyA8PSBsZW4pKSAvLyB0cnVlIGZv
ciBOYU4KLSAgICAgICAgZHBvcyA9IGxlbjsKKyAgICAgICAgc3RhcnRQb3NpdGlvbiA9IGxlbjsK
KyAgICBlbHNlCisgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
ZHBvcyk7CisKKyAgICBpZiAobGVuIDwgb3RoZXJKU1N0cmluZy0+bGVuZ3RoKCkpCisgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKIAorICAgIFN0cmluZyB0aGlz
U3RyaW5nID0gdGhpc0pTU3RyaW5nLT52YWx1ZShleGVjKTsKKyAgICBTdHJpbmcgb3RoZXJTdHJp
bmcgPSBvdGhlckpTU3RyaW5nLT52YWx1ZShleGVjKTsKICAgICBzaXplX3QgcmVzdWx0OwotICAg
IHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZHBvcyk7CiAg
ICAgaWYgKCFzdGFydFBvc2l0aW9uKQotICAgICAgICByZXN1bHQgPSBzLnN0YXJ0c1dpdGgodTIp
ID8gMCA6IG5vdEZvdW5kOworICAgICAgICByZXN1bHQgPSB0aGlzU3RyaW5nLnN0YXJ0c1dpdGgo
b3RoZXJTdHJpbmcpID8gMCA6IG5vdEZvdW5kOwogICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0g
cy5yZXZlcnNlRmluZCh1Miwgc3RhcnRQb3NpdGlvbik7CisgICAgICAgIHJlc3VsdCA9IHRoaXNT
dHJpbmcucmV2ZXJzZUZpbmQob3RoZXJTdHJpbmcsIHN0YXJ0UG9zaXRpb24pOwogICAgIGlmIChy
ZXN1bHQgPT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoLTEpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdCkpOwo=
</data>
<flag name="review"
          id="249572"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>