<?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>15337</bug_id>
          
          <creation_ts>2007-10-01 22:13:59 -0700</creation_ts>
          <short_desc>Efficiently handle regexp property identifiers for 19% speedup on Celtic Kane regexp test</short_desc>
          <delta_ts>2007-10-02 20:38:58 -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>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://celtickane.com/projects/jsspeed2007.php</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>57602</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-10-01 22:13:59 -0700</bug_when>
    <thetext>The Celtic Kane regexp benchmark spends a lot of its time making Identifiers for a lot of the custom properties kept on RegExp related objects. It would work much better to use the CommonIdentifiers technique for these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57608</commentid>
    <comment_count>1</comment_count>
      <attachid>16495</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-10-01 22:52:28 -0700</bug_when>
    <thetext>Created attachment 16495
speedup patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57630</commentid>
    <comment_count>2</comment_count>
      <attachid>16495</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-10-02 02:24:25 -0700</bug_when>
    <thetext>Comment on attachment 16495
speedup patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16495</attachid>
            <date>2007-10-01 22:52:28 -0700</date>
            <delta_ts>2007-10-02 02:24:25 -0700</delta_ts>
            <desc>speedup patch</desc>
            <filename>regexp-identifier-speedup.patch.txt</filename>
            <type>text/plain</type>
            <size>5533</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTAy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDctMTAt
MDEgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIC0gRWZmaWNpZW50bHkgaGFu
ZGxlIHJlZ2V4cCBwcm9wZXJ0eSBpZGVudGlmaWVycyBmb3IgMTklIHNwZWVkdXAgb24gQ2VsdGlj
IEthbmUgcmVnZXhwIHRlc3QKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUzMzcKKworICAgICAgICAqIGtqcy9Db21tb25JZGVudGlmaWVycy5oOgorICAg
ICAgICAqIGtqcy9yZWdleHBfb2JqZWN0LmNwcDoKKyAgICAgICAgKFJlZ0V4cFByb3RvRnVuYzo6
Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAoUmVnRXhwT2JqZWN0SW1wOjphcnJheU9mTWF0Y2hl
cyk6CisgICAgICAgIChSZWdFeHBPYmplY3RJbXA6OmNvbnN0cnVjdCk6CisKIDIwMDctMDktMjkg
IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFyay4KSW5kZXg6IGtqcy9Db21tb25JZGVudGlmaWVycy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtqcy9Db21tb25JZGVudGlmaWVycy5oCShyZXZpc2lvbiAyNTgxMCkKKysrIGtq
cy9Db21tb25JZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNSArMzIsMjIgQEAK
ICAgICBtYWNybyhjYWxsZXIpIFwKICAgICBtYWNybyhjb25zdHJ1Y3RvcikgXAogICAgIG1hY3Jv
KGZyb21DaGFyQ29kZSkgXAorICAgIG1hY3JvKGdsb2JhbCkgXAorICAgIG1hY3JvKGlnbm9yZUNh
c2UpIFwKKyAgICBtYWNybyhpbmRleCkgXAorICAgIG1hY3JvKGlucHV0KSBcCisgICAgbWFjcm8o
bGFzdEluZGV4KSBcCiAgICAgbWFjcm8obGVuZ3RoKSBcCiAgICAgbWFjcm8obWVzc2FnZSkgXAor
ICAgIG1hY3JvKG11bHRpbGluZSkgXAogICAgIG1hY3JvKG5hbWUpIFwKICAgICBtYWNybyhwcm90
b3R5cGUpIFwKLSAgICBtYWNybyh0b0xvY2FsZVN0cmluZykgXAotICAgIG1hY3JvKHRvU3RyaW5n
KSBcCi0gICAgbWFjcm8odG9GaXhlZCkgXAorICAgIG1hY3JvKHNvdXJjZSkgXAogICAgIG1hY3Jv
KHRvRXhwb25lbnRpYWwpIFwKKyAgICBtYWNybyh0b0ZpeGVkKSBcCisgICAgbWFjcm8odG9Mb2Nh
bGVTdHJpbmcpIFwKICAgICBtYWNybyh0b1ByZWNpc2lvbikgXAorICAgIG1hY3JvKHRvU3RyaW5n
KSBcCiAgICAgbWFjcm8odmFsdWVPZikKIAogbmFtZXNwYWNlIEtKUyB7CkluZGV4OiBranMvcmVn
ZXhwX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL3JlZ2V4cF9vYmplY3QuY3BwCShyZXZp
c2lvbiAyNTgxMCkKKysrIGtqcy9yZWdleHBfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODUsMTcgKzg1LDE3IEBAIEpTVmFsdWUgKlJlZ0V4cFByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24K
IAogICAgIFVTdHJpbmcgaW5wdXQ7CiAgICAgaWYgKGFyZ3MuaXNFbXB0eSgpKQotICAgICAgaW5w
dXQgPSByZWdFeHBPYmotPmdldChleGVjLCAiaW5wdXQiKS0+dG9TdHJpbmcoZXhlYyk7CisgICAg
ICBpbnB1dCA9IHJlZ0V4cE9iai0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5pbnB1
dCktPnRvU3RyaW5nKGV4ZWMpOwogICAgIGVsc2UKICAgICAgIGlucHV0ID0gYXJnc1swXS0+dG9T
dHJpbmcoZXhlYyk7CiAKLSAgICBkb3VibGUgbGFzdEluZGV4ID0gdGhpc09iai0+Z2V0KGV4ZWMs
ICJsYXN0SW5kZXgiKS0+dG9JbnRlZ2VyKGV4ZWMpOworICAgIGRvdWJsZSBsYXN0SW5kZXggPSB0
aGlzT2JqLT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxhc3RJbmRleCktPnRvSW50
ZWdlcihleGVjKTsKIAotICAgIGJvb2wgZ2xvYmFsRmxhZyA9IHRoaXNPYmotPmdldChleGVjLCAi
Z2xvYmFsIiktPnRvQm9vbGVhbihleGVjKTsKKyAgICBib29sIGdsb2JhbEZsYWcgPSB0aGlzT2Jq
LT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdsb2JhbCktPnRvQm9vbGVhbihleGVj
KTsKICAgICBpZiAoIWdsb2JhbEZsYWcpCiAgICAgICBsYXN0SW5kZXggPSAwOwogICAgIGlmIChs
YXN0SW5kZXggPCAwIHx8IGxhc3RJbmRleCA+IGlucHV0LnNpemUoKSkgewotICAgICAgdGhpc09i
ai0+cHV0KGV4ZWMsICJsYXN0SW5kZXgiLCBqc051bWJlcigwKSwgRG9udERlbGV0ZSB8IERvbnRF
bnVtKTsKKyAgICAgIHRoaXNPYmotPnB1dChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGFz
dEluZGV4LCBqc051bWJlcigwKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKICAgICAgIHJldHVy
biBqc051bGwoKTsKICAgICB9CiAKQEAgLTExMCwyNCArMTEwLDI0IEBAIEpTVmFsdWUgKlJlZ0V4
cFByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24KICAgICAvLyBFeGVjCiAgICAgaWYgKGRpZE1hdGNo
KSB7CiAgICAgICBpZiAoZ2xvYmFsRmxhZykKLSAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsICJs
YXN0SW5kZXgiLCBqc051bWJlcihmb3VuZEluZGV4ICsgbWF0Y2guc2l6ZSgpKSwgRG9udERlbGV0
ZSB8IERvbnRFbnVtKTsKKyAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5sYXN0SW5kZXgsIGpzTnVtYmVyKGZvdW5kSW5kZXggKyBtYXRjaC5zaXplKCkpLCBE
b250RGVsZXRlIHwgRG9udEVudW0pOwogICAgICAgcmV0dXJuIHJlZ0V4cE9iai0+YXJyYXlPZk1h
dGNoZXMoZXhlYywgbWF0Y2gpOwogICAgIH0gZWxzZSB7CiAgICAgICBpZiAoZ2xvYmFsRmxhZykK
LSAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsICJsYXN0SW5kZXgiLCBqc051bWJlcigwKSwgRG9u
dERlbGV0ZSB8IERvbnRFbnVtKTsKKyAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5sYXN0SW5kZXgsIGpzTnVtYmVyKDApLCBEb250RGVsZXRlIHwgRG9udEVu
dW0pOwogICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIH0KICAgfQogICBicmVhazsKICAgY2Fz
ZSBUb1N0cmluZzoKLSAgICBVU3RyaW5nIHJlc3VsdCA9ICIvIiArIHRoaXNPYmotPmdldChleGVj
LCAic291cmNlIiktPnRvU3RyaW5nKGV4ZWMpICsgIi8iOwotICAgIGlmICh0aGlzT2JqLT5nZXQo
ZXhlYywgImdsb2JhbCIpLT50b0Jvb2xlYW4oZXhlYykpIHsKKyAgICBVU3RyaW5nIHJlc3VsdCA9
ICIvIiArIHRoaXNPYmotPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuc291cmNlKS0+
dG9TdHJpbmcoZXhlYykgKyAiLyI7CisgICAgaWYgKHRoaXNPYmotPmdldChleGVjLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuZ2xvYmFsKS0+dG9Cb29sZWFuKGV4ZWMpKSB7CiAgICAgICByZXN1bHQg
Kz0gImciOwogICAgIH0KLSAgICBpZiAodGhpc09iai0+Z2V0KGV4ZWMsICJpZ25vcmVDYXNlIikt
PnRvQm9vbGVhbihleGVjKSkgeworICAgIGlmICh0aGlzT2JqLT5nZXQoZXhlYywgZXhlYy0+cHJv
cGVydHlOYW1lcygpLmlnbm9yZUNhc2UpLT50b0Jvb2xlYW4oZXhlYykpIHsKICAgICAgIHJlc3Vs
dCArPSAiaSI7CiAgICAgfQotICAgIGlmICh0aGlzT2JqLT5nZXQoZXhlYywgIm11bHRpbGluZSIp
LT50b0Jvb2xlYW4oZXhlYykpIHsKKyAgICBpZiAodGhpc09iai0+Z2V0KGV4ZWMsIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5tdWx0aWxpbmUpLT50b0Jvb2xlYW4oZXhlYykpIHsKICAgICAgIHJlc3Vs
dCArPSAibSI7CiAgICAgfQogICAgIHJldHVybiBqc1N0cmluZyhyZXN1bHQpOwpAQCAtMjQ0LDgg
KzI0NCw4IEBAIEpTT2JqZWN0ICpSZWdFeHBPYmplY3RJbXA6OmFycmF5T2ZNYXRjaGUKICAgICAg
IH0KICAgICB9CiAgIEpTT2JqZWN0ICphcnIgPSBleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+
YnVpbHRpbkFycmF5KCktPmNvbnN0cnVjdChleGVjLCBsaXN0KTsKLSAgYXJyLT5wdXQoZXhlYywg
ImluZGV4IiwganNOdW1iZXIoZC0+bGFzdE92ZWN0b3JbMF0pKTsKLSAgYXJyLT5wdXQoZXhlYywg
ImlucHV0IiwganNTdHJpbmcoZC0+bGFzdElucHV0KSk7CisgIGFyci0+cHV0KGV4ZWMsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5pbmRleCwganNOdW1iZXIoZC0+bGFzdE92ZWN0b3JbMF0pKTsKKyAg
YXJyLT5wdXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmlucHV0LCBqc1N0cmluZyhkLT5s
YXN0SW5wdXQpKTsKICAgcmV0dXJuIGFycjsKIH0KIApAQCAtMzkxLDEyICszOTEsMTIgQEAgSlNP
YmplY3QgKlJlZ0V4cE9iamVjdEltcDo6Y29uc3RydWN0KEV4ZQogICBib29sIGlnbm9yZUNhc2Ug
PSAoZmxhZ3MuZmluZCgiaSIpID49IDApOwogICBib29sIG11bHRpbGluZSA9IChmbGFncy5maW5k
KCJtIikgPj0gMCk7CiAKLSAgZGF0LT5wdXREaXJlY3QoImdsb2JhbCIsIGpzQm9vbGVhbihnbG9i
YWwpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7Ci0gIGRhdC0+cHV0RGlyZWN0
KCJpZ25vcmVDYXNlIiwganNCb29sZWFuKGlnbm9yZUNhc2UpLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkgfCBEb250RW51bSk7Ci0gIGRhdC0+cHV0RGlyZWN0KCJtdWx0aWxpbmUiLCBqc0Jvb2xlYW4o
bXVsdGlsaW5lKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICBkYXQtPnB1
dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2xvYmFsLCBqc0Jvb2xlYW4oZ2xvYmFsKSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICBkYXQtPnB1dERpcmVjdChleGVj
LT5wcm9wZXJ0eU5hbWVzKCkuaWdub3JlQ2FzZSwganNCb29sZWFuKGlnbm9yZUNhc2UpLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgIGRhdC0+cHV0RGlyZWN0KGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5tdWx0aWxpbmUsIGpzQm9vbGVhbihtdWx0aWxpbmUpLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAKLSAgZGF0LT5wdXREaXJlY3QoInNvdXJjZSIsIGpz
U3RyaW5nKHApLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7Ci0gIGRhdC0+cHV0
RGlyZWN0KCJsYXN0SW5kZXgiLCBqc051bWJlcigwKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsK
KyAgZGF0LT5wdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnNvdXJjZSwganNTdHJpbmco
cCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgZGF0LT5wdXREaXJlY3Qo
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxhc3RJbmRleCwganNOdW1iZXIoMCksIERvbnREZWxldGUg
fCBEb250RW51bSk7CiAKICAgaW50IHJlZmxhZ3MgPSBSZWdFeHA6Ok5vbmU7CiAgIGlmIChnbG9i
YWwpCg==
</data>
<flag name="review"
          id="6951"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>