// Copyright (C) 2017 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- description: > Verify property descriptor includes: [propertyHelper.js] ---*/ var obj; var prop = 'prop'; function reset(desc) { desc.value = prop; obj = Object.defineProperty({}, prop, desc); } function checkDesc(desc) { reset(desc); assert(verifyProperty(obj, prop, desc)); reset(desc); assert(verifyProperty(obj, prop, { value: 'prop', enumerable: desc.enumerable })); reset(desc); assert(verifyProperty(obj, prop, { value: 'prop', writable: desc.writable })); reset(desc); assert(verifyProperty(obj, prop, { value: 'prop', configurable: desc.configurable })); reset(desc); assert(verifyProperty(obj, prop, { value: 'prop', configurable: desc.configurable, enumerable: desc.enumerable })); reset(desc); assert(verifyProperty(obj, prop, { value: 'prop', configurable: desc.configurable, writable: desc.writable })); reset(desc); assert(verifyProperty(obj, prop, { value: 'prop', writable: desc.writable, enumerable: desc.enumerable })); reset(desc); assert(verifyProperty(obj, prop, { value: '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 });