summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/statements/class/accessor-name-static/computed-err-to-prop-key.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/statements/class/accessor-name-static/computed-err-to-prop-key.js')
-rw-r--r--js/src/tests/test262/language/statements/class/accessor-name-static/computed-err-to-prop-key.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/class/accessor-name-static/computed-err-to-prop-key.js b/js/src/tests/test262/language/statements/class/accessor-name-static/computed-err-to-prop-key.js
new file mode 100644
index 0000000000..57e250e59c
--- /dev/null
+++ b/js/src/tests/test262/language/statements/class/accessor-name-static/computed-err-to-prop-key.js
@@ -0,0 +1,59 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/computed-err-to-prop-key.case
+// - src/accessor-names/error/cls-decl-static.template
+/*---
+description: Abrupt completion when coercing to property key value (Class declaration, static method)
+esid: sec-runtime-semantics-classdefinitionevaluation
+features: [class]
+flags: [generated]
+info: |
+ [...]
+ 21. For each ClassElement m in order from methods
+ a. If IsStatic of m is false, then
+ [...]
+ b. Else,
+ a. Let status be the result of performing PropertyDefinitionEvaluation
+ for m with arguments F and false.
+
+
+ 12.2.6.7 Runtime Semantics: Evaluation
+
+ [...]
+
+ ComputedPropertyName : [ AssignmentExpression ]
+
+ 1. Let exprValue be the result of evaluating AssignmentExpression.
+ 2. Let propName be ? GetValue(exprValue).
+ 3. Return ? ToPropertyKey(propName).
+
+ 7.1.14 ToPropertyKey
+
+ 1. Let key be ? ToPrimitive(argument, hint String).
+
+ 7.1.1 ToPrimitive
+
+ [...]
+ 7. Return ? OrdinaryToPrimitive(input, hint).
+
+ 7.1.1.1 OrdinaryToPrimitive
+
+ 5. For each name in methodNames in List order, do
+ [...]
+ 6. Throw a TypeError exception.
+---*/
+var badKey = Object.create(null);
+
+
+assert.throws(TypeError, function() {
+ class C {
+ static get [badKey]() {}
+ }
+}, '`get` accessor');
+
+assert.throws(TypeError, function() {
+ class C {
+ static set [badKey](_) {}
+ }
+}, '`set` accessor');
+
+reportCompare(0, 0);