diff --git a/mithril.js b/mithril.js index d637cd7c..b8712c7e 100644 --- a/mithril.js +++ b/mithril.js @@ -48,8 +48,6 @@ var m = (function app(window, undefined) { cell.attrs[pair[1]] = pair[3] || (pair[2] ? "" :true) } } - if (classes.length > 0) cell.attrs[classAttrName] = classes.join(" "); - var children = hasAttrs ? args.slice(2) : args.slice(1); if (children.length === 1 && type.call(children[0]) === ARRAY) { @@ -60,12 +58,13 @@ var m = (function app(window, undefined) { } for (var attrName in attrs) { - if (attrName === classAttrName) { - var className = cell.attrs[attrName] - cell.attrs[attrName] = (className && attrs[attrName] ? className + " " : className || "") + attrs[attrName]; + if (attrName === classAttrName && attrs[attrName] != null && attrs[attrName] !== "") { + classes.push(attrs[attrName]) } else cell.attrs[attrName] = attrs[attrName] } + if (classes.length > 0) cell.attrs[classAttrName] = classes.join(" "); + return cell } function build(parentElement, parentTag, parentCache, parentIndex, data, cached, shouldReattach, index, editable, namespace, configs) { diff --git a/tests/mithril-tests.js b/tests/mithril-tests.js index b29053ad..675ac229 100644 --- a/tests/mithril-tests.js +++ b/tests/mithril-tests.js @@ -1777,6 +1777,13 @@ function testMithril(mock) { var after = root.childNodes[0].childNodes[3] return before === after }) + test(function() { + var root = mock.document.createElement("div") + var vdom = m("div.a", {class: undefined}) + console.log(vdom) + m.render(root, vdom) + return root.childNodes[0].class == "a" + }) //end m.render //m.redraw