diff --git a/packages/ember-htmlbars/lib/helpers/each-in.js b/packages/ember-htmlbars/lib/helpers/each-in.js
index 7d74300f184..1c4a70185ce 100644
--- a/packages/ember-htmlbars/lib/helpers/each-in.js
+++ b/packages/ember-htmlbars/lib/helpers/each-in.js
@@ -1,18 +1,14 @@
import isEnabled from "ember-metal/features";
+import keys from "ember-metal/keys";
+import shouldDisplay from "ember-views/streams/should_display";
if (isEnabled('ember-htmlbars-each-in')) {
- var shouldDisplay = function(object) {
- if (object === undefined || object === null) {
- return false;
- }
-
- return true;
- };
-
var eachInHelper = function([ object ], hash, blocks) {
- if (shouldDisplay(object)) {
- for (var prop in object) {
- if (!object.hasOwnProperty(prop)) { continue; }
+ var objKeys, prop, i;
+ objKeys = object ? keys(object) : [];
+ if (shouldDisplay(objKeys)) {
+ for (i = 0; i < objKeys.length; i++) {
+ prop = objKeys[i];
blocks.template.yieldItem(prop, [prop, object[prop]]);
}
} else if (blocks.inverse.yield) {