rem: function statement() { var i = indent, s = scope, t = nexttoken; 
add: function statement(noindent) { var i = indent, r, s = scope, t = nexttoken; 
context:     function statement() {        var i = indent, s = scope, t = nexttoken;// We don't like the empty statement.        if (t.id === ';') {            warning("Unnecessary semicolon.", t);            advance(';');            return;        }// Is this a labelled statement?        if (t.identifier && !t.reserved && peek().id === ':') {            advance();            advance(':');            scope = s.begetObject();            addlabel(t.value, 'label');            if (!nexttoken.labelled) {                warning("Label '{a}' on {b} statement.",                        nexttoken, t.value, nexttoken.value);            }            if (jx.test(t.value + ':')) {                warning("Label '{a}' looks like a javascript url.",                        t, t.value);            }            nexttoken.label = t.value;            t = nexttoken;        }// Parse the statement.        parse(0, true);// Look for the final semicolon.        if (!t.block) {            if (nexttoken.id !== ';') {                warningAt("Missing semicolon.", token.line,                        token.from + token.value.length);            } else {                adjacent(token, nexttoken);                advance(';');                nonadjacent(token, nexttoken);            }        }// Restore the indentation.        indent = i;        scope = s;    }
meta: 5491	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5491/78561e9fb67e01f7f75693e77959bd914c7d92d7/fulljslint.js/clean/src/net/happygiraffe/jslint/fulljslint.js