verifyProperty-string-prop.js (1719B)
1 // Copyright (C) 2017 Leo Balter. 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 obj = {}; 15 Object.defineProperty(obj, 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, { enumerable: desc.enumerable })); 24 25 reset(desc); 26 assert(verifyProperty(obj, prop, { writable: desc.writable })); 27 28 reset(desc); 29 assert(verifyProperty(obj, prop, { configurable: desc.configurable })); 30 31 reset(desc); 32 assert(verifyProperty(obj, prop, { configurable: desc.configurable, enumerable: desc.enumerable })); 33 34 reset(desc); 35 assert(verifyProperty(obj, prop, { configurable: desc.configurable, writable: desc.writable })); 36 37 reset(desc); 38 assert(verifyProperty(obj, prop, { writable: desc.writable, enumerable: desc.enumerable })); 39 40 reset(desc); 41 assert(verifyProperty(obj, 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);