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 Sep 28, 2018
1 parent 8fccfe3 commit e92e660
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 e92e660

Please sign in to comment.