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;
}
/*
LetBlock :: (tokenizer, compiler context, boolean) -> node

Does not handle let inside of for loop init.