From 98e3cbdc696ee038a13f4cfc9240de0e9de52e24 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Gerardy Date: Tue, 4 Apr 2017 12:20:14 +0200 Subject: [PATCH] Revert attrs.class creation logic to what we had in v1.0.1. fix #1764 --- render/hyperscript.js | 4 +- render/tests/test-hyperscript.js | 102 +++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+), 2 deletions(-) diff --git a/render/hyperscript.js b/render/hyperscript.js index ece288fc..3d4b21e4 100644 --- a/render/hyperscript.js +++ b/render/hyperscript.js @@ -34,8 +34,8 @@ function execSelector(state, attrs, children) { } } - if (className != null) { - if (attrs.class != null) { + if (className !== undefined) { + if (attrs.class !== undefined) { attrs.class = undefined attrs.className = className } diff --git a/render/tests/test-hyperscript.js b/render/tests/test-hyperscript.js index cf0b3155..3ef03358 100644 --- a/render/tests/test-hyperscript.js +++ b/render/tests/test-hyperscript.js @@ -16,6 +16,108 @@ o.spec("hyperscript", function() { o(vnode.tag).equals("a") }) + o("v1.0.1 bug-for-bug regression suite", function(){ + o + console.log(m('a', { + class: null + }).attrs, { + class: undefined, + className: null + }) + o(m('a', { + class: null + }).attrs).deepEquals({ + class: undefined, + className: null + }) + o(m('a', { + class: undefined + }).attrs).deepEquals({ + class: undefined, + }) + o(m('a', { + class: false + }).attrs).deepEquals({ + class: undefined, + className: false + }) + o(m('a', { + class: true + }).attrs).deepEquals({ + class: undefined, + className: true + }) + console.log(m('a.x', { + class: null + }).attrs, { + class: undefined, + className: "x null" + }) + o(m('a.x', { + class: null + }).attrs).deepEquals({ + class: undefined, + className: "x null" + }) + o(m('a.x', { + class: undefined + }).attrs).deepEquals({ + class: undefined, + className: "x" + }) + o(m('a.x', { + class: false + }).attrs).deepEquals({ + class: undefined, + className: "x false" + }) + o(m('a.x', { + class: true + }).attrs).deepEquals({ + class: undefined, + className: "x true" + }) + o(m('a', { + className: null + }).attrs).deepEquals({ + className: null + }) + o(m('a', { + className: undefined + }).attrs).deepEquals({ + className: undefined + }) + o(m('a', { + className: false + }).attrs).deepEquals({ + className: false + }) + o(m('a', { + className: true + }).attrs).deepEquals({ + className: true + }) + o(m('a.x', { + className: null + }).attrs).deepEquals({ + className: "x" + }) + o(m('a.x', { + className: undefined + }).attrs).deepEquals({ + className: "x" + }) + o(m('a.x', { + className: false + }).attrs).deepEquals({ + className: "x" + }) + o(m('a.x', { + className: true + }).attrs).deepEquals({ + className: "x true" + }) + }) o("handles class in selector", function() { var vnode = m(".a")