code: function getOptions(opts) {
    var options = {};
    for (var opt in defaultOptions) {
      options[opt] = opts && _util.has(opts, opt) ? opts[opt] : defaultOptions[opt];
    }if (options.allowReserved == null) options.allowReserved = options.ecmaVersion < 5;
  
    if (_util.isArray(options.onToken)) {
      (function () {
        var tokens = options.onToken;
        options.onToken = function (token) {
          return tokens.push(token);
        };
      })();
    }
    if (_util.isArray(options.onComment)) options.onComment = pushComment(options, options.onComment);
  
    return options;
  }
docs: Interpret and default an options object