/*! * is-data-descriptor <https://github.com/jonschlinkert/is-data-descriptor> * * Copyright (c) 2015-2017, Jon Schlinkert. * Released under the MIT License. */ 'use strict'; var typeOf = require('kind-of'); module.exports = function isDataDescriptor(obj, prop) { // data descriptor properties var data = { configurable: 'boolean', enumerable: 'boolean', writable: 'boolean' }; if (typeOf(obj) !== 'object') { return false; } if (typeof prop === 'string') { var val = Object.getOwnPropertyDescriptor(obj, prop); return typeof val !== 'undefined'; } if (!('value' in obj) && !('writable' in obj)) { return false; } for (var key in obj) { if (key === 'value') continue; if (!data.hasOwnProperty(key)) { continue; } if (typeOf(obj[key]) === data[key]) { continue; } if (typeof obj[key] !== 'undefined') { return false; } } return true; };