15.2.3.7-6-a-287.js (1216B)
1 // Copyright (c) 2012 Ecma International. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 es5id: 15.2.3.7-6-a-287 6 description: > 7 Object.defineProperties - 'O' is an Arguments object, 'P' is own 8 accessor property of 'O' which is also defined in [[ParameterMap]] 9 of 'O', test TypeError is thrown when updating the [[Set]] 10 attribute value of 'P' which is defined as non-configurable (10.6 11 [[DefineOwnProperty]] step 4) 12 ---*/ 13 14 var arg; 15 16 (function fun(a, b, c) { 17 arg = arguments; 18 }(0, 1, 2)); 19 20 function get_func() { 21 return 0; 22 } 23 24 Object.defineProperty(arg, "0", { 25 get: get_func, 26 set: undefined, 27 enumerable: false, 28 configurable: false 29 }); 30 31 function set_func(value) { 32 arg.setVerifyHelpProp = value; 33 } 34 assert.throws(TypeError, function() { 35 Object.defineProperties(arg, { 36 "0": { 37 set: set_func 38 } 39 }); 40 }); 41 var desc = Object.getOwnPropertyDescriptor(arg, "0"); 42 assert.sameValue(desc.get, get_func, 'desc.get'); 43 assert.sameValue(typeof desc.set, "undefined", 'typeof desc.set'); 44 assert.sameValue(desc.enumerable, false, 'desc.enumerable'); 45 assert.sameValue(desc.configurable, false, 'desc.configurable'); 46 47 reportCompare(0, 0);