Update Array.prototype.reduce

- calculate previous value
- support array-like objects
- test array-like objects