8.12.9-9-b-i_2.js (1073B)
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: 8.12.9-9-b-i_2 6 description: > 7 Redefine a configurable data property to be an accessor property 8 on a newly non-extensible object 9 ---*/ 10 11 var o = {}; 12 Object.defineProperty(o, "foo", 13 { 14 value: "hello", 15 configurable: true, 16 enumerable: true, 17 writable: true 18 }); 19 Object.preventExtensions(o); 20 Object.defineProperty(o, "foo", { 21 get: function() { 22 return 5; 23 } 24 }); 25 26 var fooDescrip = Object.getOwnPropertyDescriptor(o, "foo"); 27 28 assert.sameValue(o.foo, 5, 'o.foo'); 29 assert(fooDescrip.get !== undefined, 'fooDescrip.get!==undefined !== true'); 30 assert.sameValue(fooDescrip.set, undefined, 'fooDescrip.set'); 31 assert.sameValue(fooDescrip.value, undefined, 'fooDescrip.value'); 32 assert.sameValue(fooDescrip.configurable, true, 'fooDescrip.configurable'); 33 assert.sameValue(fooDescrip.enumerable, true, 'fooDescrip.enumerable'); 34 assert.sameValue(fooDescrip.writable, undefined, 'fooDescrip.writable'); 35 36 reportCompare(0, 0);