| // Copyright (C) 2017 Leo Balter. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| description: > |
| Verify symbol named property descriptor |
| includes: [propertyHelper.js] |
| features: [Symbol] |
| ---*/ |
| |
| var obj; |
| var prop = Symbol(1); |
| |
| function reset(desc) { |
| obj = {}; |
| Object.defineProperty(obj, prop, desc); |
| } |
| |
| function checkDesc(desc) { |
| reset(desc); |
| assert(verifyProperty(obj, prop, desc)); |
| |
| reset(desc); |
| assert(verifyProperty(obj, prop, { enumerable: desc.enumerable })); |
| |
| reset(desc); |
| assert(verifyProperty(obj, prop, { writable: desc.writable })); |
| |
| reset(desc); |
| assert(verifyProperty(obj, prop, { configurable: desc.configurable })); |
| |
| reset(desc); |
| assert(verifyProperty(obj, prop, { configurable: desc.configurable, enumerable: desc.enumerable })); |
| |
| reset(desc); |
| assert(verifyProperty(obj, prop, { configurable: desc.configurable, writable: desc.writable })); |
| |
| reset(desc); |
| assert(verifyProperty(obj, prop, { writable: desc.writable, enumerable: desc.enumerable })); |
| |
| reset(desc); |
| assert(verifyProperty(obj, prop, { enumerable: desc.enumerable, configurable: desc.configurable })); |
| } |
| |
| checkDesc({ enumerable: true, configurable: true, writable: true }); |
| checkDesc({ enumerable: false, writable: false, configurable: false }); |
| checkDesc({ enumerable: true, writable: false, configurable: false }); |
| checkDesc({ enumerable: false, writable: true, configurable: false }); |
| checkDesc({ enumerable: false, writable: false, configurable: true }); |
| checkDesc({ enumerable: true, writable: false, configurable: true }); |
| checkDesc({ enumerable: true, writable: true, configurable: false }); |
| checkDesc({ enumerable: false, writable: true, configurable: true }); |