I prefer the clarity of knowing that it's only targeting enumerables. I don't sacrifice clarity for brevity. If you see me doing something that LOOKS like sacrificing clarity -- like array instead of Object -- look deeper as there's probably another reason I went that route.
__makeParent is the parent tag of the make ROUTINE. You're right, we're not making anything there, that's not what it means in this case. It tracks the parent element -- irregardless of placement -- it was __make FROM. __makeParent does not, is not, nor should be confused with Element.parentNode.
I would have thought that was clear... I guess not? I'll toss that on my to-do list as something to consider renaming to better indicate that it's the parent from which __make was called, NOT the parentNode which is something different entirely.
I might drop it to a normal enumerable mutable property just to have Document.__make delete it entirely so it doesn't exist outside the script since again, it's internal tracking and should not be called by dev's just using the library.
Again though, it's the parent from which Element.__make called document.__make... which means it is STILL the parent in that circumstance having NOTH?ING to do with the DOM structure / parentNode.
Maybe the word "origin" would be a better choice so as to reduce confusion?
The use of = false is there becasue firefuxxors sets it to false, not zero when the timeout runs, and gets confused otherwise.
And checking the size of a Map or Set is an expensive operation. Checking a boolean vs. pointer to the timeout routine (aka what setTimeout really creates) is not.
Never heard of "avoid checking sizes of pointer driven lists?"
there's a reason people:
for (let i = 0; iLen = myArray.length; i < iLen; i++)
So it's not called on every blasted compare.