const { log } = console; Number.prototype[Symbol.iterator] = function () { let i = 0; const end = this; return { next() { return { value: i++, done: i > end, }; }, }; }; // for-of for (i of 2) { log(i); } // array-destructuring const [, a] = 10; log(a) // spread operator const a = [...10] log(a) // rest parameters function test(...a){ log(a) } test(...3)