<?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>68735</bug_id>
          
          <creation_ts>2011-09-23 14:54:08 -0700</creation_ts>
          <short_desc>DFG implementation of PutScopedVar corrupts register allocation</short_desc>
          <delta_ts>2011-09-23 15:12:20 -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>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472523</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-23 14:54:08 -0700</bug_when>
    <thetext>The PutScopedVar case in DFGSpeculativeJIT.cpp does not call noResult(), causing its child (the scope chain) to remain referenced.  It then does not get removed from the register bank, and its virtual register does not get cleared.  This has two effects: bizarre assertion failures and possibly regressed performance in the absence of assertion failures, due to increased register pressure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472524</commentid>
    <comment_count>1</comment_count>
      <attachid>108543</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-23 14:55:43 -0700</bug_when>
    <thetext>Created attachment 108543
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472526</commentid>
    <comment_count>2</comment_count>
      <attachid>108543</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-23 14:56:50 -0700</bug_when>
    <thetext>Comment on attachment 108543
the patch

oooh, i didn&apos;t realise that was necessary/existed -- best to check my other changes for similar screw ups :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472529</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-23 14:57:56 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 108543 [details])
&gt; oooh, i didn&apos;t realise that was necessary/existed -- best to check my other changes for similar screw ups :-(

GetScopeChain and GetScopeVar are right, because they call the relevant xyzResult methods.  It&apos;s the ones that don&apos;t return anything that are annoying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472537</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-23 15:12:20 -0700</bug_when>
    <thetext>Committed r95868: &lt;http://trac.webkit.org/changeset/95868&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108543</attachid>
            <date>2011-09-23 14:55:43 -0700</date>
            <delta_ts>2011-09-23 14:56:49 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixputscopedvar_patch_1.diff</filename>
            <type>text/plain</type>
            <size>1297</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU4NjMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDktMjMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgaW1wbGVtZW50YXRpb24gb2YgUHV0U2NvcGVkVmFyIGNvcnJ1cHRzIHJlZ2lzdGVyIGFsbG9j
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4
NzM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKwogMjAxMS0wOS0yMyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFB1dFNjb3BlZFZhciBub2RlcyBzaG91bGQgcmVwb3J0IHRoYXQgaXQg
aGFzIGEgdmFyIG51bWJlcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDk1ODU1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OTYs
NiArMTc5Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS5jaGlsZDIoKSk7CiAgICAgICAg
IG1faml0LnN0b3JlUHRyKHZhbHVlLmdwcigpLCBKSVRDb21waWxlcjo6QWRkcmVzcyhzY3JhdGNo
R1BSLCBub2RlLnZhck51bWJlcigpICogc2l6ZW9mKFJlZ2lzdGVyKSkpOwogICAgICAgICB3cml0
ZUJhcnJpZXIobV9qaXQsIHNjb3BlQ2hhaW4uZ3ByKCksIHNjcmF0Y2hHUFIsIFdyaXRlQmFycmll
ckZvclZhcmlhYmxlQWNjZXNzKTsKKyAgICAgICAgbm9SZXN1bHQobV9jb21waWxlSW5kZXgpOwog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHZXRCeUlkOiB7Cg==
</data>
<flag name="review"
          id="105528"
          type_id="1"
          status="+"
          setter="oliver"
    />
    <flag name="commit-queue"
          id="105529"
          type_id="3"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>