| /* |
| * Any copyright is dedicated to the Public Domain. |
| * http://creativecommons.org/licenses/publicdomain/ |
| */ |
| |
| /* Object.freeze */ |
| |
| function getme() { return 42; }; |
| function setme(x) { }; |
| |
| var properties = { all: { value:1, writable:true, configurable:true, enumerable: true }, |
| readOnly: { value:2, writable:false, configurable:true, enumerable: true }, |
| nonConfig: { value:3, writable:true, configurable:false, enumerable: true }, |
| none: { value:4, writable:false, configurable:false, enumerable: true }, |
| getter: { get: getme, configurable:false, enumerable: true }, |
| setter: { set: setme, configurable:false, enumerable: true }, |
| getandset: { get: getme, set: setme, configurable:false, enumerable: true } |
| }; |
| var o = Object.defineProperties({}, properties); |
| |
| Object.freeze(o); |
| |
| function getPropertyOf(obj) { |
| return function (prop) { |
| return Object.getOwnPropertyDescriptor(obj, prop); |
| }; |
| }; |
| |
| assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'all'), |
| { value: 1, writable:false, enumerable:true, configurable:false }), |
| true); |
| assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'readOnly'), |
| { value: 2, writable:false, enumerable:true, configurable:false }), |
| true); |
| assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'nonConfig'), |
| { value: 3, writable:false, enumerable:true, configurable:false }), |
| true); |
| assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'none'), |
| { value: 4, writable:false, enumerable:true, configurable:false }), |
| true); |
| assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'getter'), |
| { get: getme, set: (void 0), enumerable:true, configurable:false }), |
| true); |
| assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'setter'), |
| { set: setme, get: (void 0), enumerable:true, configurable:false }), |
| true); |
| assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'getandset'), |
| { get: getme, set: setme, enumerable:true, configurable:false }), |
| true); |
| |
| reportCompare(true, true); |