findThreadDescendants.js first run
findThreadDescendants.js second run
findThreadDescendants.js third run
skip descendants that have already been recorded