15.2.3.6-4-547-2.js (1608B)
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.6-4-547-2 6 description: > 7 ES5 Attributes - Updating a named accessor property 'P' whose 8 [[Configurable]] attribute is false to a data property does not 9 succeed, 'A' is an Arguments object (8.12.9 step 9.a) 10 includes: [propertyHelper.js] 11 ---*/ 12 13 var obj = (function() { 14 return arguments; 15 }()); 16 17 obj.verifySetFunc = "data"; 18 var getFunc = function() { 19 return obj.verifySetFunc; 20 }; 21 22 var setFunc = function(value) { 23 obj.verifySetFunc = value; 24 }; 25 26 Object.defineProperty(obj, "prop", { 27 get: getFunc, 28 set: setFunc, 29 enumerable: true, 30 configurable: false 31 }); 32 var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); 33 34 try { 35 Object.defineProperty(obj, "prop", { 36 value: 1001 37 }); 38 39 throw new Test262Error("Expected an exception."); 40 } catch (e) { 41 var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); 42 43 if (!desc1.hasOwnProperty("get")) { 44 throw new Test262Error('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); 45 } 46 47 if (desc2.hasOwnProperty("value")) { 48 throw new Test262Error('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value")); 49 } 50 51 52 verifyEqualTo(obj, "prop", getFunc()); 53 54 verifyWritable(obj, "prop", "verifySetFunc"); 55 56 if (!(e instanceof TypeError)) { 57 throw new Test262Error("Expected TypeError, got " + e); 58 } 59 } 60 61 verifyProperty(obj, "prop", { 62 enumerable: true, 63 configurable: false, 64 }); 65 66 reportCompare(0, 0);