diff --git a/src/accessor-names/default/cls-private-decl-inst.template b/src/accessor-names/default/cls-private-decl-inst.template index ba8a7c25eaaa93d89efbe3b72408e9b9a8eddcef..7aaa72eca3af7b4c2db1c15b20fcfc8f2d7682d6 100644 --- a/src/accessor-names/default/cls-private-decl-inst.template +++ b/src/accessor-names/default/cls-private-decl-inst.template @@ -1,26 +1,45 @@ -// Copyright (C) 2017 Mike Pennisi. All rights reserved. +// Copyright (C) 2018 Katie Broida. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/accessor-name-inst- -name: Class declaration, instance method -esid: sec-runtime-semantics-classdefinitionevaluation -es6id: 14.5.14 +path: language/statements/class/private-accessor-name-inst- +name: Class declaration, private instance method +esid: #prod-MethodDefinition info: | [...] - 21. For each ClassElement m in order from methods - a. If IsStatic of m is false, then - i. Let status be the result of performing PropertyDefinitionEvaluation - for m with arguments proto and false. + MethodDefinition[Yield, Await]: + PropertyNameClassElementName [?Yield, ?Await]( + UniqueFormalParameters [~Yield, ~Await] ) { + FunctionBody [~Yield, ~Await] } + AsyncMethod[?Yield, ?Await] + get PropertyName ClassElementName [?Yield, ?Await] (){ + FunctionBody [~Yield, ~Await] } + set PropertyNameClassElementName [?Yield, ?Await] ( + PropertySetParameterList ) { FunctionBody [~Yield, ~Await] } + AsyncMethod [Yield, Await]: + async [no LineTerminator here] PropertyName + ClassElementName[?Yield, ?Await]( + UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody } + ---*/ var stringSet; class C { - get /*{ declareWith }*/() { return 'get string'; } - set /*{ declareWith }*/(param) { stringSet = param; } -} + get #/*{ declareWith }*/() { return 'get string'; } + set #/*{ declareWith }*/(param) { stringSet = param; } + + getPrivateReference() { + return this.#/*{ referenceWith }*/; + } + + setPrivateReference(value) { + this.#/*{ referenceWith }*/ = value; + } +}; + +var inst = C(); -assert.sameValue(C.prototype[/*{ referenceWith }*/], 'get string'); +assert.sameValue(inst.getPrivateReference(), 'get string'); -C.prototype[/*{ referenceWith }*/] = 'set string'; +inst.setPrivateReference('set string'); assert.sameValue(stringSet, 'set string'); diff --git a/src/accessor-names/default/cls-private-decl-static.template b/src/accessor-names/default/cls-private-decl-static.template index bb7f71b3aed115699a56597505f6286d0d6868f1..1bc8fc926c64b736ea1c32c5638671a39f979639 100644 --- a/src/accessor-names/default/cls-private-decl-static.template +++ b/src/accessor-names/default/cls-private-decl-static.template @@ -37,10 +37,8 @@ class C { } } -var inst = C(); +assert.sameValue(C.getPrivateReference(), 'get string'); -assert.sameValue(inst.getPrivateReference(), 'get string'); - -inst.setPrivateReference('set string'); +C.setPrivateReference('set string'); assert.sameValue(stringSet, 'set string'); diff --git a/src/accessor-names/default/cls-private-expr-inst.template b/src/accessor-names/default/cls-private-expr-inst.template index 1a14db69f12d671f80f795f30742440635413627..ba7fc55a3c5b118992213e39ae329abf11ef65c7 100644 --- a/src/accessor-names/default/cls-private-expr-inst.template +++ b/src/accessor-names/default/cls-private-expr-inst.template @@ -13,7 +13,7 @@ info: | AsyncMethod[?Yield, ?Await] get PropertyName ClassElementName [?Yield, ?Await] (){ FunctionBody [~Yield, ~Await] } - set PropertyNameClassElementName [?Yield, ?Await] ( + set PropertyNameClassElementName [?Yield, ?Await] ( PropertySetParameterList ) { FunctionBody [~Yield, ~Await] } AsyncMethod [Yield, Await]: async [no LineTerminator here] PropertyName diff --git a/src/accessor-names/default/cls-private-expr-static.template b/src/accessor-names/default/cls-private-expr-static.template index e004113c28b575dde45ce616055d2ed1942a8df6..5233cf13e83b753671dd611080b2264d4939beda 100644 --- a/src/accessor-names/default/cls-private-expr-static.template +++ b/src/accessor-names/default/cls-private-expr-static.template @@ -37,9 +37,8 @@ var C = class { } }; -var inst = C(); -assert.sameValue(inst.getPrivateReference(), 'get string'); +assert.sameValue(C.getPrivateReference(), 'get string'); -inst.setPrivateReference('set string'); +C.setPrivateReference('set string'); assert.sameValue(stringSet, 'set string');