code: function Suite(name, options) {
        var suite = this;
  
        // Allow instance creation without the `new` operator.
        if (!(suite instanceof Suite)) {
          return new Suite(name, options);
        }
        // Juggle arguments.
        if (_.isPlainObject(name)) {
          // 1 argument (options).
          options = name;
        } else {
          // 2 arguments (name [, options]).
          suite.name = name;
        }
        setOptions(suite, options);
      }
docs: The Suite constructor.
  
  Note: Each Suite instance has a handful of wrapped lodash methods to
  make working with Suites easier. The wrapped lodash methods are:
  [`each/forEach`](https://lodash.com/docs#forEach), [`indexOf`](https://lodash.com/docs#indexOf),
  [`map`](https://lodash.com/docs#map), and [`reduce`](https://lodash.com/docs#reduce)
  
  @constructor
  @memberOf Benchmark
  @param {string} name A name to identify the suite.
  @param {Object} [options={}] Options object.
  @example
  
  // basic usage (the `new` operator is optional)
  var suite = new Benchmark.Suite;
  
  // or using a name first
  var suite = new Benchmark.Suite('foo');
  
  // or with options
  var suite = new Benchmark.Suite('foo', {
  
  // called when the suite starts running
  'onStart': onStart,
  
  // called between running benchmarks
  'onCycle': onCycle,
  
  // called when aborted
  'onAbort': onAbort,
  
  // called when a test errors
  'onError': onError,
  
  // called when reset
  'onReset': onReset,
  
  // called when the suite completes running
  'onComplete': onComplete
  });