whole_func_string: function fetch (options) {
      var time, promise, resolve, reject;
  
      time = new Date();
      promise = new Promise(function (r1, r2) { resolve = r1; reject = r2; } );
  
      try {
          options = normalise(options);
  
          if (options.resultIds) {
              wpt.getResults(options, options.resultIds).then(after);
          } else {
              wpt.runTests(options).then(wpt.getResults.bind(null, options)).then(after);
          }
      } catch (error) {
          reject(error);
      }
  
      return promise;
  
      function after (results) {
          results = {
              data: results,
              options: options,
              times: {
                  begin: time,
                  end: new Date()
              }
          };
  
          if (options.dump) {
              dump(options, results);
          }
  
          resolve(results);
      }
  }
func_code_string: function fetch (options) {
      var time, promise, resolve, reject;
  
      time = new Date();
      promise = new Promise(function (r1, r2) { resolve = r1; reject = r2; } );
  
      try {
          options = normalise(options);
  
          if (options.resultIds) {
              wpt.getResults(options, options.resultIds).then(after);
          } else {
              wpt.runTests(options).then(wpt.getResults.bind(null, options)).then(after);
          }
      } catch (error) {
          reject(error);
      }
  
      return promise;
  
      function after (results) {
          results = {
              data: results,
              options: options,
              times: {
                  begin: time,
                  end: new Date()
              }
          };
  
          if (options.dump) {
              dump(options, results);
          }
  
          resolve(results);
      }
  }
func_documentation_string: Public function `fetch`.
  
  Invokes WebPageTest, returns an ES6 promise.
  
  @option uri        {string}  Base URI for the WebPageTest instance, defaults to
  `www.webpagetest.org`.
  @option key        {string}  WebPageTest API key.
  @option location   {string}  WebPageTest location, defaults to `Dulles:Chrome`.
  @option connection {string}  WebPageTest connection speed, defaults to `Native
  Connection`.
  @option tests      {string}  Path to the test definitions JSON file, defaults
  to `tests.json`.
  @option count      {number}  Number of times to run each test, defaults to `9`.
  @option email      {string}  Email address to send notifications to.
  @option dump       {string}  Dump intermediate results to file.
  @option resultIds  {array}   Bypass running the tests and fetch the specified
  results instead.
  @option silent     {boolean} Disable logging, overrides `syslog` and `log`.
  @option syslog     {string}  Send logs to syslog, overrides `log`.
  @option log        {object}  Logging implementation, needs `log.info()`,
  `log.warn()` and `log.error()`.
  @option config     {string}  Load options from JSON config file.