// Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-runtime-semantics-classdefinitionevaluation es6id: 14.5.14 description: > AssignmentExpression may contain `in` keyword regardless of outer context info: | [...] 21. For each ClassElement m in order from methods a. If IsStatic of m is false, then i. Let status be the result of performing PropertyDefinitionEvaluation for m with arguments proto and false. ComputedPropertyName : [ AssignmentExpression ] 1. Let exprValue be the result of evaluating AssignmentExpression. 2. Let propName be ? GetValue(exprValue). 3. Return ? ToPropertyKey(propName). ---*/ var empty = Object.create(null); var C, value; for (C = class { get ['x' in empty]() { return 'via get'; } }; ; ) { value = C.prototype.false; break; } assert.sameValue(value, 'via get'); for (C = class { set ['x' in empty](param) { value = param; } }; ; ) { C.prototype.false = 'via set'; break; } assert.sameValue(value, 'via set'); reportCompare(0, 0);