computed-err-to-prop-key.js (1462B)
1 // This file was procedurally generated from the following sources: 2 // - src/accessor-names/computed-err-to-prop-key.case 3 // - src/accessor-names/error/cls-expr-inst.template 4 /*--- 5 description: Abrupt completion when coercing to property key value (Class expression, instance method) 6 esid: sec-runtime-semantics-classdefinitionevaluation 7 features: [class] 8 flags: [generated] 9 info: | 10 [...] 11 21. For each ClassElement m in order from methods 12 a. If IsStatic of m is false, then 13 i. Let status be the result of performing PropertyDefinitionEvaluation 14 for m with arguments proto and false. 15 16 17 12.2.6.7 Runtime Semantics: Evaluation 18 19 [...] 20 21 ComputedPropertyName : [ AssignmentExpression ] 22 23 1. Let exprValue be the result of evaluating AssignmentExpression. 24 2. Let propName be ? GetValue(exprValue). 25 3. Return ? ToPropertyKey(propName). 26 27 7.1.14 ToPropertyKey 28 29 1. Let key be ? ToPrimitive(argument, hint String). 30 31 7.1.1 ToPrimitive 32 33 [...] 34 7. Return ? OrdinaryToPrimitive(input, hint). 35 36 7.1.1.1 OrdinaryToPrimitive 37 38 5. For each name in methodNames in List order, do 39 [...] 40 6. Throw a TypeError exception. 41 ---*/ 42 var badKey = Object.create(null); 43 44 45 assert.throws(TypeError, function() { 46 0, class { 47 get [badKey]() {} 48 }; 49 }, '`get` accessor'); 50 51 assert.throws(TypeError, function() { 52 0, class { 53 set [badKey](_) {} 54 }; 55 }, '`set` accessor'); 56 57 reportCompare(0, 0);