GM_download(opts, name) {
    if (isString(opts)) {
      opts = { url: opts, name, __proto__: null };
    } else if (opts) {
      opts = nullObjFrom(opts);
      name = opts.name;
    }
    if (!name ? (name = 'missing') : !isString(name) && (name = 'not a string')) {
      onRequestInitError(opts, new SafeError(`Required parameter "name" is ${name}.`));
      return;
    }
    assign(opts, {
      [kResponseType]: 'blob',
      data: null,
      method: 'GET',
      overrideMimeType: 'application/octet-stream',
    });
    return onRequestCreate(opts, this, name);
  }
@this {GMContext}
@param {VMScriptGMDownloadOptions|string} opts
@param {string} [name]