diff --git a/src/core/instance/render-helpers/render-list.js b/src/core/instance/render-helpers/render-list.js index abe99db4d6d..cdb9e86a03c 100644 --- a/src/core/instance/render-helpers/render-list.js +++ b/src/core/instance/render-helpers/render-list.js @@ -26,10 +26,25 @@ export function renderList ( } } else if (isObject(val)) { keys = Object.keys(val) - ret = new Array(keys.length) - for (i = 0, l = keys.length; i < l; i++) { - key = keys[i] - ret[i] = render(val[key], key, i) + if (keys.length === 0 && val.toString().indexOf('Iterator') > -1) { + ret = [] + i = 0 + while (true) { + if (typeof val.next !== 'function') { + break + } + const next = val.next() + if (next.done) { + break + } + ret.push(render(next.value, i++)) + } + } else { + ret = new Array(keys.length) + for (i = 0, l = keys.length; i < l; i++) { + key = keys[i] + ret[i] = render(val[key], key, i) + } } } if (isDef(ret)) {