Is the arguments object supposed to be an iterable in ES6? : <p>In ES6, I was trying to use the <code>arguments</code> object as an iterable when passed to the <code>Set</code> constructor.  It works fine in IE11 and in Chrome 47.  It does not work in Firefox 43 (throws a <code>TypeError: arguments is not iterable</code>).  I've looked through the ES6 spec and cannot really find a definition of whether the <code>arguments</code> object should be an iterable or not.</p>

<p>Here's an example of what I was trying to do:</p>

<pre><code>function destroyer(arr) {
  var removes = new Set(arguments);
  return arr.filter(function(item) {
    return !removes.has(item);
  });
}

// remove items 2, 3, 5 from the passed in array
var result = destroyer([3, 5, 1, 2, 2], 2, 3, 5);
log(result);
</code></pre>

<p>FYI, I know there are various work-arounds for this code such as copying the arguments object into a real array or using rest arguments.  This question is about whether the <code>arguments</code> object is supposed to be an <code>iterable</code> or not in ES6 that can be used anywhere iterables are expected.</p>
