Skip to content

Commit

Permalink
(breaking) Throw errors when invalid entities are encountered.
Browse files Browse the repository at this point in the history
This is more in line with standard XML parsers.
  • Loading branch information
Erik Mogensen committed Oct 1, 2018
1 parent 768df16 commit 4765f56
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
5 changes: 4 additions & 1 deletion lib/escape.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,10 @@ function unescapeXMLReplace (match) {
}
throw new Error('Illegal XML character 0x' + num.toString(16))
}
return unescapeXMLTable[match] || match
if (unescapeXMLTable[match]) {
return unescapeXMLTable[match] || match
}
throw new Error('Illegal XML entity ' + match)
}

exports.escapeXML = function escapeXML (s) {
Expand Down
4 changes: 2 additions & 2 deletions test/escape-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ vows.describe('escape').addBatch({
'unescapes \'': function () {
assert.strictEqual(unescapeXML('''), '\'')
},
'leaves invalid entities alone': function () {
assert.strictEqual(unescapeXML('&foobar;'), '&foobar;')
'throws on invalid entities': function () {
assert.throws(() => unescapeXML('&foobar;'), Error, 'Illegal XML entity &foobar;')
},
'unescapes numeric entities': function () {
assert.strictEqual(unescapeXML('@'), '@')
Expand Down

0 comments on commit 4765f56

Please sign in to comment.