Skip to content

Commit 1f73be4

Browse files
fix(client): serialise DOM objects
DOM elements and nodes are now serialised using dom-serrialize. Closes #1106
1 parent cc15dc4 commit 1f73be4

File tree

4 files changed

+12
-1
lines changed

4 files changed

+12
-1
lines changed

client/stringify.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
var serialize = require('dom-serialize')
12
var instanceOf = require('./util').instanceOf
23

34
var stringify = function stringify (obj, depth) {
@@ -37,6 +38,8 @@ var stringify = function stringify (obj, depth) {
3738
return '<!--' + obj.nodeValue + '-->'
3839
} else if (obj.outerHTML) {
3940
return obj.outerHTML
41+
} else if (obj.tagName || obj.nodeName) {
42+
return serialize(obj)
4043
} else {
4144
var constructor = 'Object'
4245
if (obj.constructor && typeof obj.constructor === 'function') {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@
205205
"connect": "^3.3.5",
206206
"core-js": "^0.9.17",
207207
"di": "^0.0.1",
208+
"dom-serialize": "^2.2.0",
208209
"expand-braces": "^0.1.1",
209210
"glob": "^5.0.10",
210211
"graceful-fs": "^3.0.6",

test/client/.eslintrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"env": {
3-
"jasmine": true
3+
"jasmine": true,
4+
"browser": true
45
}
56
}

test/client/stringify.spec.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ describe('stringify', function () {
6161
expect(stringify(div)).to.be.eql('<div>some <span>text</span></div>')
6262
})
6363

64+
it('should serialize DOMParser objects', function () {
65+
var parser = new DOMParser()
66+
var doc = parser.parseFromString('<test></test>', 'application/xml')
67+
expect(stringify(doc)).to.be.eql('<test></test>')
68+
})
69+
6470
it('should serialize across iframes', function () {
6571
var div = document.createElement('div')
6672
expect(__karma__.stringify(div)).to.be.eql('<div></div>')

0 commit comments

Comments
 (0)