fn-name-accessor-set.js (1799B)
1 // Copyright (C) 2015 the V8 project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 es6id: 14.3.9 6 description: Assignment of function `name` attribute ("set" accessor) 7 info: | 8 MethodDefinition : 9 set PropertyName ( PropertySetParameterList ) { FunctionBody } 10 11 [...] 12 7. Perform SetFunctionName(closure, propKey, "set"). 13 includes: [propertyHelper.js] 14 features: [Symbol] 15 ---*/ 16 17 var namedSym = Symbol('test262'); 18 var anonSym = Symbol(); 19 var setter; 20 21 class A { 22 set id(_) {} 23 set [anonSym](_) {} 24 set [namedSym](_) {} 25 static set id(_) {} 26 static set [anonSym](_) {} 27 static set [namedSym](_) {} 28 } 29 30 setter = Object.getOwnPropertyDescriptor(A.prototype, 'id').set; 31 verifyProperty(setter, 'name', { 32 value: 'set id', 33 writable: false, 34 enumerable: false, 35 configurable: true, 36 }); 37 38 setter = Object.getOwnPropertyDescriptor(A.prototype, anonSym).set; 39 verifyProperty(setter, 'name', { 40 value: 'set ', 41 writable: false, 42 enumerable: false, 43 configurable: true, 44 }); 45 46 setter = Object.getOwnPropertyDescriptor(A.prototype, namedSym).set; 47 verifyProperty(setter, 'name', { 48 value: 'set [test262]', 49 writable: false, 50 enumerable: false, 51 configurable: true, 52 }); 53 54 setter = Object.getOwnPropertyDescriptor(A, 'id').set; 55 verifyProperty(setter, 'name', { 56 value: 'set id', 57 writable: false, 58 enumerable: false, 59 configurable: true, 60 }); 61 62 setter = Object.getOwnPropertyDescriptor(A, anonSym).set; 63 verifyProperty(setter, 'name', { 64 value: 'set ', 65 writable: false, 66 enumerable: false, 67 configurable: true, 68 }); 69 70 setter = Object.getOwnPropertyDescriptor(A, namedSym).set; 71 verifyProperty(setter, 'name', { 72 value: 'set [test262]', 73 writable: false, 74 enumerable: false, 75 configurable: true, 76 }); 77 78 reportCompare(0, 0);