function parseDoWhileStatement() {
        var body, test, oldInIteration;

        expectKeyword('do');

        oldInIteration = state.inIteration;
        state.inIteration = true;

        body = parseStatement();

        state.inIteration = oldInIteration;

        expectKeyword('while');

        expect('(');

        test = parseExpression();

        expect(')');

        if (match(';')) {
            lex();
        }

        return delegate.createDoWhileStatement(body, test);
    }
function parseDoWhileStatement() {
        var body, test, oldInIteration;

        expectKeyword('do');

        oldInIteration = state.inIteration;
        state.inIteration = true;

        body = parseStatement();

        state.inIteration = oldInIteration;

        expectKeyword('while');

        expect('(');

        test = parseExpression();

        expect(')');

        if (match(';')) {
            lex();
        }

        return delegate.createDoWhileStatement(body, test);
    }
function parseDoWhileStatement ( ) { var body , test , oldInIteration ; expectKeyword ( 'do' ) ; oldInIteration = state . inIteration ; state . inIteration = true ; body = parseStatement ( ) ; state . inIteration = oldInIteration ; expectKeyword ( 'while' ) ; expect ( '(' ) ; test = parseExpression ( ) ; expect ( ')' ) ; if ( match ( ';' ) ) { lex ( ) ; } return delegate . createDoWhileStatement ( body , test ) ; }
12.6 Iteration Statements
12 . 6 Iteration Statements
ECMA - 262 12. 2 WhileStatement