From f11568dbde862fda1404cfc49aae20cd1cc2a796 Mon Sep 17 00:00:00 2001
From: Katie Broida <kbroida@gmail.com>
Date: Tue, 14 Aug 2018 15:44:09 -0400
Subject: [PATCH] Refactor templates

---
 .../default/cls-private-decl-inst.template    | 47 +++++++++++++------
 .../default/cls-private-decl-static.template  |  6 +--
 .../default/cls-private-expr-inst.template    |  2 +-
 .../default/cls-private-expr-static.template  |  5 +-
 4 files changed, 38 insertions(+), 22 deletions(-)

diff --git a/src/accessor-names/default/cls-private-decl-inst.template b/src/accessor-names/default/cls-private-decl-inst.template
index ba8a7c25ea..7aaa72eca3 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 bb7f71b3ae..1bc8fc926c 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 1a14db69f1..ba7fc55a3c 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 e004113c28..5233cf13e8 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');
-- 
GitLab