text: /**
   * @author       Richard Davey <rich@photonstorm.com>
   * @copyright    2020 Photon Storm Ltd.
   * @license      {@link https://opensource.org/licenses/MIT|MIT License}
   */
  
   var MergeXHRSettings = require('./MergeXHRSettings');
  
   /**
    * Creates a new XMLHttpRequest (xhr) object based on the given File and XHRSettings
    * and starts the download of it. It uses the Files own XHRSettings and merges them
    * with the global XHRSettings object to set the xhr values before download.
    *
    * @function Phaser.Loader.XHRLoader
    * @since 3.0.0
    *
    * @param {Phaser.Loader.File} file - The File to download.
    * @param {Phaser.Types.Loader.XHRSettingsObject} globalXHRSettings - The global XHRSettings object.
    *
    * @return {XMLHttpRequest} The XHR object.
    */
   var XHRLoader = function (file, globalXHRSettings)
   {
       var config = MergeXHRSettings(globalXHRSettings, file.xhrSettings);
   
       var xhr = new XMLHttpRequest();
   
       xhr.open('GET', file.src, config.async, config.user, config.password);
   
       xhr.responseType = file.xhrSettings.responseType;
       xhr.timeout = config.timeout;
   
       if (config.headers)
       {
           for (var key in config.headers)
           {
               xhr.setRequestHeader(key, config.headers[key]);
           }
       }
   
       if (config.header && config.headerValue)
       {
           xhr.setRequestHeader(config.header, config.headerValue);
       }
   
       if (config.requestedWith)
       {
           xhr.setRequestHeader('X-Requested-With', config.requestedWith);
       }
   
       if (config.overrideMimeType)
       {
           xhr.overrideMimeType(config.overrideMimeType);
       }
   
       if (config.withCredentials)
       {
           xhr.withCredentials = true;
       }
   
       // After a successful request, the xhr.response property will contain the requested data as a DOMString, ArrayBuffer, Blob, or Document (depending on what was set for responseType.)
   
       xhr.onload = file.onLoad.bind(file, xhr);
       xhr.onerror = file.onError.bind(file, xhr);
       xhr.onprogress = file.onProgress.bind(file);
   
       //  This is the only standard method, the ones above are browser additions (maybe not universal?)
       // xhr.onreadystatechange
   
       xhr.send();
   
       return xhr;
   };
   
   module.exports = XHRLoader;
   