From ba55afb30e402e0e930f8c0d025fa6bec1d052e1 Mon Sep 17 00:00:00 2001 From: Maksim Ryzhikov Date: Sat, 28 May 2016 18:30:21 +0300 Subject: [PATCH] fix(client): does not throws an error for non DOM object that has `tagName` property fixes #2139 --- client/stringify.js | 5 ++++- test/client/stringify.spec.js | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/client/stringify.js b/client/stringify.js index ed83c40e2..327ec295a 100644 --- a/client/stringify.js +++ b/client/stringify.js @@ -1,5 +1,8 @@ var serialize = require('dom-serialize') var instanceOf = require('./util').instanceOf +var isNode = function (obj) { + return (obj.tagName || obj.nodeName) && obj.nodeType +} var stringify = function stringify (obj, depth) { if (depth === 0) { @@ -38,7 +41,7 @@ var stringify = function stringify (obj, depth) { return '' } else if (obj.outerHTML) { return obj.outerHTML - } else if (obj.tagName || obj.nodeName) { + } else if (isNode(obj)) { return serialize(obj) } else { var constructor = 'Object' diff --git a/test/client/stringify.spec.js b/test/client/stringify.spec.js index ecd44d4b4..a48d571be 100644 --- a/test/client/stringify.spec.js +++ b/test/client/stringify.spec.js @@ -89,4 +89,8 @@ describe('stringify', function () { assert.deepEqual(__karma__.stringify([1, 2]), '[1, 2]') }) + + it('should stringify object with property tagName as Object', function () { + assert(stringify({tagName: 'a'}).indexOf("{tagName: 'a'}") > -1) + }) })