<?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>14717</bug_id>
          
          <creation_ts>2007-07-22 19:32:45 -0700</creation_ts>
          <short_desc>REGRESSION: 1% JavaScript performance regression fro Window refactoring</short_desc>
          <delta_ts>2007-07-22 22:49:02 -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>WebCore JavaScript</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</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>4013</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-07-22 19:32:45 -0700</bug_when>
    <thetext>Recent refactoring for the Window object&apos;s JS bindings has caused a 1% speed regression in JavaScript iBench and the &quot;Celtic Kane&quot; JavaScript speed test &lt;http://celtickane.com/projects/jsspeed.php&gt;. It shows up as 3% on the math test of that benchmark specifically. Inlining Window::impl() and DOMWindow::frame() fixes the regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4004</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-07-22 19:37:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/5353174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4005</commentid>
    <comment_count>2</comment_count>
      <attachid>15639</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-07-22 19:40:57 -0700</bug_when>
    <thetext>Created attachment 15639
the fix - inline some new methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4007</commentid>
    <comment_count>3</comment_count>
      <attachid>15639</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-07-22 19:44:38 -0700</bug_when>
    <thetext>Comment on attachment 15639
the fix - inline some new methods

+        Frame* frame() { return m_frame; }

Seems like this should be a const method -- I wonder if anything depends on it not being one?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3988</commentid>
    <comment_count>4</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-07-22 22:49:02 -0700</bug_when>
    <thetext>Fixed - I did not try to make any tweaks to const-correctness for now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15639</attachid>
            <date>2007-07-22 19:40:57 -0700</date>
            <delta_ts>2007-07-22 19:44:38 -0700</delta_ts>
            <desc>the fix - inline some new methods</desc>
            <filename>window-js-regression.patch.txt</filename>
            <type>text/plain</type>
            <size>2399</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI0NTI0
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDctMDct
MjIgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTM1MzE3ND4g
UkVHUkVTU0lPTjogMSUgSmF2YVNjcmlwdCBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIGZybyBXaW5k
b3cgcmVmYWN0b3JpbmcgKDE0NzE3KQorICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDcxNworICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNf
d2luZG93LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfd2luZG93Lmg6CisgICAgICAg
IChLSlM6OldpbmRvdzo6aW1wbCk6IGlubGluZWQKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6ZnJhbWUpOiBpbmxpbmVkCisKIDIwMDctMDctMjIgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIERlY2tlci4KSW5kZXg6IGJp
bmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL2pzL2tqc193
aW5kb3cuY3BwCShyZXZpc2lvbiAyNDQ4OSkKKysrIGJpbmRpbmdzL2pzL2tqc193aW5kb3cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzksMTEgKzIzOSw2IEBAIFdpbmRvdzo6fldpbmRvdygpCiAg
ICAgICAgIGkxLT5zZWNvbmQtPmNsZWFyV2luZG93T2JqKCk7CiB9CiAKLURPTVdpbmRvdyogV2lu
ZG93OjppbXBsKCkgY29uc3QKLXsKLSAgICAgcmV0dXJuIG1faW1wbC5nZXQoKTsKLX0KLQogU2Ny
aXB0SW50ZXJwcmV0ZXIqIFdpbmRvdzo6aW50ZXJwcmV0ZXIoKSBjb25zdAogewogICAgIEZyYW1l
KiBmcmFtZSA9IGltcGwoKS0+ZnJhbWUoKTsKSW5kZXg6IGJpbmRpbmdzL2pzL2tqc193aW5kb3cu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9ranNfd2luZG93LmgJKHJldmlzaW9uIDI0NDg5
KQorKysgYmluZGluZ3MvanMva2pzX3dpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3
Myw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIFdpbmRvdyhXZWJDb3JlOjpET01XaW5kb3cqKTsK
ICAgcHVibGljOgogICAgIH5XaW5kb3coKTsKLSAgICBXZWJDb3JlOjpET01XaW5kb3cqIGltcGwo
KSBjb25zdDsKKyAgICBXZWJDb3JlOjpET01XaW5kb3cqIGltcGwoKSBjb25zdCB7IHJldHVybiBt
X2ltcGwuZ2V0KCk7IH0KICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwogICAgIC8qKgogICAg
ICAqIFJldHVybnMgYW5kIHJlZ2lzdGVycyBhIHdpbmRvdyBvYmplY3QuIEluIGNhc2UgdGhlcmUn
cyBhbHJlYWR5IGEgV2luZG93CkluZGV4OiBwYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAyNDQ4OSkKKysrIHBhZ2UvRE9NV2luZG93
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTEgKzU1LDYgQEAgRE9NV2luZG93Ojp+RE9NV2lu
ZG93KCkKIHsKIH0KIAotRnJhbWUqIERPTVdpbmRvdzo6ZnJhbWUoKQotewotICAgIHJldHVybiBt
X2ZyYW1lOwotfQotCiB2b2lkIERPTVdpbmRvdzo6ZGlzY29ubmVjdEZyYW1lKCkKIHsKICAgICBt
X2ZyYW1lID0gMDsKSW5kZXg6IHBhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9E
T01XaW5kb3cuaAkocmV2aXNpb24gMjQ0ODkpCisrKyBwYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5n
IGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRE9N
V2luZG93KEZyYW1lKik7CiAgICAgICAgIHZpcnR1YWwgfkRPTVdpbmRvdygpOwogCi0gICAgICAg
IEZyYW1lKiBmcmFtZSgpOworICAgICAgICBGcmFtZSogZnJhbWUoKSB7IHJldHVybiBtX2ZyYW1l
OyB9CiAgICAgICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CiAKICAgICAgICAgdm9pZCBjbGVh
cigpOwo=
</data>
<flag name="review"
          id="6510"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>