diff --git a/lib/source-code/source-code.js b/lib/source-code/source-code.js index 3ebff96d236..8a669095949 100644 --- a/lib/source-code/source-code.js +++ b/lib/source-code/source-code.js @@ -78,6 +78,18 @@ function sortedMerge(tokens, comments) { return result; } +/** + * Determines if two nodes or tokens overlap. + * @param {ASTNode|Token} first The first node or token to check. + * @param {ASTNode|Token} second The second node or token to check. + * @returns {boolean} True if the two nodes or tokens overlap. + * @private + */ +function nodesOrTokensOverlap(first, second) { + return (first.range[0] <= second.range[0] && first.range[1] >= second.range[0]) || + (second.range[0] <= first.range[0] && second.range[1] >= first.range[0]); +} + //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ @@ -421,16 +433,13 @@ class SourceCode extends TokenStore { * @public */ isSpaceBetweenTokens(first, second) { - - // Arguments are overlapping. - if (first.range[0] <= second.range[0] && first.range[1] >= second.range[0] || - second.range[0] <= first.range[0] && second.range[1] >= first.range[0]) { + if (nodesOrTokensOverlap(first, second)) { return false; } - const nodesAreReversed = second.range[1] <= first.range[0]; - const startingNodeOrToken = nodesAreReversed ? second : first; - const endingNodeOrToken = nodesAreReversed ? first : second; + const [startingNodeOrToken, endingNodeOrToken] = first.range[1] <= second.range[0] + ? [first, second] + : [second, first]; const firstToken = this.getLastToken(startingNodeOrToken) || startingNodeOrToken; const finalToken = this.getFirstToken(endingNodeOrToken) || endingNodeOrToken; let currentToken = firstToken;