// Copyright (C) 2015 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- es6id: 14.3.9 description: Assignment of function `name` attribute ("set" accessor) info: | MethodDefinition : set PropertyName ( PropertySetParameterList ) { FunctionBody } [...] 7. Perform SetFunctionName(closure, propKey, "set"). includes: [propertyHelper.js] features: [Symbol] ---*/ var namedSym = Symbol('test262'); var anonSym = Symbol(); var setter; class A { set id(_) {} set [anonSym](_) {} set [namedSym](_) {} static set id(_) {} static set [anonSym](_) {} static set [namedSym](_) {} } setter = Object.getOwnPropertyDescriptor(A.prototype, 'id').set; assert.sameValue(setter.name, 'set id'); verifyNotEnumerable(setter, 'name'); verifyNotWritable(setter, 'name'); verifyConfigurable(setter, 'name'); setter = Object.getOwnPropertyDescriptor(A.prototype, anonSym).set; assert.sameValue(setter.name, 'set '); verifyNotEnumerable(setter, 'name'); verifyNotWritable(setter, 'name'); verifyConfigurable(setter, 'name'); setter = Object.getOwnPropertyDescriptor(A.prototype, namedSym).set; assert.sameValue(setter.name, 'set [test262]'); verifyNotEnumerable(setter, 'name'); verifyNotWritable(setter, 'name'); verifyConfigurable(setter, 'name'); setter = Object.getOwnPropertyDescriptor(A, 'id').set; assert.sameValue(setter.name, 'set id'); verifyNotEnumerable(setter, 'name'); verifyNotWritable(setter, 'name'); verifyConfigurable(setter, 'name'); setter = Object.getOwnPropertyDescriptor(A, anonSym).set; assert.sameValue(setter.name, 'set '); verifyNotEnumerable(setter, 'name'); verifyNotWritable(setter, 'name'); verifyConfigurable(setter, 'name'); setter = Object.getOwnPropertyDescriptor(A, namedSym).set; assert.sameValue(setter.name, 'set [test262]'); verifyNotEnumerable(setter, 'name'); verifyNotWritable(setter, 'name'); verifyConfigurable(setter, 'name'); reportCompare(0, 0);