<?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>146967</bug_id>
          
          <creation_ts>2015-07-15 10:18:29 -0700</creation_ts>
          <short_desc>jsc-tailcall: Only non-constructors functions are candidate for tail calls</short_desc>
          <delta_ts>2015-09-14 10:57:04 -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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>146484</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Basile Clement">basile_clement</reporter>
          <assigned_to name="Basile Clement">basile_clement</assigned_to>
          <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1109646</commentid>
    <comment_count>0</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-15 10:18:29 -0700</bug_when>
    <thetext>We were emitting tail calls at the Program / Script level (which is weird but probably inconsequential) and in ES6 constructors (which is completely wrong and semantics-breaking). Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109647</commentid>
    <comment_count>1</comment_count>
      <attachid>256845</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-15 10:29:51 -0700</bug_when>
    <thetext>Created attachment 256845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109648</commentid>
    <comment_count>2</comment_count>
      <attachid>256845</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-07-15 10:37:18 -0700</bug_when>
    <thetext>Comment on attachment 256845
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109650</commentid>
    <comment_count>3</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-15 10:43:41 -0700</bug_when>
    <thetext>Committed r186848 &lt;http://trac.webkit.org/changeset/186848&gt; on branch jsc-tailcall.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125635</commentid>
    <comment_count>4</comment_count>
      <attachid>256845</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-14 10:57:04 -0700</bug_when>
    <thetext>Comment on attachment 256845
Patch

Cleared review? from attachment 256845 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256845</attachid>
            <date>2015-07-15 10:29:51 -0700</date>
            <delta_ts>2015-09-14 10:57:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146967-20150715102843.patch</filename>
            <type>text/plain</type>
            <size>3341</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2ODIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NmRhYzUyYmU0ZWFhZDBkOTJkMDJkNDM2ZGMwNTMxNzczYzA2MmM5Li4yOTJmMDgwZjUxZTRhZDVl
ZWFlNjE2NzFmOThmNWNkMTI4MTA4MjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNS0wNy0xNSAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CisKKyAgICAgICAganNjLXRhaWxjYWxsOiBPbmx5IG5vbi1jb25zdHJ1Y3RvcnMg
ZnVuY3Rpb25zIGFyZSBjYW5kaWRhdGUgZm9yIHRhaWwgY2FsbHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Njk2NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHksIHdlIHdlcmUgZW1pdHRp
bmcgdGFpbCBjYWxscyBpbiBhbnkgU2NvcGVOb2RlLiBUaGlzIGlzCisgICAgICAgIHdyb25nOiB3
ZSBzaG91bGQgb25seSBiZSBlbWl0dGluZyB0YWlsIGNhbGxzIGluIEZ1bmN0aW9uTm9kZXMgdGhh
dCBhcmUKKyAgICAgICAgbm90IEVTNiBjb25zdHJ1Y3RvcnMuCisKKyAgICAgICAgKiBieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjplbWl0U3Rh
dGVtZW50c0J5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Ob2RlOjplbWl0Qnl0ZWNv
ZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorCiAyMDE1LTA3LTE0ICBCYXNpbGUgQ2xl
bWVudCAgPGJhc2lsZV9jbGVtZW50QGFwcGxlLmNvbT4KIAogICAgICAgICBbRVM2XSBSZWNvZ25p
emUgY2FsbHMgaW4gdGFpbCBwb3NpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDZkMzMwZTc2MzVkN2ZlMzQ2OWMz
YmUyMzZjYmE0YzE1MzhhZjQ0YmUuLjNkNDYwYWU0NGU1OGExNzU1M2YxNGNjYzFmM2Y1ZTRiMTg5
M2M1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAKQEAgLTI5ODAsMTEgKzI5ODAsMTEgQEAgdm9pZCBUcnlOb2RlOjplbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0LCBU
YWlsQ2EKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNjb3BlTm9kZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgdm9pZCBTY29wZU5vZGU6OmVtaXRT
dGF0ZW1lbnRzQnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCogZHN0KQoraW5saW5lIHZvaWQgU2NvcGVOb2RlOjplbWl0U3RhdGVtZW50c0J5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCwgVGFpbENhbGxNb2Rl
IHRhaWxDYWxsTW9kZSkKIHsKICAgICBpZiAoIW1fc3RhdGVtZW50cykKICAgICAgICAgcmV0dXJu
OwotICAgIG1fc3RhdGVtZW50cy0+ZW1pdEJ5dGVjb2RlKGdlbmVyYXRvciwgZHN0LCBpc1N0cmlj
dE1vZGUoKSA/IENhbkhhdmVUYWlsQ2FsbHMgOiBOb1RhaWxDYWxscyk7CisgICAgbV9zdGF0ZW1l
bnRzLT5lbWl0Qnl0ZWNvZGUoZ2VuZXJhdG9yLCBkc3QsIHRhaWxDYWxsTW9kZSk7CiB9CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9ncmFtTm9kZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpAQCAtMzAzOCw3ICszMDM4LDEwIEBAIHZvaWQgRnVuY3Rpb25Ob2Rl
OjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCos
IFRhaWxDCiAKICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhzdGFydFN0YXJ0
T2Zmc2V0KCkpOwogICAgIGdlbmVyYXRvci5lbWl0RGVidWdIb29rKERpZEVudGVyQ2FsbEZyYW1l
LCBzdGFydExpbmUoKSwgc3RhcnRTdGFydE9mZnNldCgpLCBzdGFydExpbmVTdGFydE9mZnNldCgp
KTsKLSAgICBlbWl0U3RhdGVtZW50c0J5dGVjb2RlKGdlbmVyYXRvciwgZ2VuZXJhdG9yLmlnbm9y
ZWRSZXN1bHQoKSk7CisgICAgaWYgKGlzU3RyaWN0TW9kZSgpICYmIGdlbmVyYXRvci5jb25zdHJ1
Y3RvcktpbmQoKSA9PSBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUpCisgICAgICAgIGVtaXRTdGF0ZW1l
bnRzQnl0ZWNvZGUoZ2VuZXJhdG9yLCBnZW5lcmF0b3IuaWdub3JlZFJlc3VsdCgpLCBDYW5IYXZl
VGFpbENhbGxzKTsKKyAgICBlbHNlCisgICAgICAgIGVtaXRTdGF0ZW1lbnRzQnl0ZWNvZGUoZ2Vu
ZXJhdG9yLCBnZW5lcmF0b3IuaWdub3JlZFJlc3VsdCgpKTsKIAogICAgIFN0YXRlbWVudE5vZGUq
IHNpbmdsZVN0YXRlbWVudCA9IHRoaXMtPnNpbmdsZVN0YXRlbWVudCgpOwogICAgIFJldHVybk5v
ZGUqIHJldHVybk5vZGUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4
IDdmNDg0ZTNjZTJlYmVhODIzZDZkNmQ2ZGY2NWU3OGQ0OGVmZjE5MGQuLjY1OTVmZWU3OGY0Y2M0
MTA0MzkyNmNiNzgyZWExODIxMzg1OTQxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgKQEAgLTE1ODIsNyArMTU4Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFN0
YXRlbWVudE5vZGUqIHNpbmdsZVN0YXRlbWVudCgpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgZW1p
dFN0YXRlbWVudHNCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqIGRlc3Rp
bmF0aW9uKTsKKyAgICAgICAgdm9pZCBlbWl0U3RhdGVtZW50c0J5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogZGVzdGluYXRpb24sIFRhaWxDYWxsTW9kZSA9IE5vVGFpbENh
bGxzKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0Q2xvc2VkVmFyaWFibGVzKFZlY3RvcjxS
ZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+PiYmKSB7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>