code: function HashCodeContext(value, hashCode, options) {
    if (options == null) {
      options = {};
    }
  
    /**
     * A reference to {@link Nevis.hashCode} which can be called within a {@link HashCodeGenerator}.
     *
     * @private
     * @type {Function}
     */
    this._hashCode = hashCode;
  
    /**
     * The options to be used to generate the hash code for the value.
     *
     * @public
     * @type {Nevis~HashCodeOptions}
     */
    this.options = {
      allowCache: options.allowCache !== false,
      filterProperty: options.filterProperty != null ? options.filterProperty : function() {
        return true;
      },
      ignoreHashCode: Boolean(options.ignoreHashCode),
      ignoreInherited: Boolean(options.ignoreInherited),
      ignoreMethods: Boolean(options.ignoreMethods)
    };
  
    /**
     * The string representation of the value whose hash code is to be generated.
     *
     * This is generated using <code>Object.prototype.toString</code> and is intended to be primarily used for more
     * specific type-checking.
     *
     * @public
     * @type {string}
     */
    this.string = Object.prototype.toString.call(value);
  
    /**
     * The type of the value whose hash code is to be generated.
     *
     * This is generated using <code>typeof</code> and is intended to be primarily used for simple type-checking.
     *
     * @public
     * @type {string}
     */
    this.type = typeof value;
  
    /**
     * The value whose hash code is to be generated.
     *
     * @public
     * @type {*}
     */
    this.value = value;
  }
docs: Contains the value for which a hash code is to be generated as well string representation and type of the value which
  can be checked elsewhere for type-checking etc.
  
  @param {*} value - the value whose hash code is to be generated
  @param {Function} hashCode - a reference to {@link Nevis.hashCode} which can be called within a
  {@link HashCodeGenerator}
  @param {?Nevis~HashCodeOptions} options - the options to be used (may be <code>null</code>)
  @protected
  @constructor