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) {