lib/acorn/dist/acorn.js
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;
}
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;
}
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 ; }
Interpret and default an options object
Interpret and default an options object