lib/rules/padding-line-between-statements.js
function isBlockLikeStatement(sourceCode, node) {

    // do-while with a block is a block-like statement.
    if (node.type === "DoWhileStatement" && node.body.type === "BlockStatement") {
        return true;
    }

    /*
     * IIFE is a block-like statement specially from
     * JSCS#disallowPaddingNewLinesAfterBlocks.
     */
    if (isIIFEStatement(node)) {
        return true;
    }

    // Checks the last token is a closing brace of blocks.
    const lastToken = sourceCode.getLastToken(node, astUtils.isNotSemicolonToken);
    const belongingNode = lastToken && astUtils.isClosingBraceToken(lastToken)
        ? sourceCode.getNodeByRangeIndex(lastToken.range[0])
        : null;

    return Boolean(belongingNode) && (
        belongingNode.type === "BlockStatement" ||
        belongingNode.type === "SwitchStatement"
    );
}
function isBlockLikeStatement(sourceCode, node) {

    // do-while with a block is a block-like statement.
    if (node.type === "DoWhileStatement" && node.body.type === "BlockStatement") {
        return true;
    }

    /*
     * IIFE is a block-like statement specially from
     * JSCS#disallowPaddingNewLinesAfterBlocks.
     */
    if (isIIFEStatement(node)) {
        return true;
    }

    // Checks the last token is a closing brace of blocks.
    const lastToken = sourceCode.getLastToken(node, astUtils.isNotSemicolonToken);
    const belongingNode = lastToken && astUtils.isClosingBraceToken(lastToken)
        ? sourceCode.getNodeByRangeIndex(lastToken.range[0])
        : null;

    return Boolean(belongingNode) && (
        belongingNode.type === "BlockStatement" ||
        belongingNode.type === "SwitchStatement"
    );
}
function isBlockLikeStatement ( sourceCode , node ) { // do-while with a block is a block-like statement. if ( node . type === "DoWhileStatement" && node . body . type === "BlockStatement" ) { return true ; } /*
     * IIFE is a block-like statement specially from
     * JSCS#disallowPaddingNewLinesAfterBlocks.
     */ if ( isIIFEStatement ( node ) ) { return true ; } // Checks the last token is a closing brace of blocks. const lastToken = sourceCode . getLastToken ( node , astUtils . isNotSemicolonToken ) ; const belongingNode = lastToken && astUtils . isClosingBraceToken ( lastToken ) ? sourceCode . getNodeByRangeIndex ( lastToken . range [ 0 ] ) : null ; return Boolean ( belongingNode ) && ( belongingNode . type === "BlockStatement" || belongingNode . type === "SwitchStatement" ) ; }
Checks whether the given node is a block-like statement.
This checks the last token of the node is the closing brace of a block.

@param {SourceCode} sourceCode The source code to get tokens.
@param {ASTNode} node The node to check.
@returns {boolean} `true` if the node is a block-like statement.
@private
Checks whether the given node is a block - like statement . This checks the last token of the node is the closing brace of a block .