<?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>102062</bug_id>
          
          <creation_ts>2012-11-13 02:06:29 -0800</creation_ts>
          <short_desc>JSFunction and its descendants should be destructible</short_desc>
          <delta_ts>2012-11-13 12:28:52 -0800</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>102017</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>765403</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-13 02:06:29 -0800</bug_when>
    <thetext>This will allow me to put a watchpoint inside them.  Watchpoints currently involve malloc&apos;d data, so it&apos;s better if they can be destroyed.  There is the alternative possibility of creating a GCAllocatedWatchpointSet, but I think this is overkill for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765406</commentid>
    <comment_count>1</comment_count>
      <attachid>173851</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-13 02:10:30 -0800</bug_when>
    <thetext>Created attachment 173851
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765644</commentid>
    <comment_count>2</comment_count>
      <attachid>173851</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-11-13 08:37:04 -0800</bug_when>
    <thetext>Comment on attachment 173851
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765735</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-13 10:06:24 -0800</bug_when>
    <thetext>Are you sure this isn&apos;t a regression on v8-earley or v8-boyer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765739</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-13 10:08:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Are you sure this isn&apos;t a regression on v8-earley or v8-boyer?

My measurements say that it&apos;s not. But I will do another run, just to be sure!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765776</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-13 10:33:16 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Are you sure this isn&apos;t a regression on v8-earley or v8-boyer?
&gt; 
&gt; My measurements say that it&apos;s not. But I will do another run, just to be sure!

Here are more numbers, showing that it has no effect:


Benchmark report for V8Spider and Octane on wartooth (MacBookPro8,2).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r134168)
&quot;DestroyFunction&quot; at /Volumes/Data/pizlo/quartary/OpenSource/WebKitBuild/Release/jsc (r134168)

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc()
between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the
jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution
times with 95% confidence intervals in milliseconds.

                           TipOfTree              DestroyFunction                                  
V8Spider:
   earley-boyer         65.7398+-0.6453     ?     66.2897+-0.8766        ?

   &lt;arithmetic&gt;         65.7398+-0.6453     ?     66.2897+-0.8766        ? might be 1.0084x slower
   &lt;geometric&gt; *        65.7398+-0.6453     ?     66.2897+-0.8766        ? might be 1.0084x slower
   &lt;harmonic&gt;           65.7398+-0.6453     ?     66.2897+-0.8766        ? might be 1.0084x slower

                           TipOfTree              DestroyFunction                                  
Octane and V8v7:
   boyer               10.05091+-0.11116          9.92526+-0.08145         might be 1.0127x faster

V8v7:
   &lt;arithmetic&gt;        10.05091+-0.11116          9.92526+-0.08145         might be 1.0127x faster
   &lt;geometric&gt; *       10.05091+-0.11116          9.92526+-0.08145         might be 1.0127x faster
   &lt;harmonic&gt;          10.05091+-0.11116          9.92526+-0.08145         might be 1.0127x faster

Octane including V8v7:
   &lt;arithmetic&gt;        10.05091+-0.11116          9.92526+-0.08145         might be 1.0127x faster
   &lt;geometric&gt; *       10.05091+-0.11116          9.92526+-0.08145         might be 1.0127x faster
   &lt;harmonic&gt;          10.05091+-0.11116          9.92526+-0.08145         might be 1.0127x faster

                           TipOfTree              DestroyFunction                                  
All benchmarks:
   &lt;arithmetic&gt;         37.8954+-0.3084     ?     38.1075+-0.4322        ? might be 1.0056x slower
   &lt;geometric&gt;          25.7029+-0.1536           25.6483+-0.1803          might be 1.0021x faster
   &lt;harmonic&gt;           17.4347+-0.1602           17.2642+-0.1207          might be 1.0099x faster

                           TipOfTree              DestroyFunction                                  
Geomean of preferred means:
   &lt;scaled-result&gt;      81.2796+-0.4859           81.1071+-0.5701          might be 1.0021x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765895</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-13 11:59:36 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/134460</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765931</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-13 12:28:52 -0800</bug_when>
    <thetext>&gt; Here are more numbers, showing that it has no effect:

Nice!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173851</attachid>
            <date>2012-11-13 02:10:30 -0800</date>
            <delta_ts>2012-11-13 08:37:04 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>destroyfunction.patch</filename>
            <type>text/plain</type>
            <size>4768</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0Mzg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDEyLTExLTEzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SlNGdW5jdGlvbiBhbmQgaXRzIGRlc2NlbmRhbnRzIHNob3VsZCBiZSBkZXN0cnVjdGlibGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjA2MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgd2lsbCBt
YWtlIGl0IGVhc3kgdG8gcGxhY2UgYW4gSW5saW5lV2F0Y2hwb2ludFNldCBpbnNpZGUgSlNGdW5j
dGlvbi4gSW4gdGhlCisgICAgICAgIGZ1dHVyZSwgd2UgY291bGQgbWFrZSBKU0Z1bmN0aW9uIG5v
bi1kZXN0cnVjdGlibGUgYWdhaW4gYnkgbWFraW5nIGEgdmVyc2lvbiBvZgorICAgICAgICBXYXRj
aHBvaW50U2V0IHRoYXQgaXMgZW50aXJlbHkgR0MnZCwgYnV0IHRoaXMgc2VlbXMgbGlrZSBvdmVy
a2lsbCBmb3Igbm93LgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBwZXJmb3JtYW5jZS1uZXV0
cmFsLgorCisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0JvdW5kRnVuY3Rpb246OmRlc3Ryb3kpOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oOgorICAgICAgICAoSlNCb3VuZEZ1bmN0aW9uKToK
KyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDKToKKyAgICAg
ICAgKEpTQzo6SlNGdW5jdGlvbjo6ZGVzdHJveSk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0
aW9uLmg6CisgICAgICAgIChKU0Z1bmN0aW9uKToKKwogMjAxMi0xMS0xMyAgUGV0ZXIgR2FsICA8
Z2FscGV0ZXJAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIEZpeCB0aGUgQVJNIHRyYWRpdGlv
bmFsIGJ1aWxkIGFmdGVyIHIxMzQzMzIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAkocmV2aXNpb24gMTM0MTY4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODgsNiArODgsMTEgQEAgSlNCb3VuZEZ1bmN0aW9uKiBKU0JvdW5kRnVuY3Rpb246
OmNyZWF0ZQogICAgIHJldHVybiBmdW5jdGlvbjsKIH0KIAordm9pZCBKU0JvdW5kRnVuY3Rpb246
OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQoreworICAgIHN0YXRpY19jYXN0PEpTQm91bmRGdW5jdGlv
bio+KGNlbGwpLT5KU0JvdW5kRnVuY3Rpb246On5KU0JvdW5kRnVuY3Rpb24oKTsKK30KKwogYm9v
bCBKU0JvdW5kRnVuY3Rpb246OmN1c3RvbUhhc0luc3RhbmNlKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICByZXR1cm4ganNDYXN0PEpTQm91
bmRGdW5jdGlvbio+KG9iamVjdCktPm1fdGFyZ2V0RnVuY3Rpb24tPmhhc0luc3RhbmNlKGV4ZWMs
IHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5j
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91
bmRGdW5jdGlvbi5oCShyZXZpc2lvbiAxMzQxNjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBA
QCBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Z1bmN0aW9uIEJhc2U7CiAKICAgICBzdGF0aWMgSlNC
b3VuZEZ1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU09iamVj
dCogdGFyZ2V0RnVuY3Rpb24sIEpTVmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJncywg
aW50LCBjb25zdCBTdHJpbmcmKTsKKyAgICAKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2Vs
bCopOwogCiAgICAgc3RhdGljIGJvb2wgY3VzdG9tSGFzSW5zdGFuY2UoSlNPYmplY3QqLCBFeGVj
U3RhdGUqLCBKU1ZhbHVlKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEzNDE2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCw2
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEhvc3RGdW4KICAgICByZXR1cm4g
dGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEFDb25zdHJ1Y3RvckVycm9yKGV4ZWMsIGV4ZWMt
PmNhbGxlZSgpKSk7CiB9CiAKLUFTU0VSVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKEpTRnVuY3Rp
b24pOwotCiBjb25zdCBDbGFzc0luZm8gSlNGdW5jdGlvbjo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRnVuY3Rpb24pIH07
CiAKIGJvb2wgSlNGdW5jdGlvbjo6aXNIb3N0RnVuY3Rpb25Ob25JbmxpbmUoKSBjb25zdApAQCAt
NzYsNiArNzQsMTEgQEAgSlNGdW5jdGlvbiogSlNGdW5jdGlvbjo6Y3JlYXRlKEV4ZWNTdGF0ZQog
ICAgIHJldHVybiBmdW5jdGlvbjsKIH0KIAordm9pZCBKU0Z1bmN0aW9uOjpkZXN0cm95KEpTQ2Vs
bCogY2VsbCkKK3sKKyAgICBzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2VsbCktPkpTRnVuY3Rp
b246On5KU0Z1bmN0aW9uKCk7Cit9CisKIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICA6IEJhc2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2V4
ZWN1dGFibGUoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uaAkocmV2aXNpb24gMTM0MTY4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjZGVmaW5lIEpT
RnVuY3Rpb25faAogCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgorI2luY2x1ZGUgIkpT
RGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTY29wZS5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKQEAgLTQ2LDE0ICs0NywxNCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIEpTX0VYUE9S
VF9QUklWQVRFIFN0cmluZyBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUoQ2FsbEZyYW1lKiwgSlNP
YmplY3QqKTsKICAgICAKLSAgICBjbGFzcyBKU0Z1bmN0aW9uIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgeworICAgIGNsYXNzIEpTRnVuY3Rpb24gOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmpl
Y3QgewogICAgICAgICBmcmllbmQgY2xhc3MgSklUOwogICAgICAgICBmcmllbmQgY2xhc3MgREZH
OjpTcGVjdWxhdGl2ZUpJVDsKICAgICAgICAgZnJpZW5kIGNsYXNzIERGRzo6SklUQ29tcGlsZXI7
CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKU0dsb2JhbERhdGE7CiAKICAgICBwdWJsaWM6Ci0gICAg
ICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOworICAgICAgICB0eXBlZGVmIEpTRGVz
dHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CiAKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIGludCBsZW5n
dGgsIGNvbnN0IFN0cmluZyYgbmFtZSwgTmF0aXZlRnVuY3Rpb24sIEludHJpbnNpYyA9IE5vSW50
cmluc2ljLCBOYXRpdmVGdW5jdGlvbiBuYXRpdmVDb25zdHJ1Y3RvciA9IGNhbGxIb3N0RnVuY3Rp
b25Bc0NvbnN0cnVjdG9yKTsKIApAQCAtNjYsNiArNjcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICAgICAgfQogICAgICAgICAKKyAgICAgICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKyAgICAgICAgCiAgICAgICAgIEpTX0VYUE9S
VF9QUklWQVRFIFN0cmluZyBuYW1lKEV4ZWNTdGF0ZSopOwogICAgICAgICBKU19FWFBPUlRfUFJJ
VkFURSBTdHJpbmcgZGlzcGxheU5hbWUoRXhlY1N0YXRlKik7CiAgICAgICAgIGNvbnN0IFN0cmlu
ZyBjYWxjdWxhdGVkRGlzcGxheU5hbWUoRXhlY1N0YXRlKik7Cg==
</data>
<flag name="review"
          id="188697"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>