From 85b9324e22229445e2458cf78455490bdf017a62 Mon Sep 17 00:00:00 2001 From: bekzod Date: Thu, 31 Jan 2019 11:14:30 +0500 Subject: [PATCH] don't allocate array when object empty in ObjectIterator --- .../@ember/-internals/glimmer/lib/utils/iterable.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/utils/iterable.ts b/packages/@ember/-internals/glimmer/lib/utils/iterable.ts index ca5cab2361d..75d4636c060 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/iterable.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/iterable.ts @@ -120,17 +120,15 @@ class EmberArrayIterator extends BoundedIterator { class ObjectIterator extends BoundedIterator { static fromIndexable(obj: Indexable, keyFor: KeyFor): OpaqueIterator { let keys = Object.keys(obj); - let values: Opaque[] = []; - let { length } = keys; - for (let i = 0; i < length; i++) { - values.push(get(obj, keys[i])); - } - if (length === 0) { return EMPTY_ITERATOR; } else { + let values: Opaque[] = []; + for (let i = 0; i < length; i++) { + values.push(get(obj, keys[i])); + } return new this(keys, values, length, keyFor); } }