--- /dev/null
+/*!
+ * 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;
+};