title: Is a JavaScript array iterator itself iterable according to ES6?
body: <p>The following works on the JavaScript runtimes I've checked (Node.js and Firefox):</p>
  
  <pre><code>let xs = [0, 1, 2]
  let it = xs[Symbol.iterator]()
  for (let x of it) console.log(x)
  </code></pre>
  
  <p>This works because the <code>it</code> iterator is itself iterable, i.e. it has a <code>Symbol.iterator</code> property. One could presume this is because <code>Array.prototype[Symbol.iterator]</code> is implemented as a generator.</p>
  
  <p>My question is, can I <em>rely</em> on <code>it</code> being iterable? That is, is it required by the spec?</p>
  
  <p>I've looked (<a href="https://www.ecma-international.org/ecma-262/6.0/#sec-createarrayiterator" rel="nofollow noreferrer">this</a> is the relevant part, I think) and I can't find anything that says that an array iterator should be iterable, or that it must be implemented with a generator.</p>