<?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>20989</bug_id>
          
          <creation_ts>2008-09-22 03:56:21 -0700</creation_ts>
          <short_desc>Aguments constructor should put &apos;callee&apos; and &apos;length&apos; properties in a more efficient way</short_desc>
          <delta_ts>2008-09-23 04:02:32 -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>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>
          
          <blocked>20813</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Cameron Zwarich (cpst)">zwarich</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>92105</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-09-22 03:56:21 -0700</bug_when>
    <thetext>Currently the Arguments constructor uses putDirect() to put both of these properties. A Shark profile on my system says that this is 5.6% of total time in the V8 Raytrace benchmark, which suggests that we should find a better way to add these properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92303</commentid>
    <comment_count>1</comment_count>
      <attachid>23699</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-09-23 03:00:38 -0700</bug_when>
    <thetext>Created attachment 23699
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92306</commentid>
    <comment_count>2</comment_count>
      <attachid>23699</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-09-23 03:10:15 -0700</bug_when>
    <thetext>Comment on attachment 23699
Proposed patch

r=me

I wonder if overrodeLength/overrodeCallee being bitfields is &quot;expensive&quot; -- did you try without?

Also if you&apos;re trying to reduce size it might be worth seeing if you can drop one of the other fields to 30 bits and so merge the bitfields.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92308</commentid>
    <comment_count>3</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-09-23 04:02:32 -0700</bug_when>
    <thetext>Landed in r36804.

Using bitfields rather than booleans doesn&apos;t seem to affect speed (in fact, using bitfields rather than nothing at all didn&apos;t seem to affect speed), and I didn&apos;t want to merge the bitfields with any integer arguments because they are used fairly often. I can still try it out later, though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23699</attachid>
            <date>2008-09-23 03:00:38 -0700</date>
            <delta_ts>2008-09-23 03:10:15 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>properties.diff</filename>
            <type>text/plain</type>
            <size>4656</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM2ODAy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDgtMDkt
MjMgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDIwOTg5OiBBZ3VtZW50
cyBjb25zdHJ1Y3RvciBzaG91bGQgcHV0ICdjYWxsZWUnIGFuZCAnbGVuZ3RoJyBwcm9wZXJ0aWVz
IGluIGEgbW9yZSBlZmZpY2llbnQgd2F5CisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA5ODk+CisKKyAgICAgICAgTWFrZSBzcGVjaWFsIGNhc2VzIGZv
ciB0aGUgJ2NhbGxlZScgYW5kICdsZW5ndGgnIHByb3BlcnRpZXMgaW4gdGhlCisgICAgICAgIEFy
Z3VtZW50cyBvYmplY3QuCisKKyAgICAgICAgVGhpcyBpcyBzb21ld2hlcmUgYmV0d2VlbiBhIDcu
OCUgc3BlZWR1cCBhbmQgYSAxMCUgc3BlZWR1cCBvbiB0aGUgVjgKKyAgICAgICAgUmF5dHJhY2Ug
YmVuY2htYXJrLCBkZXBlbmRpbmcgb24gd2hldGhlciBpdCBpcyBydW4gYWxvbmUgb3Igd2l0aCB0
aGUKKyAgICAgICAgb3RoZXIgVjggYmVuY2htYXJrcy4KKworICAgICAgICAqIGtqcy9Bcmd1bWVu
dHMuY3BwOgorICAgICAgICAoSlNDOjpBcmd1bWVudHNEYXRhOjpBcmd1bWVudHNEYXRhKToKKyAg
ICAgICAgKEpTQzo6QXJndW1lbnRzOjpBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpBcmd1bWVu
dHM6Om1hcmspOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdCk6
CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6cHV0KToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRz
OjpkZWxldGVQcm9wZXJ0eSk6CisKIDIwMDgtMDktMjMgIE1hY2llaiBTdGFjaG93aWFrICA8bWpz
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IGtqcy9Bcmd1
bWVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9Bcmd1bWVudHMuY3BwCShyZXZpc2lvbiAzNjc5
NCkKKysrIGtqcy9Bcmd1bWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwzMyArMzgsMzgg
QEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChBcmd1bWVudHMpOwogY29uc3QgQ2xhc3NJbmZv
IEFyZ3VtZW50czo6aW5mbyA9IHsgIkFyZ3VtZW50cyIsIDAsIDAsIDAgfTsKIAogc3RydWN0IEFy
Z3VtZW50c0RhdGEgOiBOb25jb3B5YWJsZSB7Ci0gICAgQXJndW1lbnRzRGF0YShKU0FjdGl2YXRp
b24qIGFjdGl2YXRpb24sIHVuc2lnbmVkIG51bVBhcmFtZXRlcnMsIHVuc2lnbmVkIGZpcnN0QXJn
dW1lbnRJbmRleCwgdW5zaWduZWQgbnVtQXJndW1lbnRzKQorICAgIEFyZ3VtZW50c0RhdGEoSlNB
Y3RpdmF0aW9uKiBhY3RpdmF0aW9uLCB1bnNpZ25lZCBudW1QYXJhbWV0ZXJzLCB1bnNpZ25lZCBm
aXJzdEFyZ3VtZW50SW5kZXgsIHVuc2lnbmVkIG51bUFyZ3VtZW50cywgSlNGdW5jdGlvbiogY2Fs
bGVlKQogICAgICAgICA6IGFjdGl2YXRpb24oYWN0aXZhdGlvbikKICAgICAgICAgLCBudW1QYXJh
bWV0ZXJzKG51bVBhcmFtZXRlcnMpCiAgICAgICAgICwgZmlyc3RBcmd1bWVudEluZGV4KGZpcnN0
QXJndW1lbnRJbmRleCkKICAgICAgICAgLCBudW1Bcmd1bWVudHMobnVtQXJndW1lbnRzKQogICAg
ICAgICAsIGV4dHJhQXJndW1lbnRzKDApCisgICAgICAgICwgY2FsbGVlKGNhbGxlZSkKKyAgICAg
ICAgLCBvdmVycm9kZUxlbmd0aChmYWxzZSkKKyAgICAgICAgLCBvdmVycm9kZUNhbGxlZShmYWxz
ZSkKICAgICB7CiAgICAgfQogCiAgICAgSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9uOworCiAgICAg
dW5zaWduZWQgbnVtUGFyYW1ldGVyczsKICAgICB1bnNpZ25lZCBmaXJzdEFyZ3VtZW50SW5kZXg7
CiAgICAgdW5zaWduZWQgbnVtQXJndW1lbnRzOwogICAgIFJlZ2lzdGVyKiBleHRyYUFyZ3VtZW50
czsKICAgICBPd25BcnJheVB0cjxib29sPiBkZWxldGVkQXJndW1lbnRzOwogICAgIFJlZ2lzdGVy
IGV4dHJhQXJndW1lbnRzRml4ZWRCdWZmZXJbNF07CisKKyAgICBKU0Z1bmN0aW9uKiBjYWxsZWU7
CisgICAgYm9vbCBvdmVycm9kZUxlbmd0aCA6IDE7CisgICAgYm9vbCBvdmVycm9kZUNhbGxlZSA6
IDE7CiB9OwogCiAvLyBFQ01BIDEwLjEuOAogQXJndW1lbnRzOjpBcmd1bWVudHMoRXhlY1N0YXRl
KiBleGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbiwgSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9uLCBp
bnQgZmlyc3RBcmd1bWVudEluZGV4LCBSZWdpc3RlciogYXJndiwgaW50IGFyZ2MpCiAgICAgOiBK
U09iamVjdChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFyZ3VtZW50c1N0cnVjdHVyZSgp
KQotICAgICwgZChuZXcgQXJndW1lbnRzRGF0YShhY3RpdmF0aW9uLCBmdW5jdGlvbi0+bnVtUGFy
YW1ldGVycygpLCBmaXJzdEFyZ3VtZW50SW5kZXgsIGFyZ2MpKQorICAgICwgZChuZXcgQXJndW1l
bnRzRGF0YShhY3RpdmF0aW9uLCBmdW5jdGlvbi0+bnVtUGFyYW1ldGVycygpLCBmaXJzdEFyZ3Vt
ZW50SW5kZXgsIGFyZ2MsIGZ1bmN0aW9uKSkKIHsKICAgICBBU1NFUlQoYWN0aXZhdGlvbik7Ci0K
LSAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlZSwgZnVuY3Rpb24sIERv
bnRFbnVtKTsKLSAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNO
dW1iZXIoZXhlYywgYXJnYyksIERvbnRFbnVtKTsKICAgCiAgICAgaWYgKGQtPm51bUFyZ3VtZW50
cyA+IGQtPm51bVBhcmFtZXRlcnMpIHsKICAgICAgICAgdW5zaWduZWQgbnVtRXh0cmFBcmd1bWVu
dHMgPSBkLT5udW1Bcmd1bWVudHMgLSBkLT5udW1QYXJhbWV0ZXJzOwpAQCAtOTcsNiArMTAyLDkg
QEAgdm9pZCBBcmd1bWVudHM6Om1hcmsoKSAKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmICgh
ZC0+Y2FsbGVlLT5tYXJrZWQoKSkKKyAgICAgICAgZC0+Y2FsbGVlLT5tYXJrKCk7CisKICAgICBp
ZiAoIWQtPmFjdGl2YXRpb24tPm1hcmtlZCgpKQogICAgICAgICBkLT5hY3RpdmF0aW9uLT5tYXJr
KCk7CiB9CkBAIC0xNjQsNiArMTcyLDE2IEBAIGJvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1MKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoICYmIExJS0VMWSghZC0+b3Zl
cnJvZGVMZW5ndGgpKSB7CisgICAgICAgIHNsb3Quc2V0VmFsdWUoanNOdW1iZXIoZXhlYywgZC0+
bnVtQXJndW1lbnRzKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlZSAmJiBMSUtFTFkoIWQt
Pm92ZXJyb2RlQ2FsbGVlKSkgeworICAgICAgICBzbG90LnNldFZhbHVlKGQtPmNhbGxlZSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKQEAgLTE5Miw2ICsy
MTAsMTggQEAgdm9pZCBBcmd1bWVudHM6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbgogICAgICAg
ICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkubGVuZ3RoICYmICFkLT5vdmVycm9kZUxlbmd0aCkgeworICAgICAgICBkLT5vdmVy
cm9kZUxlbmd0aCA9IHRydWU7CisgICAgICAgIHB1dERpcmVjdChwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBEb250RW51bSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAocHJvcGVydHlO
YW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUgJiYgIWQtPm92ZXJyb2RlQ2FsbGVl
KSB7CisgICAgICAgIGQtPm92ZXJyb2RlQ2FsbGVlID0gdHJ1ZTsKKyAgICAgICAgcHV0RGlyZWN0
KHByb3BlcnR5TmFtZSwgdmFsdWUsIERvbnRFbnVtKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIEpTT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9
CiAKQEAgLTIyNiw2ICsyNTYsMTYgQEAgYm9vbCBBcmd1bWVudHM6OmRlbGV0ZVByb3BlcnR5KEV4
ZWNTdGF0ZQogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoICYmICFkLT5vdmVycm9kZUxlbmd0aCkgeworICAgICAg
ICBkLT5vdmVycm9kZUxlbmd0aCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlZSAm
JiAhZC0+b3ZlcnJvZGVDYWxsZWUpIHsKKyAgICAgICAgZC0+b3ZlcnJvZGVDYWxsZWUgPSB0cnVl
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICByZXR1cm4gSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAK
</data>
<flag name="review"
          id="10636"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>