<?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>68782</bug_id>
          
          <creation_ts>2011-09-25 16:15:52 -0700</creation_ts>
          <short_desc>DFG JIT Construct opcode takes a this argument even though it&apos;s not passed</short_desc>
          <delta_ts>2011-09-25 17:00:41 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472916</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-25 16:15:52 -0700</bug_when>
    <thetext>The DFG JIT Construct implementation initially involved passing a this argument to the Construct node, and then the implementation of the Construct node would pass this argument.  This was unnecessary, since Constructors create their own this argument.  This was then half fixed: the Constructor node implementation stopped passing the this argument.  But there is still a node generated for getting the this argument, and it is still a child of Construct.  This leads to dead code, is confusing to reason about, and probably hurts performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472922</commentid>
    <comment_count>1</comment_count>
      <attachid>108617</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-25 16:35:35 -0700</bug_when>
    <thetext>Created attachment 108617
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472925</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-25 17:00:41 -0700</bug_when>
    <thetext>Landed in r95927.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108617</attachid>
            <date>2011-09-25 16:35:35 -0700</date>
            <delta_ts>2011-09-25 16:50:24 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixconstruct_patch_1.diff</filename>
            <type>text/plain</type>
            <size>4476</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MjQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDktMjUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIENvbnN0cnVjdCBvcGNvZGUgdGFrZXMgYSB0aGlzIGFyZ3VtZW50IGV2ZW4gdGhvdWdo
IGl0J3MKKyAgICAgICAgbm90IHBhc3NlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njg3ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgcGVyZm9ybWFuY2UtbmV1dHJhbCwgbW9z
dGx5LiBJdCdzIGEgc2xpZ2h0IHNwZWVkLXVwIG9uCisgICAgICAgIHY4LXNwbGF5LgorICAgICAg
ICAKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkJ5dGVDb2RlUGFyc2VyOjphZGRDYWxsKToKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZUdl
bmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6ZW1pdENh
bGwpOgorCiAyMDExLTA5LTI1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmVtb3ZlIFBMQVRGT1JNKEhBSUtVKSBhbmQgYXNzb2NpYXRlZCBjb2RlCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2
aXNpb24gOTU5MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQyLDcgKzQ0Miw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIGludCBhcmdDb3VudCA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAg
ICAgIGludCByZWdpc3Rlck9mZnNldCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7
CiAgICAgICAgIGludCBmaXJzdEFyZyA9IHJlZ2lzdGVyT2Zmc2V0IC0gYXJnQ291bnQgLSBSZWdp
c3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemU7Ci0gICAgICAgIGZvciAoaW50IGFyZ0lkeCA9
IGZpcnN0QXJnOyBhcmdJZHggPCBmaXJzdEFyZyArIGFyZ0NvdW50OyBhcmdJZHgrKykKKyAgICAg
ICAgZm9yIChpbnQgYXJnSWR4ID0gZmlyc3RBcmcgKyAob3AgPT0gQ29uc3RydWN0ID8gMSA6IDAp
OyBhcmdJZHggPCBmaXJzdEFyZyArIGFyZ0NvdW50OyBhcmdJZHgrKykKICAgICAgICAgICAgIGFk
ZFZhckFyZ0NoaWxkKGdldChhcmdJZHgpKTsKICAgICAgICAgTm9kZUluZGV4IGNhbGwgPSBhZGRU
b0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKTsK
ICAgICAgICAgaWYgKGludGVycHJldGVyLT5nZXRPcGNvZGVJRChwdXRJbnN0cnVjdGlvbi0+dS5v
cGNvZGUpID09IG9wX2NhbGxfcHV0X3Jlc3VsdCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gOTU5MjQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODgzLDI5ICsxODgzLDMwIEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6
ZW1pdENhbGwoTm9kZSYgbm8KICAgICAvLyByZWNlaXZlciAobWV0aG9kIGNhbGwpLiBzdWJzZXF1
ZW50IGNoaWxkcmVuIGFyZSB0aGUgYXJndW1lbnRzLgogICAgIGludCBudW1BcmdzID0gbm9kZS5u
dW1DaGlsZHJlbigpIC0gMTsKICAgICAKKyAgICAvLyBGb3IgY29uc3RydWN0b3JzLCB0aGUgdGhp
cyBhcmd1bWVudCBpcyBub3QgcGFzc2VkIGJ1dCB3ZSBoYXZlIHRvIG1ha2Ugc3BhY2UKKyAgICAv
LyBmb3IgaXQuCisgICAgaW50IG51bVBhc3NlZEFyZ3MgPSBudW1BcmdzICsgKGlzQ2FsbCA/IDAg
OiAxKTsKKyAgICAKICAgICAvLyBhbW91bnQgb2Ygc3R1ZmYgKGluIHVuaXRzIG9mIHNpemVvZihS
ZWdpc3RlcikpIHRoYXQgd2UgbmVlZCB0byBwbGFjZSBhdCB0aGUKICAgICAvLyB0b3Agb2YgdGhl
IEpTIHN0YWNrLgogICAgIGludCBjYWxsRGF0YVNpemUgPSAwOwogCiAgICAgLy8gZmlyc3QgdGhl
cmUgYXJlIHRoZSBhcmd1bWVudHMKLSAgICBjYWxsRGF0YVNpemUgKz0gbnVtQXJnczsKKyAgICBj
YWxsRGF0YVNpemUgKz0gbnVtUGFzc2VkQXJnczsKICAgICAKICAgICAvLyBhbmQgdGhlbiB0aGVy
ZSBpcyB0aGUgY2FsbCBmcmFtZSBoZWFkZXIKICAgICBjYWxsRGF0YVNpemUgKz0gUmVnaXN0ZXJG
aWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplOwogICAgIAotICAgIG1faml0LnN0b3JlUHRyKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc051bWJlcihudW1Bcmdz
KSkpLCBhZGRyZXNzT2ZDYWxsRGF0YShSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpKTsKKyAg
ICBtX2ppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIobnVtUGFzc2VkQXJncykpKSwgYWRkcmVzc09mQ2FsbERhdGEoUmVnaXN0
ZXJGaWxlOjpBcmd1bWVudENvdW50KSk7CiAgICAgbV9qaXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIGFkZHJlc3NPZkNhbGxEYXRhKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJh
bWUpKTsKICAgICAKLSAgICBpZiAobm9kZS5vcCA9PSBDb25zdHJ1Y3QpCi0gICAgICAgIHVzZSht
X2ppdC5ncmFwaCgpLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS5maXJzdENoaWxkKCkgKyAxXSk7Ci0g
ICAgCi0gICAgZm9yIChpbnQgYXJnSWR4ID0gKG5vZGUub3AgPT0gQ2FsbCA/IDAgOiAxKTsgYXJn
SWR4IDwgbnVtQXJnczsgYXJnSWR4KyspIHsKKyAgICBmb3IgKGludCBhcmdJZHggPSAwOyBhcmdJ
ZHggPCBudW1BcmdzOyBhcmdJZHgrKykgewogICAgICAgICBOb2RlSW5kZXggYXJnTm9kZUluZGV4
ID0gbV9qaXQuZ3JhcGgoKS5tX3ZhckFyZ0NoaWxkcmVuW25vZGUuZmlyc3RDaGlsZCgpICsgMSAr
IGFyZ0lkeF07CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZyh0aGlzLCBhcmdOb2RlSW5kZXgp
OwogICAgICAgICBHUFJSZWcgYXJnR1BSID0gYXJnLmdwcigpOwogICAgICAgICB1c2UoYXJnTm9k
ZUluZGV4KTsKICAgICAgICAgCi0gICAgICAgIG1faml0LnN0b3JlUHRyKGFyZ0dQUiwgYWRkcmVz
c09mQ2FsbERhdGEoLWNhbGxEYXRhU2l6ZSArIGFyZ0lkeCkpOworICAgICAgICBtX2ppdC5zdG9y
ZVB0cihhcmdHUFIsIGFkZHJlc3NPZkNhbGxEYXRhKC1jYWxsRGF0YVNpemUgKyBhcmdJZHggKyAo
aXNDYWxsID8gMCA6IDEpKSk7CiAgICAgfQogICAgIAogICAgIG1faml0LnN0b3JlUHRyKGNhbGxl
ZUdQUiwgYWRkcmVzc09mQ2FsbERhdGEoUmVnaXN0ZXJGaWxlOjpDYWxsZWUpKTsKQEAgLTE5MzMs
NyArMTkzNCw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6ZW1pdENhbGwoTm9kZSYgbm8KICAg
ICAKICAgICBtX2ppdC5hZGRQdHIoSW1tMzIobV9qaXQuY29kZUJsb2NrKCktPm1fbnVtQ2FsbGVl
UmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIEpJVENvbXBpbGVyOjpDYWxsIHNsb3dDYWxs
ID0gbV9qaXQuYXBwZW5kQ2FsbFdpdGhGYXN0RXhjZXB0aW9uQ2hlY2soc2xvd0NhbGxGdW5jdGlv
biwgbV9qaXQuZ3JhcGgoKVttX2NvbXBpbGVJbmRleF0uY29kZU9yaWdpbik7Ci0gICAgbV9qaXQu
bW92ZShJbW0zMihudW1BcmdzKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIG1faml0Lm1vdmUoSW1t
MzIobnVtUGFzc2VkQXJncyksIEdQUkluZm86OnJlZ1QxKTsKICAgICBtX2ppdC5hZGRQdHIoSW1t
MzIobV9qaXQuY29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lz
dGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBtX2ppdC5ub3RpZnlDYWxs
KG1faml0LmNhbGwoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpLCBtX2ppdC5ncmFwaCgpW21fY29t
cGlsZUluZGV4XS5jb2RlT3JpZ2luKTsKICAgICAK
</data>
<flag name="review"
          id="105625"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>