verifyProperty-value.js (1840B)
1 // Copyright (C) 2017 Rick Waldron. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 description: > 6 Verify property descriptor 7 includes: [propertyHelper.js] 8 ---*/ 9 10 var obj; 11 var prop = 'prop'; 12 13 function reset(desc) { 14 desc.value = prop; 15 obj = Object.defineProperty({}, prop, desc); 16 } 17 18 function checkDesc(desc) { 19 reset(desc); 20 assert(verifyProperty(obj, prop, desc)); 21 22 reset(desc); 23 assert(verifyProperty(obj, prop, { value: 'prop', enumerable: desc.enumerable })); 24 25 reset(desc); 26 assert(verifyProperty(obj, prop, { value: 'prop', writable: desc.writable })); 27 28 reset(desc); 29 assert(verifyProperty(obj, prop, { value: 'prop', configurable: desc.configurable })); 30 31 reset(desc); 32 assert(verifyProperty(obj, prop, { value: 'prop', configurable: desc.configurable, enumerable: desc.enumerable })); 33 34 reset(desc); 35 assert(verifyProperty(obj, prop, { value: 'prop', configurable: desc.configurable, writable: desc.writable })); 36 37 reset(desc); 38 assert(verifyProperty(obj, prop, { value: 'prop', writable: desc.writable, enumerable: desc.enumerable })); 39 40 reset(desc); 41 assert(verifyProperty(obj, prop, { value: 'prop', enumerable: desc.enumerable, configurable: desc.configurable })); 42 } 43 44 checkDesc({ enumerable: true, configurable: true, writable: true }); 45 checkDesc({ enumerable: false, writable: false, configurable: false }); 46 checkDesc({ enumerable: true, writable: false, configurable: false }); 47 checkDesc({ enumerable: false, writable: true, configurable: false }); 48 checkDesc({ enumerable: false, writable: false, configurable: true }); 49 checkDesc({ enumerable: true, writable: false, configurable: true }); 50 checkDesc({ enumerable: true, writable: true, configurable: false }); 51 checkDesc({ enumerable: false, writable: true, configurable: true }); 52 53 reportCompare(0, 0);