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