<?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>72683</bug_id>
          
          <creation_ts>2011-11-17 17:56:20 -0800</creation_ts>
          <short_desc>Tune JSStringBuilder for 8 bit Strings</short_desc>
          <delta_ts>2011-11-24 22:23:36 -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>All</rep_platform>
          <op_sys>All</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="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>505396</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-11-17 17:56:20 -0800</bug_when>
    <thetext>Investigate common cases string processing is generic (e.g. using characters()) and could benefit from 8 bit specific processing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507666</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-11-22 10:19:54 -0800</bug_when>
    <thetext>Retargeting this defect to one java script tune - JSStringBuilder which uses UString::characters() and a 16 bit buffer irrespective of the actual string size or data range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507672</commentid>
    <comment_count>2</comment_count>
      <attachid>116243</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-11-22 10:30:17 -0800</bug_when>
    <thetext>Created attachment 116243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508841</commentid>
    <comment_count>3</comment_count>
      <attachid>116243</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-24 11:05:18 -0800</bug_when>
    <thetext>Comment on attachment 116243
Patch

What is the performance effect, if any?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508958</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-11-24 22:22:28 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 116243 [details])
&gt; What is the performance effect, if any?

This patch is worth about .5% on SunSpider using jsc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508959</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-11-24 22:23:36 -0800</bug_when>
    <thetext>Committed r101147: &lt;http://trac.webkit.org/changeset/101147&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116243</attachid>
            <date>2011-11-22 10:30:17 -0800</date>
            <delta_ts>2011-11-24 11:05:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>72683.patch</filename>
            <type>text/plain</type>
            <size>5819</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxMDA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDExLTExLTIyICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFR1bmUgSlNTdHJpbmdCdWlsZGVyIGZvciA4IGJpdCBTdHJpbmdzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY4MworCisgICAgICAgIENoYW5n
ZWQgSlNTdHJpbmdCdWlsZGVyIHRvIHVzZSA4IGJpdCBidWZmZXJzIHVudGlsIDE2IGJpdCBkYXRh
IGlzIGFkZGVkLgorICAgICAgICBXaGVuIDE2IGJpdCBkYXRhIGlzIHRvIGJlIGFkZGVkLCB0aGUg
OCBiaXQgYnVmZmVyIGlzIGNvbnZlcnRlZCB0byAxNiBiaXQKKyAgICAgICAgYW5kIGJ1aWxkaW5n
IGNvbnRpbnVlcyB3aXRoIGEgMTYgYml0IGJ1ZmZlci4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmdCdWlsZGVyLmg6Cisg
ICAgICAgIChKU0M6OkpTU3RyaW5nQnVpbGRlcjo6SlNTdHJpbmdCdWlsZGVyKToKKyAgICAgICAg
KEpTQzo6SlNTdHJpbmdCdWlsZGVyOjphcHBlbmQpOgorICAgICAgICAoSlNDOjpKU1N0cmluZ0J1
aWxkZXI6OnVwQ29udmVydCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nQnVpbGRlcjo6YnVpbGQp
OgorICAgICAgICAqIHJ1bnRpbWUvVVN0cmluZy5oOgorICAgICAgICAoSlNDOjpVU3RyaW5nOjph
ZG9wdCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpT
dHJpbmdJbXBsOjphZG9wdCk6CisKIDIwMTEtMTEtMjIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MDA5ODguCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0J1aWxk
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Z0J1aWxkZXIuaAkocmV2aXNpb24gMTAwNjc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdHJpbmdCdWlsZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEyICszNywyMSBA
QCBjbGFzcyBKU1N0cmluZ0J1aWxkZXIgewogcHVibGljOgogICAgIEpTU3RyaW5nQnVpbGRlcigp
CiAgICAgICAgIDogbV9va2F5KHRydWUpCisgICAgICAgICwgbV9pczhCaXQodHJ1ZSkKICAgICB7
CiAgICAgfQogCiAgICAgdm9pZCBhcHBlbmQoY29uc3QgVUNoYXIgdSkKICAgICB7Ci0gICAgICAg
IG1fb2theSAmPSBidWZmZXIudHJ5QXBwZW5kKCZ1LCAxKTsKKyAgICAgICAgaWYgKG1faXM4Qml0
KSB7CisgICAgICAgICAgICBpZiAodSA8IDB4ZmYpIHsKKyAgICAgICAgICAgICAgICBMQ2hhciBj
ID0gdTsKKyAgICAgICAgICAgICAgICBtX29rYXkgJj0gYnVmZmVyOC50cnlBcHBlbmQoJmMsIDEp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVw
Q29udmVydCgpOworICAgICAgICB9CisgICAgICAgIG1fb2theSAmPSBidWZmZXIxNi50cnlBcHBl
bmQoJnUsIDEpOwogICAgIH0KIAogICAgIHZvaWQgYXBwZW5kKGNvbnN0IGNoYXIqIHN0cikKQEAg
LTUyLDM2ICs2MSw3NCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBz
dHIsIHNpemVfdCBsZW4pCiAgICAgewotICAgICAgICBtX29rYXkgJj0gYnVmZmVyLnRyeVJlc2Vy
dmVDYXBhY2l0eShidWZmZXIuc2l6ZSgpICsgbGVuKTsKKyAgICAgICAgaWYgKG1faXM4Qml0KSB7
CisgICAgICAgICAgICBtX29rYXkgJj0gYnVmZmVyOC50cnlBcHBlbmQocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KHN0ciksIGxlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgbV9va2F5ICY9IGJ1ZmZlcjgudHJ5UmVzZXJ2ZUNhcGFjaXR5KGJ1ZmZlcjE2
LnNpemUoKSArIGxlbik7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyBpKysp
IHsKICAgICAgICAgICAgIFVDaGFyIHUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihzdHJb
aV0pOwotICAgICAgICAgICAgbV9va2F5ICY9IGJ1ZmZlci50cnlBcHBlbmQoJnUsIDEpOworICAg
ICAgICAgICAgbV9va2F5ICY9IGJ1ZmZlcjE2LnRyeUFwcGVuZCgmdSwgMSk7CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICB2b2lkIGFwcGVuZChjb25zdCBVQ2hhciogc3RyLCBzaXplX3QgbGVuKQog
ICAgIHsKLSAgICAgICAgbV9va2F5ICY9IGJ1ZmZlci50cnlBcHBlbmQoc3RyLCBsZW4pOworICAg
ICAgICBpZiAobV9pczhCaXQpCisgICAgICAgICAgICB1cENvbnZlcnQoKTsgLy8gRklYTUU6IFdl
IGNvdWxkIGNoZWNrIGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgaXRzIHNpemUuCisgICAgICAgIG1f
b2theSAmPSBidWZmZXIxNi50cnlBcHBlbmQoc3RyLCBsZW4pOwogICAgIH0KIAogICAgIHZvaWQg
YXBwZW5kKGNvbnN0IFVTdHJpbmcmIHN0cikKICAgICB7Ci0gICAgICAgIG1fb2theSAmPSBidWZm
ZXIudHJ5QXBwZW5kKHN0ci5jaGFyYWN0ZXJzKCksIHN0ci5sZW5ndGgoKSk7CisgICAgICAgIHVu
c2lnbmVkIGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKworICAgICAgICBpZiAoIWxlbmd0aCkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAobV9pczhCaXQpIHsKKyAgICAgICAgICAg
IGlmIChzdHIuaXM4Qml0KCkpIHsKKyAgICAgICAgICAgICAgICBtX29rYXkgJj0gYnVmZmVyOC50
cnlBcHBlbmQoc3RyLmNoYXJhY3RlcnM4KCksIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdXBDb252ZXJ0KCk7CisgICAgICAgIH0K
KyAgICAgICAgbV9va2F5ICY9IGJ1ZmZlcjE2LnRyeUFwcGVuZChzdHIuY2hhcmFjdGVycygpLCBs
ZW5ndGgpOworICAgIH0KKworICAgIHZvaWQgdXBDb252ZXJ0KCkKKyAgICB7CisgICAgICAgIEFT
U0VSVChtX2lzOEJpdCk7CisgICAgICAgIHNpemVfdCBsZW4gPSBidWZmZXI4LnNpemUoKTsKKwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgaSsrKQorICAgICAgICAgICAgYnVm
ZmVyMTYuYXBwZW5kKGJ1ZmZlcjhbaV0pOworCisgICAgICAgIGJ1ZmZlcjguY2xlYXIoKTsKKyAg
ICAgICAgbV9pczhCaXQgPSBmYWxzZTsKICAgICB9CiAKICAgICBKU1ZhbHVlIGJ1aWxkKEV4ZWNT
dGF0ZSogZXhlYykKICAgICB7CiAgICAgICAgIGlmICghbV9va2F5KQogICAgICAgICAgICAgcmV0
dXJuIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjKTsKLSAgICAgICAgYnVmZmVyLnNocmlua1Rv
Rml0KCk7Ci0gICAgICAgIGlmICghYnVmZmVyLmRhdGEoKSkKKyAgICAgICAgaWYgKG1faXM4Qml0
KSB7CisgICAgICAgICAgICBidWZmZXI4LnNocmlua1RvRml0KCk7CisgICAgICAgICAgICBpZiAo
IWJ1ZmZlcjguZGF0YSgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5
RXJyb3IoZXhlYyk7CisgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgVVN0cmluZzo6
YWRvcHQoYnVmZmVyOCkpOworICAgICAgICB9CisgICAgICAgIGJ1ZmZlcjE2LnNocmlua1RvRml0
KCk7CisgICAgICAgIGlmICghYnVmZmVyMTYuZGF0YSgpKQogICAgICAgICAgICAgcmV0dXJuIHRo
cm93T3V0T2ZNZW1vcnlFcnJvcihleGVjKTsKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMs
IFVTdHJpbmc6OmFkb3B0KGJ1ZmZlcikpOworICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywg
VVN0cmluZzo6YWRvcHQoYnVmZmVyMTYpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBWZWN0
b3I8VUNoYXIsIDY0PiBidWZmZXI7CisgICAgVmVjdG9yPExDaGFyLCA2ND4gYnVmZmVyODsKKyAg
ICBWZWN0b3I8VUNoYXIsIDY0PiBidWZmZXIxNjsKICAgICBib29sIG1fb2theTsKKyAgICBib29s
IG1faXM4Qml0OwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZTEsIHR5cGVuYW1l
IFN0cmluZ1R5cGUyPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmlu
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1VTdHJpbmcu
aAkocmV2aXNpb24gMTAwNjc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0
cmluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc3dhcChVU3RyaW5nJiBvKSB7IG1faW1wbC5zd2FwKG8ubV9pbXBsKTsgfQogCi0gICAgdGVt
cGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5PgotICAgIHN0YXRpYyBVU3RyaW5nIGFkb3B0KFZl
Y3RvcjxVQ2hhciwgaW5saW5lQ2FwYWNpdHk+JiB2ZWN0b3IpIHsgcmV0dXJuIFN0cmluZ0ltcGw6
OmFkb3B0KHZlY3Rvcik7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVHlwZSwgc2l6ZV90
IGlubGluZUNhcGFjaXR5PgorICAgIHN0YXRpYyBVU3RyaW5nIGFkb3B0KFZlY3RvcjxDaGFyVHlw
ZSwgaW5saW5lQ2FwYWNpdHk+JiB2ZWN0b3IpIHsgcmV0dXJuIFN0cmluZ0ltcGw6OmFkb3B0KHZl
Y3Rvcik7IH0KIAogICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gIW1faW1wbDsgfQog
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2ltcGwgfHwgIW1faW1wbC0+bGVu
Z3RoKCk7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0lt
cGwuaAkocmV2aXNpb24gMTAwNjc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L1N0cmluZ0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjYzLDggKzI2Myw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdW5zaWduZWQgZGF0YU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihTdHJpbmdJbXBsLCBtX2RhdGE4KTsgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmluZ0lt
cGw+IGNyZWF0ZVdpdGhUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIoY29uc3QgU3RyaW5nSW1wbCYp
OwogCi0gICAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5PgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cmluZ0ltcGw+IGFkb3B0KFZlY3RvcjxVQ2hhciwgaW5saW5lQ2FwYWNpdHk+JiB2
ZWN0b3IpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhclR5cGUsIHNpemVfdCBpbmxpbmVDYXBh
Y2l0eT4KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBhZG9wdChWZWN0b3I8Q2hh
clR5cGUsIGlubGluZUNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgaWYgKHNpemVf
dCBzaXplID0gdmVjdG9yLnNpemUoKSkgewogICAgICAgICAgICAgQVNTRVJUKHZlY3Rvci5kYXRh
KCkpOwo=
</data>
<flag name="review"
          id="115370"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>