code: function PreconditionError(message, caller) {
    this.name = 'PreconditionError';
    this.message = message || 'Precondition failed';
    if (typeof Error.captureStackTrace === 'function') {
      Error.captureStackTrace(this, caller || PreconditionError);
    }
  }
docs: # Precondition Error
  Thrown when a precondition fails.
  
  @param {String}   message The error message.
  @param {Function} caller  The function that threw the error, used for cleaning stack traces.