oozcitak / xmlbuilder-js

An XML builder for node.js
MIT License
917 stars 108 forks source link

Object created through Object.create(null) causes TypeError #176

Closed sevlyar closed 6 years ago

sevlyar commented 6 years ago

xmlbuilder version is 9.0.4

This code causes TypeError:

const xmlbuilder = require('xmlbuilder');
const plain = Object.create(null);
plain.field = 1;
xmlbuilder.begin().ele({ test: plain }).end();
TypeError: name.valueOf is not a function
    at XMLElement.module.exports.XMLNode.element (.../node_modules/xmlbuilder/lib/XMLNode.js:55:21)
    at XMLDocument.module.exports.XMLNode.element (.../node_modules/xmlbuilder/lib/XMLNode.js:85:23)
    at XMLDocument.module.exports.XMLNode.ele (.../node_modules/xmlbuilder/lib/XMLNode.js:357:19)

This is due to xmlbuilder uses .valueOf method but objects created through Object.create(null) don't have the method because they don't inherit Object.