code: function (s, o) {
          if (o) {
              if (o.adsafe) {
                  o.browser = false;
                  o.debug   = false;
                  o.eqeqeq  = true;
                  o.evil    = false;
                  o.forin   = false;
                  o.on      = false;
                  o.rhino   = false;
                  o.undef   = true;
                  o.widget  = false;
              }
              option = o;
          } else {
              option = {};
          }
          globals = option.adsafe ? {} : object(standard);
          JSLINT.errors = [];
          global = object(globals);
          scope = global;
          funct = {'(global)': true, '(name)': '(global)', '(scope)': scope};
          functions = [];
          src = false;
          xmode = false;
          xtype = '';
          stack = null;
          member = {};
          membersOnly = null;
          implied = {};
          inblock = false;
          lookahead = [];
          indent = 0;
          jsonmode = false;
          warnings = 0;
          lex.init(s);
          prereg = true;
  
          prevtoken = token = nexttoken = syntax['(begin)'];
          populateGlobals();
  
          try {
              advance();
              if (nexttoken.value.charAt(0) === '<') {
                  xml();
              } else if (nexttoken.id === '{' || nexttoken.id === '[') {
                  option.laxbreak = true;
                  jsonmode = true;
                  jsonValue();
              } else {
                  statements();
              }
              advance('(end)');
          } catch (e) {
              if (e) {
                  JSLINT.errors.push({
                      reason    : e.message,
                      line      : e.line || nexttoken.line,
                      character : e.character || nexttoken.from
                  }, null);
              }
          }
          return JSLINT.errors.length === 0;
      }
docs: The actual JSLINT function itself.