I discarded `d`, too.  Also, now we only precompute points if there are no bounds.  If we already have bounds we can just `points.forEach(root.add)` as before.