summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/expressions/class/elements/class-name-static-initializer-anonymous.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/expressions/class/elements/class-name-static-initializer-anonymous.js')
-rw-r--r--js/src/tests/test262/language/expressions/class/elements/class-name-static-initializer-anonymous.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/expressions/class/elements/class-name-static-initializer-anonymous.js b/js/src/tests/test262/language/expressions/class/elements/class-name-static-initializer-anonymous.js
new file mode 100644
index 0000000000..33c989b567
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/class/elements/class-name-static-initializer-anonymous.js
@@ -0,0 +1,28 @@
+// Copyright 2019 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-runtime-semantics-classdefinitionevaluation
+description: >
+ The inferred class-name is present when executing static field initializers of anonymous class expressions.
+info: |
+ 14.6.13 Runtime Semantics: ClassDefinitionEvaluation
+
+ [...]
+ 17. Perform MakeClassConstructor(F).
+ 18. If className is not undefined, then
+ a. Perform SetFunctionName(F, className).
+ [...]
+
+features: [class-static-fields-public]
+---*/
+
+var className;
+
+var C = class {
+ static f = (className = this.name);
+}
+
+assert.sameValue(className, "C");
+
+reportCompare(0, 0);