Iterator function doesn't accept the arguments object.

Currently the implementation of the iterator protocol doesn't accept an Arguments object.

Testcase:
```javascript
function test() {
    console.log(...arguments);
}
test(1, 2, 3); // => should print "1 2 3"
```

This PR is one solution to the problem. I would have updated the tests, but there are too many to do by hand.