From 2f458d164fb6dff1cd4d5b219eff0ce20dd97d26 Mon Sep 17 00:00:00 2001 From: Valerie R Young <valerie@bocoup.com> Date: Mon, 30 Oct 2017 00:34:05 -0400 Subject: [PATCH] class fields: added tests for privatename production # Conflicts: # src/class-fields/default/cls-decl-after-same-line-async-gen.template # src/class-fields/default/cls-decl-after-same-line-async-method.template # src/class-fields/default/cls-decl-after-same-line-gen.template # src/class-fields/default/cls-decl-after-same-line-method.template # src/class-fields/default/cls-decl-after-same-line-static-async-gen.template # src/class-fields/default/cls-decl-after-same-line-static-async-method.template # src/class-fields/default/cls-decl-after-same-line-static-gen.template # src/class-fields/default/cls-decl-after-same-line-static-method.template # src/class-fields/default/cls-decl-multiple-definitions.template # src/class-fields/default/cls-decl-multiple-stacked-definitions.template # src/class-fields/default/cls-decl-new-no-sc-line-method.template # src/class-fields/default/cls-decl-new-sc-line-generator.template # src/class-fields/default/cls-decl-new-sc-line-method.template # src/class-fields/default/cls-decl-regular-definitions.template # src/class-fields/default/cls-decl-same-line-generator.template # src/class-fields/default/cls-decl-same-line-method.template # src/class-fields/default/cls-decl-wrapped-in-sc.template # src/class-fields/default/cls-expr-after-same-line-async-gen.template # src/class-fields/default/cls-expr-after-same-line-async-method.template # src/class-fields/default/cls-expr-after-same-line-gen.template # src/class-fields/default/cls-expr-after-same-line-method.template # src/class-fields/default/cls-expr-after-same-line-static-async-gen.template # src/class-fields/default/cls-expr-after-same-line-static-async-method.template # src/class-fields/default/cls-expr-after-same-line-static-gen.template # src/class-fields/default/cls-expr-after-same-line-static-method.template # src/class-fields/default/cls-expr-multiple-definitions.template # src/class-fields/default/cls-expr-multiple-stacked-definitions.template # src/class-fields/default/cls-expr-new-no-sc-line-method.template # src/class-fields/default/cls-expr-new-sc-line-generator.template # src/class-fields/default/cls-expr-new-sc-line-method.template # src/class-fields/default/cls-expr-regular-definitions.template # src/class-fields/default/cls-expr-same-line-generator.template # src/class-fields/default/cls-expr-same-line-method.template # src/class-fields/default/cls-expr-wrapped-in-sc.template # src/class-fields/private-names.case --- src/class-fields/static-private-names.case | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/class-fields/static-private-names.case diff --git a/src/class-fields/static-private-names.case b/src/class-fields/static-private-names.case new file mode 100644 index 0000000000..464b53a9e9 --- /dev/null +++ b/src/class-fields/static-private-names.case @@ -0,0 +1,50 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +desc: literal private names +info: | + ClassElement: + ... + static FieldDefinition ; + + FieldDefinition: + ClassElementName Initializer_opt + + ClassElementName: + PrivateName + + PrivateName: + #IdentifierName +template: default +---*/ + +//- fields +static #x; static #y +//- privateinspectionfunctions + static x() { + this.#x = 42; + return this.#x; + } + static y() { + this.#y = 43; + return this.#y; + } +//- assertions + +// Test the private fields do not appear as properties before set to value +assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); +assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); +assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); + +assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); +assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); +assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); + +// Test if private fields can be sucessfully accessed and set to value +assert.sameValue(C.x(), 42, "test 7"); +assert.sameValue(C.y(), 43, "test 8"); + +// Test the private fields do not appear as properties before after set to value +assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); +assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); -- GitLab