> I think it is fine. The spec uses a while and next and no for-of, and since for-of calls iterable[Symbol.iterator]() we are doing that work twice.

That's beside the point. The issue I have is that this won't throw the expected TypeError by silently ignoring the erroneous object passed to Set or Map