docs: function parseArgs() {
      var args = {};
      if (arguments.length === 1) {
        if (typeof arguments[0] === 'function') {
          args.fn = arguments[0];
        } else {
          args.options = arguments[0];
        }
      } else if (arguments.length === 2) {
        if (typeof arguments[0] === 'function') {
          args.fn = arguments[0];
          args.ctx = arguments[1];
        } else {
          args.options = arguments[0];
          args.fn = arguments[1];
        }
      } else {
        args.options = arguments[0];
        args.fn = arguments[1];
        args.ctx = arguments[2];
      }
      args.options = args.options || {};
      if (!args.options.strategy) {
        args.options.strategy = 'pre';
      }
      if (!walkStrategies[args.options.strategy]) {
        throw new Error('Unknown tree walk strategy. Valid strategies are \'pre\' [default], \'post\' and \'breadth\'.');
      }
      return args;
    }