diff --git a/src/core/h.js b/src/core/h.js index 04bb4ed42..d853c1e7b 100644 --- a/src/core/h.js +++ b/src/core/h.js @@ -2,6 +2,22 @@ BI.Fragment = function () { }; BI.h = function (type, props, children) { + if (children != null) { + if (!BI.isArray(children)) { + children = [children]; + } + } else { + children = []; + } + if (arguments.length > 3) { + for (var i = 3; i < arguments.length; i++) { + if (BI.isArray(arguments[i])) { + children = children.concat(arguments[i]); + } else { + children.push(arguments[i]); + } + } + } if (type === BI.Fragment) { return children; } @@ -10,11 +26,10 @@ BI.h = function (type, props, children) { } if (type === "el") { return BI.extend({ - el: BI.isArray(children) ? children[0] : children + el: children[0] }, props); } return BI.extend({ type: type, - items: BI.isArray(children) ? children : [children] - }, props); + }, children.length > 0 ? {items: children} : {}, props); }; \ No newline at end of file