function getActualLastToken(sourceCode, node) {
	const semiToken = sourceCode.getLastToken(node);
	const prevToken = sourceCode.getTokenBefore(semiToken);
	const nextToken = sourceCode.getTokenAfter(semiToken);
	const isSemicolonLessStyle = Boolean(
		prevToken &&
			nextToken &&
			prevToken.range[0] >= node.range[0] &&
			astUtils.isSemicolonToken(semiToken) &&
			semiToken.loc.start.line !== prevToken.loc.end.line &&
			semiToken.loc.end.line === nextToken.loc.start.line,
	);

	return isSemicolonLessStyle ? prevToken : semiToken;
}
Gets the actual last token.

If a semicolon is semicolon-less style's semicolon, this ignores it.
For example:

    foo()
    ;[1, 2, 3].forEach(bar)
@param {SourceCode} sourceCode The source code to get tokens.
@param {ASTNode} node The node to get.
@returns {Token} The actual last token.
@private