code: function isSafeProperty (object, prop) {
    if (!object || typeof object !== 'object') {
      return false
    }
    // SAFE: whitelisted
    // e.g length
    if (hasOwnProperty(safeNativeProperties, prop)) {
      return true
    }
    // UNSAFE: inherited from Object prototype
    // e.g constructor
    if (prop in Object.prototype) {
      // 'in' is used instead of hasOwnProperty for nodejs v0.10
      // which is inconsistent on root prototypes. It is safe
      // here because Object.prototype is a root object
      return false
    }
    // UNSAFE: inherited from Function prototype
    // e.g call, apply
    if (prop in Function.prototype) {
      // 'in' is used instead of hasOwnProperty for nodejs v0.10
      // which is inconsistent on root prototypes. It is safe
      // here because Function.prototype is a root object
      return false
    }
    return true
  }
docs: Test whether a property is safe to use for an object.
  For example .toString and .constructor are not safe
  @param {string} prop
  @return {boolean} Returns true when safe