improve iterDep related bottlenecks 

...des in other evergreen browsers

1. don’t enumerate keys, if no deps exist to produce keys
2. in v8 for (x in y) where y is non enumerable deopts entire function [readmore](https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#5-for-in)
3. if no deps exists, don't bother iterated the deps... (big win)

TL;DR this reduces the cost of iterDeps by 30%-40% but then also drastically reduces it's usage.
its what we did before