summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorValerie R Young <valerie@bocoup.com>2017-10-30 00:34:05 -0400
committerLeo Balter <leonardo.balter@gmail.com>2017-11-03 14:52:46 -0400
commit214e9969d5d1cb8c019f40d56bb877d28740e0a7 (patch)
tree70a8c5704f7e98b7dc5a3680792c5c546310461b /src
parentce203360b10186ff9497019af483ff56c17b72b4 (diff)
downloadqtdeclarative-testsuites-214e9969d5d1cb8c019f40d56bb877d28740e0a7.tar.gz
class fields: added tests for privatename production
Diffstat (limited to 'src')
-rw-r--r--src/class-fields/default/cls-decl-after-same-line-async-gen.template1
-rw-r--r--src/class-fields/default/cls-decl-after-same-line-async-method.template1
-rw-r--r--src/class-fields/default/cls-decl-after-same-line-gen.template1
-rw-r--r--src/class-fields/default/cls-decl-after-same-line-method.template1
-rw-r--r--src/class-fields/default/cls-decl-after-same-line-static-async-gen.template1
-rw-r--r--src/class-fields/default/cls-decl-after-same-line-static-async-method.template1
-rw-r--r--src/class-fields/default/cls-decl-after-same-line-static-gen.template1
-rw-r--r--src/class-fields/default/cls-decl-after-same-line-static-method.template1
-rw-r--r--src/class-fields/default/cls-decl-multiple-definitions.template1
-rw-r--r--src/class-fields/default/cls-decl-multiple-stacked-definitions.template1
-rw-r--r--src/class-fields/default/cls-decl-new-no-sc-line-method.template1
-rw-r--r--src/class-fields/default/cls-decl-new-sc-line-generator.template1
-rw-r--r--src/class-fields/default/cls-decl-new-sc-line-method.template1
-rw-r--r--src/class-fields/default/cls-decl-regular-definitions.template1
-rw-r--r--src/class-fields/default/cls-decl-same-line-generator.template1
-rw-r--r--src/class-fields/default/cls-decl-same-line-method.template1
-rw-r--r--src/class-fields/default/cls-decl-wrapped-in-sc.template1
-rw-r--r--src/class-fields/default/cls-expr-after-same-line-async-gen.template1
-rw-r--r--src/class-fields/default/cls-expr-after-same-line-async-method.template1
-rw-r--r--src/class-fields/default/cls-expr-after-same-line-gen.template1
-rw-r--r--src/class-fields/default/cls-expr-after-same-line-method.template1
-rw-r--r--src/class-fields/default/cls-expr-after-same-line-static-async-gen.template1
-rw-r--r--src/class-fields/default/cls-expr-after-same-line-static-async-method.template1
-rw-r--r--src/class-fields/default/cls-expr-after-same-line-static-gen.template1
-rw-r--r--src/class-fields/default/cls-expr-after-same-line-static-method.template1
-rw-r--r--src/class-fields/default/cls-expr-multiple-definitions.template1
-rw-r--r--src/class-fields/default/cls-expr-multiple-stacked-definitions.template1
-rw-r--r--src/class-fields/default/cls-expr-new-no-sc-line-method.template1
-rw-r--r--src/class-fields/default/cls-expr-new-sc-line-generator.template1
-rw-r--r--src/class-fields/default/cls-expr-new-sc-line-method.template1
-rw-r--r--src/class-fields/default/cls-expr-regular-definitions.template1
-rw-r--r--src/class-fields/default/cls-expr-same-line-generator.template1
-rw-r--r--src/class-fields/default/cls-expr-same-line-method.template1
-rw-r--r--src/class-fields/default/cls-expr-wrapped-in-sc.template1
-rw-r--r--src/class-fields/private-names.case50
-rw-r--r--src/class-fields/static-private-names.case50
36 files changed, 134 insertions, 0 deletions
diff --git a/src/class-fields/default/cls-decl-after-same-line-async-gen.template b/src/class-fields/default/cls-decl-after-same-line-async-gen.template
index 0e8b27edc..2b7019564 100644
--- a/src/class-fields/default/cls-decl-after-same-line-async-gen.template
+++ b/src/class-fields/default/cls-decl-after-same-line-async-gen.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
class C {
async *m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-after-same-line-async-method.template b/src/class-fields/default/cls-decl-after-same-line-async-method.template
index 531c7f835..4834b53fc 100644
--- a/src/class-fields/default/cls-decl-after-same-line-async-method.template
+++ b/src/class-fields/default/cls-decl-after-same-line-async-method.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
class C {
async m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-after-same-line-gen.template b/src/class-fields/default/cls-decl-after-same-line-gen.template
index 876e0d8c5..635294c5d 100644
--- a/src/class-fields/default/cls-decl-after-same-line-gen.template
+++ b/src/class-fields/default/cls-decl-after-same-line-gen.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
class C {
*m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-after-same-line-method.template b/src/class-fields/default/cls-decl-after-same-line-method.template
index 5e8dffcbd..3ad70efd6 100644
--- a/src/class-fields/default/cls-decl-after-same-line-method.template
+++ b/src/class-fields/default/cls-decl-after-same-line-method.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
class C {
m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-after-same-line-static-async-gen.template b/src/class-fields/default/cls-decl-after-same-line-static-async-gen.template
index 223bfd345..60176379a 100644
--- a/src/class-fields/default/cls-decl-after-same-line-static-async-gen.template
+++ b/src/class-fields/default/cls-decl-after-same-line-static-async-gen.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
class C {
static async *m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-after-same-line-static-async-method.template b/src/class-fields/default/cls-decl-after-same-line-static-async-method.template
index 70e6085c1..360df4a7f 100644
--- a/src/class-fields/default/cls-decl-after-same-line-static-async-method.template
+++ b/src/class-fields/default/cls-decl-after-same-line-static-async-method.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
class C {
static async m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-after-same-line-static-gen.template b/src/class-fields/default/cls-decl-after-same-line-static-gen.template
index d89d9975a..2a9fdff3a 100644
--- a/src/class-fields/default/cls-decl-after-same-line-static-gen.template
+++ b/src/class-fields/default/cls-decl-after-same-line-static-gen.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
class C {
static *m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-after-same-line-static-method.template b/src/class-fields/default/cls-decl-after-same-line-static-method.template
index 0f412da85..568b3c564 100644
--- a/src/class-fields/default/cls-decl-after-same-line-static-method.template
+++ b/src/class-fields/default/cls-decl-after-same-line-static-method.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
class C {
static m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-multiple-definitions.template b/src/class-fields/default/cls-decl-multiple-definitions.template
index e481f94dd..5671a0b6c 100644
--- a/src/class-fields/default/cls-decl-multiple-definitions.template
+++ b/src/class-fields/default/cls-decl-multiple-definitions.template
@@ -14,6 +14,7 @@ class C {
/*{ fields }*/
m2() { return 39 }
bar = "barbaz";
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-multiple-stacked-definitions.template b/src/class-fields/default/cls-decl-multiple-stacked-definitions.template
index 6a16f68f9..36515109e 100644
--- a/src/class-fields/default/cls-decl-multiple-stacked-definitions.template
+++ b/src/class-fields/default/cls-decl-multiple-stacked-definitions.template
@@ -12,6 +12,7 @@ class C {
/*{ fields }*/
foo = "foobar"
bar = "barbaz";
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-new-no-sc-line-method.template b/src/class-fields/default/cls-decl-new-no-sc-line-method.template
index d87e9152e..56037a513 100644
--- a/src/class-fields/default/cls-decl-new-no-sc-line-method.template
+++ b/src/class-fields/default/cls-decl-new-no-sc-line-method.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
class C {
/*{ fields }*/
m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-new-sc-line-generator.template b/src/class-fields/default/cls-decl-new-sc-line-generator.template
index 3be29af98..40098a781 100644
--- a/src/class-fields/default/cls-decl-new-sc-line-generator.template
+++ b/src/class-fields/default/cls-decl-new-sc-line-generator.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
class C {
/*{ fields }*/;
*m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-new-sc-line-method.template b/src/class-fields/default/cls-decl-new-sc-line-method.template
index 640244370..6f5635646 100644
--- a/src/class-fields/default/cls-decl-new-sc-line-method.template
+++ b/src/class-fields/default/cls-decl-new-sc-line-method.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
class C {
/*{ fields }*/;
m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-regular-definitions.template b/src/class-fields/default/cls-decl-regular-definitions.template
index 9d1ee0c28..4ccdd76f7 100644
--- a/src/class-fields/default/cls-decl-regular-definitions.template
+++ b/src/class-fields/default/cls-decl-regular-definitions.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
class C {
/*{ fields }*/
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-same-line-generator.template b/src/class-fields/default/cls-decl-same-line-generator.template
index 1c4fa07d7..182d9df50 100644
--- a/src/class-fields/default/cls-decl-same-line-generator.template
+++ b/src/class-fields/default/cls-decl-same-line-generator.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
class C {
/*{ fields }*/; *m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-same-line-method.template b/src/class-fields/default/cls-decl-same-line-method.template
index 2a825bee8..c94c864bd 100644
--- a/src/class-fields/default/cls-decl-same-line-method.template
+++ b/src/class-fields/default/cls-decl-same-line-method.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
class C {
/*{ fields }*/; m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-decl-wrapped-in-sc.template b/src/class-fields/default/cls-decl-wrapped-in-sc.template
index 5d04a5622..b76403262 100644
--- a/src/class-fields/default/cls-decl-wrapped-in-sc.template
+++ b/src/class-fields/default/cls-decl-wrapped-in-sc.template
@@ -12,6 +12,7 @@ class C {
;;;;
;;;;;;/*{ fields }*/;;;;;;;
;;;;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-after-same-line-async-gen.template b/src/class-fields/default/cls-expr-after-same-line-async-gen.template
index cb27c785c..3a1a6f463 100644
--- a/src/class-fields/default/cls-expr-after-same-line-async-gen.template
+++ b/src/class-fields/default/cls-expr-after-same-line-async-gen.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
var C = class {
async *m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-after-same-line-async-method.template b/src/class-fields/default/cls-expr-after-same-line-async-method.template
index eafc614d7..87c137ce2 100644
--- a/src/class-fields/default/cls-expr-after-same-line-async-method.template
+++ b/src/class-fields/default/cls-expr-after-same-line-async-method.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
var C = class {
async m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-after-same-line-gen.template b/src/class-fields/default/cls-expr-after-same-line-gen.template
index 07e7a485d..58aa427d3 100644
--- a/src/class-fields/default/cls-expr-after-same-line-gen.template
+++ b/src/class-fields/default/cls-expr-after-same-line-gen.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
var C = class {
*m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-after-same-line-method.template b/src/class-fields/default/cls-expr-after-same-line-method.template
index 70fca8fe2..d9e6703d6 100644
--- a/src/class-fields/default/cls-expr-after-same-line-method.template
+++ b/src/class-fields/default/cls-expr-after-same-line-method.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
var C = class {
m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-after-same-line-static-async-gen.template b/src/class-fields/default/cls-expr-after-same-line-static-async-gen.template
index 1f34b5cf8..f19896d7a 100644
--- a/src/class-fields/default/cls-expr-after-same-line-static-async-gen.template
+++ b/src/class-fields/default/cls-expr-after-same-line-static-async-gen.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
var C = class {
static async *m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-after-same-line-static-async-method.template b/src/class-fields/default/cls-expr-after-same-line-static-async-method.template
index e4a9657d7..0b0ae19ec 100644
--- a/src/class-fields/default/cls-expr-after-same-line-static-async-method.template
+++ b/src/class-fields/default/cls-expr-after-same-line-static-async-method.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
var C = class {
static async m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-after-same-line-static-gen.template b/src/class-fields/default/cls-expr-after-same-line-static-gen.template
index c64467527..1eff6019a 100644
--- a/src/class-fields/default/cls-expr-after-same-line-static-gen.template
+++ b/src/class-fields/default/cls-expr-after-same-line-static-gen.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
var C = class {
static *m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-after-same-line-static-method.template b/src/class-fields/default/cls-expr-after-same-line-static-method.template
index 56f677a9b..162137947 100644
--- a/src/class-fields/default/cls-expr-after-same-line-static-method.template
+++ b/src/class-fields/default/cls-expr-after-same-line-static-method.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
var C = class {
static m() { return 42; } /*{ fields }*/;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-multiple-definitions.template b/src/class-fields/default/cls-expr-multiple-definitions.template
index 543b9f2b0..8a786bf9e 100644
--- a/src/class-fields/default/cls-expr-multiple-definitions.template
+++ b/src/class-fields/default/cls-expr-multiple-definitions.template
@@ -14,6 +14,7 @@ var C = class {
/*{ fields }*/
m2() { return 39 }
bar = "barbaz";
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-multiple-stacked-definitions.template b/src/class-fields/default/cls-expr-multiple-stacked-definitions.template
index 6bf9a746f..a1c53aee1 100644
--- a/src/class-fields/default/cls-expr-multiple-stacked-definitions.template
+++ b/src/class-fields/default/cls-expr-multiple-stacked-definitions.template
@@ -12,6 +12,7 @@ var C = class {
/*{ fields }*/
foo = "foobar"
bar = "barbaz";
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-new-no-sc-line-method.template b/src/class-fields/default/cls-expr-new-no-sc-line-method.template
index 88045824d..50e6762ad 100644
--- a/src/class-fields/default/cls-expr-new-no-sc-line-method.template
+++ b/src/class-fields/default/cls-expr-new-no-sc-line-method.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
var C = class {
/*{ fields }*/
m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-new-sc-line-generator.template b/src/class-fields/default/cls-expr-new-sc-line-generator.template
index 022c5b8ff..143317368 100644
--- a/src/class-fields/default/cls-expr-new-sc-line-generator.template
+++ b/src/class-fields/default/cls-expr-new-sc-line-generator.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
var C = class {
/*{ fields }*/;
*m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-new-sc-line-method.template b/src/class-fields/default/cls-expr-new-sc-line-method.template
index 04cc5d7f1..3e7291ad6 100644
--- a/src/class-fields/default/cls-expr-new-sc-line-method.template
+++ b/src/class-fields/default/cls-expr-new-sc-line-method.template
@@ -11,6 +11,7 @@ esid: prod-FieldDefinition
var C = class {
/*{ fields }*/;
m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-regular-definitions.template b/src/class-fields/default/cls-expr-regular-definitions.template
index 65cea698c..630c04f41 100644
--- a/src/class-fields/default/cls-expr-regular-definitions.template
+++ b/src/class-fields/default/cls-expr-regular-definitions.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
var C = class {
/*{ fields }*/
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-same-line-generator.template b/src/class-fields/default/cls-expr-same-line-generator.template
index b85431604..c6ee64851 100644
--- a/src/class-fields/default/cls-expr-same-line-generator.template
+++ b/src/class-fields/default/cls-expr-same-line-generator.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
var C = class {
/*{ fields }*/; *m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-same-line-method.template b/src/class-fields/default/cls-expr-same-line-method.template
index 2b06fe732..4c9602caf 100644
--- a/src/class-fields/default/cls-expr-same-line-method.template
+++ b/src/class-fields/default/cls-expr-same-line-method.template
@@ -10,6 +10,7 @@ esid: prod-FieldDefinition
var C = class {
/*{ fields }*/; m() { return 42; }
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/default/cls-expr-wrapped-in-sc.template b/src/class-fields/default/cls-expr-wrapped-in-sc.template
index 6646d1b4c..4f7397057 100644
--- a/src/class-fields/default/cls-expr-wrapped-in-sc.template
+++ b/src/class-fields/default/cls-expr-wrapped-in-sc.template
@@ -12,6 +12,7 @@ var C = class {
;;;;
;;;;;;/*{ fields }*/;;;;;;;
;;;;
+/*{ privateinspectionfunctions }*/
}
var c = new C();
diff --git a/src/class-fields/private-names.case b/src/class-fields/private-names.case
new file mode 100644
index 000000000..6987bcd7b
--- /dev/null
+++ b/src/class-fields/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: static literal private names
+info: |
+ ClassElement:
+ ...
+ FieldDefinition ;
+
+ FieldDefinition:
+ ClassElementName Initializer_opt
+
+ ClassElementName:
+ PrivateName
+
+ PrivateName:
+ #IdentifierName
+template: default
+---*/
+
+//- fields
+#x; #y
+//- privateinspectionfunctions
+ x() {
+ this.#x = 42;
+ return this.#x;
+ }
+ 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");
diff --git a/src/class-fields/static-private-names.case b/src/class-fields/static-private-names.case
new file mode 100644
index 000000000..464b53a9e
--- /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");