| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | /*! * is-data-descriptor <https://github.com/jonschlinkert/is-data-descriptor> * * Copyright (c) 2015, Jon Schlinkert. * Licensed under the MIT License. */'use strict';var typeOf = require('kind-of');// data descriptor propertiesvar data = {  configurable: 'boolean',  enumerable: 'boolean',  writable: 'boolean'};function isDataDescriptor(obj, prop) {  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;}/** * Expose `isDataDescriptor` */module.exports = isDataDescriptor;
 |