Actually, getFilteredClientRects was originally intended to be used primarily for the fillerRange to get a fillerRect. We no longer do that, so I think I can remove that function, and by extension acceptNode, getFilteredBoundingClientRect, etc, since for the firstRange and lastRange (which are really zero-length ranges as position markers), getClientRects()[0] should suffice. Will lead to much cleaner, shorter, and faster code.