juliangruber/array-filter — pull request #1 by substack (2013-12-25 00:18:25+00:00)
Title: check hasOwnProperty() to skip over holes

The built-in `Array.prototype.filter()` skips over holes:

```
> Array(5).filter(function (x) { return true })
[]
```

but in a non-es5 browser, this module will not skip over the holes:

```
> var xs = new Array(5); xs.filter = undefined; require('./')(xs, function (x) { return true })
[ undefined,
undefined,
undefined,
undefined,
undefined ]
```

this patch checks `hasOwnProperty()` before traversing so that the non-es5 shim behaves like the es5 version.