1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/ecma_5/Object/15.2.3.9.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,51 @@ 1.4 +/* 1.5 + * Any copyright is dedicated to the Public Domain. 1.6 + * http://creativecommons.org/licenses/publicdomain/ 1.7 + */ 1.8 + 1.9 +/* Object.freeze */ 1.10 + 1.11 +function getme() { return 42; }; 1.12 +function setme(x) { }; 1.13 + 1.14 +var properties = { all: { value:1, writable:true, configurable:true, enumerable: true }, 1.15 + readOnly: { value:2, writable:false, configurable:true, enumerable: true }, 1.16 + nonConfig: { value:3, writable:true, configurable:false, enumerable: true }, 1.17 + none: { value:4, writable:false, configurable:false, enumerable: true }, 1.18 + getter: { get: getme, configurable:false, enumerable: true }, 1.19 + setter: { set: setme, configurable:false, enumerable: true }, 1.20 + getandset: { get: getme, set: setme, configurable:false, enumerable: true } 1.21 + }; 1.22 +var o = Object.defineProperties({}, properties); 1.23 + 1.24 +Object.freeze(o); 1.25 + 1.26 +function getPropertyOf(obj) { 1.27 + return function (prop) { 1.28 + return Object.getOwnPropertyDescriptor(obj, prop); 1.29 + }; 1.30 +}; 1.31 + 1.32 +assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'all'), 1.33 + { value: 1, writable:false, enumerable:true, configurable:false }), 1.34 + true); 1.35 +assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'readOnly'), 1.36 + { value: 2, writable:false, enumerable:true, configurable:false }), 1.37 + true); 1.38 +assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'nonConfig'), 1.39 + { value: 3, writable:false, enumerable:true, configurable:false }), 1.40 + true); 1.41 +assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'none'), 1.42 + { value: 4, writable:false, enumerable:true, configurable:false }), 1.43 + true); 1.44 +assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'getter'), 1.45 + { get: getme, set: (void 0), enumerable:true, configurable:false }), 1.46 + true); 1.47 +assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'setter'), 1.48 + { set: setme, get: (void 0), enumerable:true, configurable:false }), 1.49 + true); 1.50 +assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'getandset'), 1.51 + { get: getme, set: setme, enumerable:true, configurable:false }), 1.52 + true); 1.53 + 1.54 +reportCompare(true, true);