15.2.3.6-4-360-5.js (1224B)
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-360-5 6 description: > 7 ES5 Attributes - Updating named data property 'P' whose attributes 8 are [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: 9 true to an accessor property, 'A' is an Array object (8.12.9 - 10 step 9.b.i) 11 ---*/ 12 13 var obj = []; 14 15 Object.defineProperty(obj, "prop", { 16 value: 2010, 17 writable: false, 18 enumerable: true, 19 configurable: true 20 }); 21 var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); 22 23 function getFunc() { 24 return 20; 25 } 26 Object.defineProperty(obj, "prop", { 27 get: getFunc 28 }); 29 var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); 30 31 assert(desc1.hasOwnProperty("value"), 'desc1.hasOwnProperty("value") !== true'); 32 assert(desc2.hasOwnProperty("get"), 'desc2.hasOwnProperty("get") !== true'); 33 assert.sameValue(desc2.enumerable, true, 'desc2.enumerable'); 34 assert.sameValue(desc2.configurable, true, 'desc2.configurable'); 35 assert.sameValue(obj.prop, 20, 'obj.prop'); 36 assert.sameValue(typeof desc2.set, "undefined", 'typeof desc2.set'); 37 assert.sameValue(desc2.get, getFunc, 'desc2.get'); 38 39 reportCompare(0, 0);