I was looking at a perf benchmark of `Object.keys` + `forEach` vs `for-in` with normal objects.

[This](http://jsperf.com/for-in-versus-object-keys-foreach) benchmark shows that `Object.keys` + `forEach` is **62% slower** than the `for-in` approach. But what if you don't want to get the *inherited properties*? `for-in` includes all non-native inherited objects, so we'll have to use *hasOwnProperty* to check.

I tried to make another [**benchmark here**](http://jsperf.com/object-keys-foreach-vs-for-in-hasownproperty) doing exactly that. But now the `for-in` approach is **41% slower** than `Object.keys` + `forEach`.

---

*update*

The above test was done in Chrome. Tested it again but with Safari and I'm getting different results: `Object.keys(..).forEach(..) 34% slower`, odd.

> 
> Note: The reason I'm benchmarking is to check how it is with **Node.js**. 
> 
> 
> 

Questions:

* Are the `jsperf` result for *Chrome* considerable for **Node.js**?
* What happened, how come a single conditional made the `for-in` approach **41% slower** than `Object.keys` + `forEach` in *Chrome*?