Use a for...of loop to iterate over the values of the given iterable. Creates a generator that iterates over an iterable, flattening nested iterables. Use Symbol.iterator to check if each value is an iteration. If it is, use the yield* expression to recursively delegate to the same generator function.