function evaluateBlock({ node, environment, typescript, evaluate }) {
    // Prepare a lexical environment for the Block context
    const localLexicalEnvironment = cloneLexicalEnvironment(environment);
    for (let i = 0; i < node.statements.length; i++) {
        const statement = node.statements[i];
        // Don't execute 'super()' within Constructor Blocks since this is handled in another level
        if (typescript.isConstructorDeclaration(node.parent) &&
            i === 0 &&
            typescript.isExpressionStatement(statement) &&
            typescript.isCallExpression(statement.expression) &&
            isSuperExpression(statement.expression.expression, typescript)) {
            continue;
        }
        evaluate.statement(statement, localLexicalEnvironment);
        // Check if a 'break', 'continue', or 'return' statement has been encountered, break the block
        if (pathInLexicalEnvironmentEquals(node, localLexicalEnvironment, true, BREAK_SYMBOL, CONTINUE_SYMBOL, RETURN_SYMBOL)) {
            break;
        }
    }
}
/**
 * Evaluates, or attempts to evaluate, a Block
 */
Evaluates, or attempts to evaluate, a Block
Evaluates or attempts to evaluate a Block
function evaluateBlock({ node, environment, typescript, evaluate }) {
    const localLexicalEnvironment = cloneLexicalEnvironment(environment);
    for (let i = 0; i < node.statements.length; i++) {
        const statement = node.statements[i];
        if (typescript.isConstructorDeclaration(node.parent) &&
            i === 0 &&
            typescript.isExpressionStatement(statement) &&
            typescript.isCallExpression(statement.expression) &&
            isSuperExpression(statement.expression.expression, typescript)) {
            continue;
        }
        evaluate.statement(statement, localLexicalEnvironment);
        if (pathInLexicalEnvironmentEquals(node, localLexicalEnvironment, true, BREAK_SYMBOL, CONTINUE_SYMBOL, RETURN_SYMBOL)) {
            break;
        }
    }
}
function evaluateBlock ( { node , environment , typescript , evaluate } ) { const localLexicalEnvironment = cloneLexicalEnvironment ( environment ) ; for ( let i = 0 ; i < node . statements . length ; i ++ ) { const statement = node . statements [ i ] ; if ( typescript . isConstructorDeclaration ( node . parent ) && i === 0 && typescript . isExpressionStatement ( statement ) && typescript . isCallExpression ( statement . expression ) && isSuperExpression ( statement . expression . expression , typescript ) ) { continue ; } evaluate . statement ( statement , localLexicalEnvironment ) ; if ( pathInLexicalEnvironmentEquals ( node , localLexicalEnvironment , true , BREAK_SYMBOL , CONTINUE_SYMBOL , RETURN_SYMBOL ) ) { break ; } } }
Evaluates, or attempts to evaluate, a Block
Evaluates or attempts to evaluate a Block
// Prepare a lexical environment for the Block context // Don't execute 'super()' within Constructor Blocks since this is handled in another level // Check if a 'break', 'continue', or 'return' statement has been encountered, break the block