bug1397026.js (1002B)
1 function f1() { 2 var o = {}; 3 var values = []; 4 for (var i = 0; i < 6; ++i) { 5 var desc = { 6 value: i, 7 writable: true, 8 configurable: true, 9 enumerable: true 10 }; 11 try { 12 Object.defineProperty(o, "p", desc); 13 } catch (e) { 14 } 15 if (i === 1) { 16 Object.defineProperty(o, "p", {configurable: false}); 17 } 18 values.push(o.p); 19 } 20 assertEq(values.toString(), "0,1,1,1,1,1"); 21 } 22 f1(); 23 24 function f2() { 25 var o = {}; 26 for (var i = 0; i < 6; ++i) { 27 var desc = { 28 value: i, 29 writable: true, 30 configurable: true, 31 enumerable: true 32 }; 33 try { 34 Object.defineProperty(o, "p", desc); 35 } catch (e) { 36 } 37 assertEq(Object.getOwnPropertyDescriptor(o, "p").enumerable, true); 38 if (i > 0) { 39 Object.defineProperty(o, "p", {enumerable: false}); 40 } 41 } 42 } 43 f2();