diff --git a/lib/rules/indent.js b/lib/rules/indent.js index 7bcad6eeb126..b15ed88e6021 100644 --- a/lib/rules/indent.js +++ b/lib/rules/indent.js @@ -136,6 +136,7 @@ class BinarySearchTree { */ constructor() { this._rbTree = new OrderedMap(); + this._rbTreeEnd = this._rbTree.end(); } /** @@ -172,10 +173,19 @@ class BinarySearchTree { return; } const iterator = this._rbTree.lowerBound(start); - const endIterator = this._rbTree.end(); - while (!iterator.equals(endIterator) && iterator.pointer[0] < end) { - this._rbTree.eraseElementByIterator(iterator); + if (iterator.equals(this._rbTreeEnd)) { + return; + } + + if (end > this._rbTree.back()[0]) { + while (!iterator.equals(this._rbTreeEnd)) { + this._rbTree.eraseElementByIterator(iterator); + } + } else { + while (iterator.pointer[0] < end) { + this._rbTree.eraseElementByIterator(iterator); + } } } }