diff --git a/mithril.js b/mithril.js index ddd94405..961b6746 100644 --- a/mithril.js +++ b/mithril.js @@ -60,7 +60,9 @@ var m = (function app(window, undefined) { } for (var attrName in attrs) { - if (attrName === classAttrName) cell.attrs[attrName] = (cell.attrs[attrName] || "") + " " + attrs[attrName]; + if (attrName === classAttrName) { + if (attrs[attrName] !== "") cell.attrs[attrName] = (cell.attrs[attrName] || "") + " " + attrs[attrName]; + } else cell.attrs[attrName] = attrs[attrName] } return cell diff --git a/tests/mithril-tests.js b/tests/mithril-tests.js index e926fb03..345670aa 100644 --- a/tests/mithril-tests.js +++ b/tests/mithril-tests.js @@ -28,6 +28,11 @@ function testMithril(mock) { test(function() {return m("svg", [m("a[href='http://google.com']")])}) test(function() {return m(".foo", {"class": "bar"}).attrs["class"] == "foo bar"}) test(function() {return m(".foo", {className: "bar"}).attrs.className == "foo bar"}) + test(function() {return m(".foo", {className: ""}).attrs.className == "foo"}) + test(function() {return m("div", {className: ""}).attrs.className === undefined}) //https://github.com/lhorie/mithril.js/issues/382 + test(function() {return m("div", {class: ""}).attrs.className === undefined}) + test(function() {return m("div", {className: ""}).attrs.class === undefined}) + test(function() {return m("div", {class: ""}).attrs.class === undefined}) //m.module test(function() {