function mapping(value) {
  // only maps and object hashes
  var bool = value !== null
    && value !== undefined
    && typeof value === 'object'
    && !Array.isArray(value);
  if (Set) {
    return bool && !(value instanceof Set);
  } else {
    return bool;
  }
}
If ES6 features are available, returns `true` if the value is an object hash
or an ES6 Map. Otherwise just return if it's an object hash.
@param { any } value
@returns { boolean }