Seeing this (especially with destructuring), though, it makes me wish that there was a way for an object to expressly rewrite the data operator, sort of how toString() can be used.
let obj = { *[Symbol.iterator]() { for (let i = 0; i < 3; ++i) yield i; }};for (let n of obj) console.log(n);
123