<?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>150115</bug_id>
          
          <creation_ts>2015-10-13 23:03:34 -0700</creation_ts>
          <short_desc>[ES6] Class method should not declare any variables to upper scope.</short_desc>
          <delta_ts>2015-10-14 22:31:23 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1133048</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-13 23:03:34 -0700</bug_when>
    <thetext>In the following case,

class A {
    method() {
    }
}

the current implementation attempt to declare the variable `method` to the lexical scope for the class `A`&apos;s body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133049</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-13 23:04:02 -0700</bug_when>
    <thetext>Copied from https://bugs.webkit.org/show_bug.cgi?id=150089

Current Class expression implementation declares method names as a variable.
For example,

class A {
    method() {
    }
}

In the above case, we declare a variable `method` in the current implementation.
I guess this is the old draft behavior because I can&apos;t see any step in the current spec.

http://www.ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-definemethod

As a result, if we evaluate the following,

class A {
    1() {
    }
}

We attempt to declare the variable `1`. We now wrap the class body with the class lexical scope. However, the lexical scope does not allow us to declare incorrect Identifier variable (like `1`). So assertion is fired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133052</commentid>
    <comment_count>2</comment_count>
      <attachid>263060</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-13 23:10:32 -0700</bug_when>
    <thetext>Created attachment 263060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133137</commentid>
    <comment_count>3</comment_count>
      <attachid>263060</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-14 09:37:30 -0700</bug_when>
    <thetext>Comment on attachment 263060
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133394</commentid>
    <comment_count>4</comment_count>
      <attachid>263060</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-14 22:31:20 -0700</bug_when>
    <thetext>Comment on attachment 263060
Patch

Clearing flags on attachment: 263060

Committed r191086: &lt;http://trac.webkit.org/changeset/191086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133395</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-14 22:31:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263060</attachid>
            <date>2015-10-13 23:10:32 -0700</date>
            <delta_ts>2015-10-14 22:31:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150115-20151014150953.patch</filename>
            <type>text/plain</type>
            <size>3832</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NzFlNTlhM2Y4NThhZWFiODdmYzcxNThlNzY0N2Y1OWQxZTA5YzA0Li45YjRhMjE3NjE1MzViNTdi
Njk1MGU4YjM0ZDg1ZGI1YTVjMTBmYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyOCBAQAogMjAxNS0xMC0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbRVM2XSBDbGFzcyBtZXRob2Qgc2hvdWxkIG5vdCBkZWNsYXJlIGFu
eSB2YXJpYWJsZXMgdG8gdXBwZXIgc2NvcGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAxMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiwgY2xhc3Mg
bWV0aG9kcyBhdHRlbXB0IHRvIGRlY2xhcmUgdmFyaWFibGVzIHRvIGFuIHVwcGVyIHNjb3BlIHdp
dGggdGhlaXIgbWV0aG9kIG5hbWVzLgorICAgICAgICBCdXQgdGhpcyBpcyBub3Qgc3BlY2lmaWVk
IGJlaGF2aW9yIGluIHRoZSBFUzYgc3BlYy4KKworICAgICAgICBBbmQgYXMgYSByZXN1bHQsIHBy
ZXZpb3VzbHksIHdlIGF0dGVtcHRlZCB0byBkZWNsYXJlIHZhcmlhYmxlcyB3aXRoIGludmFsaWQg
aWRlbnRpZmllcnMuCisgICAgICAgIEZvciBleGFtcGxlLCBgY2xhc3MgQSB7IDEoKSB7IH0gfWAg
YXR0ZW1wdCB0byBkZWNsYXJlIGEgdmFyaWFibGUgd2l0aCBuYW1lIGAxYC4KKyAgICAgICAgVGhp
cyAoZGVjbGFyaW5nIHZhcmlhYmxlcyB3aXRoIGluY29ycmVjdCBuYW1lcykgaXMgbm90IGFsbG93
ZWQgaW4gdGhlIGxleGljYWwgZW52aXJvbm1lbnQuCisgICAgICAgIEFuZCBpdCBmaXJlcyBhc3Nl
cnRpb25zIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAwODku
CisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlQ2xhc3MpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9j
bGFzcy1tZXRob2QtZG9lcy1ub3QtZGVjbGFyZS12YXJpYWJsZS10by11cHBlci1zY29wZS5qczog
QWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChBLnByb3RvdHlwZS5tZXRob2Qp
OgorICAgICAgICAoQS5zdGF0aWNNZXRob2QpOgorICAgICAgICAoQSk6CisKKzIwMTUtMTAtMTMg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0VTNl0g
Q2xhc3MgZXhwcmVzc2lvbiBzaG91bGQgaGF2ZSBsZXhpY2FsIGVudmlyb25tZW50IHRoYXQgaGFz
IGl0c2VsZiBhcyBhbiBpbXV0YWJsZSBiaW5kaW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAwODkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXIuY3BwCmluZGV4IGY2MzgwNWY1ZTc0NWI4ZDU3MGQ3ZWQxZjI0MzVlMWVjNWUzZDA4
ZDMuLmQ4NGRiMTc2NTNmMjI2MTA1NzkzYmM5ZGRhYzNlMDQwMmFiZmE3YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTIwMTcsNyArMjAxNyw2IEBAIHN0YXRp
YyBjb25zdCBjaGFyKiBzdHJpbmdGb3JGdW5jdGlvbk1vZGUoU291cmNlUGFyc2VNb2RlIG1vZGUp
CiAgICAgICAgICAgICBQYXJzZXJGdW5jdGlvbkluZm88VHJlZUJ1aWxkZXI+IG1ldGhvZEluZm87
CiAgICAgICAgICAgICBib29sIGlzQ29uc3RydWN0b3IgPSAhaXNTdGF0aWNNZXRob2QgJiYgKmlk
ZW50ID09IHByb3BlcnR5TmFtZXMuY29uc3RydWN0b3I7CiAgICAgICAgICAgICBmYWlsSWZGYWxz
ZSgocGFyc2VGdW5jdGlvbkluZm8oY29udGV4dCwgRnVuY3Rpb25Ob1JlcXVpcmVtZW50cywgU291
cmNlUGFyc2VNb2RlOjpNZXRob2RNb2RlLCBmYWxzZSwgaXNDb25zdHJ1Y3RvciA/IGNvbnN0cnVj
dG9yS2luZCA6IENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgU3VwZXJCaW5kaW5nOjpOZWVkZWQsIG1l
dGhvZFN0YXJ0LCBtZXRob2RJbmZvLCBTdGFuZGFyZEZ1bmN0aW9uUGFyc2VUeXBlKSksICJDYW5u
b3QgcGFyc2UgdGhpcyBtZXRob2QiKTsKLSAgICAgICAgICAgIGZhaWxJZlRydWUoIWNvbXB1dGVk
UHJvcGVydHlOYW1lICYmIChkZWNsYXJlVmFyaWFibGUoaWRlbnQpICYgRGVjbGFyYXRpb25SZXN1
bHQ6OkludmFsaWRTdHJpY3RNb2RlKSwgIkNhbm5vdCBkZWNsYXJlIGEgbWV0aG9kIG5hbWVkICci
LCBtZXRob2RJbmZvLm5hbWUtPmltcGwoKSwgIiciKTsKICAgICAgICAgICAgIG1ldGhvZEluZm8u
bmFtZSA9IGlzQ29uc3RydWN0b3IgPyBjbGFzc05hbWUgOiBpZGVudDsKIAogICAgICAgICAgICAg
VHJlZUV4cHJlc3Npb24gbWV0aG9kID0gY29udGV4dC5jcmVhdGVGdW5jdGlvbkV4cHIobWV0aG9k
TG9jYXRpb24sIG1ldGhvZEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9jbGFzcy1tZXRob2QtZG9lcy1ub3QtZGVjbGFyZS12YXJpYWJsZS10by11
cHBlci1zY29wZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvY2xhc3Mt
bWV0aG9kLWRvZXMtbm90LWRlY2xhcmUtdmFyaWFibGUtdG8tdXBwZXItc2NvcGUuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWZjNmExYmI5ZGRmYWM0ZmE2ZmUzOWY3ZGY1NjJiNzBkZDAxOTRhNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvY2xhc3MtbWV0aG9k
LWRvZXMtbm90LWRlY2xhcmUtdmFyaWFibGUtdG8tdXBwZXItc2NvcGUuanMKQEAgLTAsMCArMSwy
OSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyAr
IGFjdHVhbCk7Cit9CisKKy8vIFRoaXMgaXMgdGhlIG1pbmltaXplZCB0ZXN0IGNhc2UgZm9yIHRo
ZSBjcmFzaC4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAx
MTUKKyhmdW5jdGlvbiAoKSB7CisgICAgZXZhbCgiY2xhc3MgQSB7IHN0YXRpYyAxKCkgeyByZXR1
cm4gNDA1IH0gfTsiKTsKK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgY2xhc3MgQSB7Cisg
ICAgICAgIG1ldGhvZCgpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKHR5cGVvZiBzdGF0aWNNZXRo
b2QsICd1bmRlZmluZWQnKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRo
b2QoKSB7CisgICAgICAgICAgICBzaG91bGRCZSh0eXBlb2YgbWV0aG9kLCAndW5kZWZpbmVkJyk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzaG91bGRCZSh0eXBlb2YgbWV0aG9kLCAndW5kZWZp
bmVkJyk7CisgICAgc2hvdWxkQmUodHlwZW9mIHN0YXRpY01ldGhvZCwgJ3VuZGVmaW5lZCcpOwor
CisgICAgbGV0IGEgPSBuZXcgQSgpOworICAgIGEubWV0aG9kKCk7CisgICAgQS5zdGF0aWNNZXRo
b2QoKTsKK30oKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>