what happens if `start` becomes a negative number? I think we should do `Math.max(arr.length + start, 0)`. http://es5.github.io/#x15.4.4.10