function defineProperty(obj, name, value) {
  // We have define property! Use that.
  const prop = {
    enumerable: true,
    configurable: true
  }
  if (isFunction(value)) {
    prop.get = value
  } else {
    prop.writable = false
    prop.value = value
  }
  Object.defineProperty(obj, name, prop)
}
Defines a read-only property on the given object.

@memberof Shim.prototype
@param {object} obj
 The object to add the property to.
@param {string} name
 The name of the property to add.
@param {* | Function} value
 The value to set. If a function is given, it is used as a getter, otherwise
 the value is directly set as an unwritable property.