dict-object-freeze-or-seal.js (677B)
1 let sym = Symbol(); 2 3 let o = {x: 1, y: 2, z: 3, a: 4, b: 5, 12345678: 6, [sym]: 7}; 4 for (let i = 0; i < 100; i++) { 5 o["foo" + i] = 1; 6 } 7 delete o.x; 8 9 Object.seal(o); 10 assertEq(Object.getOwnPropertyNames(o).length, 105); 11 assertEq(Object.getOwnPropertySymbols(o).length, 1); 12 13 assertEq(Object.isSealed(o), true); 14 assertEq(Object.isFrozen(o), false); 15 16 let desc = Object.getOwnPropertyDescriptor(o, "y"); 17 assertEq(desc.writable, true); 18 assertEq(desc.configurable, false); 19 20 Object.freeze(o); 21 assertEq(Object.isSealed(o), true); 22 assertEq(Object.isFrozen(o), true); 23 24 desc = Object.getOwnPropertyDescriptor(o, "y"); 25 assertEq(desc.writable, false); 26 assertEq(desc.configurable, false);