static/ext/src/ux/AceEditor/87749d9714f1925e26afa48a0d592eaa39403858@/lib/ace/mode/javascript_worker.js
function LetBlock(t, x, isStatement) {
    var n, n2;

    // t.token.type must be LET
    n = new Node(t, { type: LET_BLOCK, varDecls: [] });
    t.mustMatch(LEFT_PAREN);
    n.variables = Variables(t, x, n);
    t.mustMatch(RIGHT_PAREN);

    if (isStatement && t.peek() !== LEFT_CURLY) {
        /*
         * If this is really an expression in let statement guise, then we
         * need to wrap the LET_BLOCK node in a SEMICOLON node so that we pop
         * the return value of the expression.
         */
        n2 = new Node(t, { type: SEMICOLON,
                           expression: n });
        isStatement = false;
    }

    if (isStatement)
        n.block = Block(t, x);
    else
        n.expression = AssignExpression(t, x);

    return n;
}
function LetBlock(t, x, isStatement) {
    var n, n2;

    // t.token.type must be LET
    n = new Node(t, { type: LET_BLOCK, varDecls: [] });
    t.mustMatch(LEFT_PAREN);
    n.variables = Variables(t, x, n);
    t.mustMatch(RIGHT_PAREN);

    if (isStatement && t.peek() !== LEFT_CURLY) {
        /*
         * If this is really an expression in let statement guise, then we
         * need to wrap the LET_BLOCK node in a SEMICOLON node so that we pop
         * the return value of the expression.
         */
        n2 = new Node(t, { type: SEMICOLON,
                           expression: n });
        isStatement = false;
    }

    if (isStatement)
        n.block = Block(t, x);
    else
        n.expression = AssignExpression(t, x);

    return n;
}
function LetBlock ( t , x , isStatement ) { var n , n2 ; // t.token.type must be LET n = new Node ( t , { type : LET_BLOCK , varDecls : [ ] } ) ; t . mustMatch ( LEFT_PAREN ) ; n . variables = Variables ( t , x , n ) ; t . mustMatch ( RIGHT_PAREN ) ; if ( isStatement && t . peek ( ) !== LEFT_CURLY ) { /*
         * If this is really an expression in let statement guise, then we
         * need to wrap the LET_BLOCK node in a SEMICOLON node so that we pop
         * the return value of the expression.
         */ n2 = new Node ( t , { type : SEMICOLON , expression : n } ) ; isStatement = false ; } if ( isStatement ) n . block = Block ( t , x ) ; else n . expression = AssignExpression ( t , x ) ; return n ; }
/*
LetBlock :: (tokenizer, compiler context, boolean) -> node

Does not handle let inside of for loop init.
/ * LetBlock :: ( tokenizer compiler context boolean ) - > node