verifyProperty-symbol-prop.js (1754B)
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 symbol named property descriptor 7 includes: [propertyHelper.js] 8 features: [Symbol] 9 ---*/ 10 11 var obj; 12 var prop = Symbol(1); 13 14 function reset(desc) { 15 obj = {}; 16 Object.defineProperty(obj, prop, desc); 17 } 18 19 function checkDesc(desc) { 20 reset(desc); 21 assert(verifyProperty(obj, prop, desc)); 22 23 reset(desc); 24 assert(verifyProperty(obj, prop, { enumerable: desc.enumerable })); 25 26 reset(desc); 27 assert(verifyProperty(obj, prop, { writable: desc.writable })); 28 29 reset(desc); 30 assert(verifyProperty(obj, prop, { configurable: desc.configurable })); 31 32 reset(desc); 33 assert(verifyProperty(obj, prop, { configurable: desc.configurable, enumerable: desc.enumerable })); 34 35 reset(desc); 36 assert(verifyProperty(obj, prop, { configurable: desc.configurable, writable: desc.writable })); 37 38 reset(desc); 39 assert(verifyProperty(obj, prop, { writable: desc.writable, enumerable: desc.enumerable })); 40 41 reset(desc); 42 assert(verifyProperty(obj, prop, { enumerable: desc.enumerable, configurable: desc.configurable })); 43 } 44 45 checkDesc({ enumerable: true, configurable: true, writable: true }); 46 checkDesc({ enumerable: false, writable: false, configurable: false }); 47 checkDesc({ enumerable: true, writable: false, configurable: false }); 48 checkDesc({ enumerable: false, writable: true, configurable: false }); 49 checkDesc({ enumerable: false, writable: false, configurable: true }); 50 checkDesc({ enumerable: true, writable: false, configurable: true }); 51 checkDesc({ enumerable: true, writable: true, configurable: false }); 52 checkDesc({ enumerable: false, writable: true, configurable: true }); 53 54 reportCompare(0, 0);