// Generated by CoffeeScript 2.4.1 (function() { // Represents a map of nodes accessed by a string key var XMLNamedNodeMap; module.exports = XMLNamedNodeMap = (function() { class XMLNamedNodeMap { // Initializes a new instance of `XMLNamedNodeMap` // This is just a wrapper around an ordinary // JS object. // `nodes` the object containing nodes. constructor(nodes) { this.nodes = nodes; } // Creates and returns a deep clone of `this` clone() { // this class should not be cloned since it wraps // around a given object. The calling function should check // whether the wrapped object is null and supply a new object // (from the clone). return this.nodes = null; } // DOM Level 1 getNamedItem(name) { return this.nodes[name]; } setNamedItem(node) { var oldNode; oldNode = this.nodes[node.nodeName]; this.nodes[node.nodeName] = node; return oldNode || null; } removeNamedItem(name) { var oldNode; oldNode = this.nodes[name]; delete this.nodes[name]; return oldNode || null; } item(index) { return this.nodes[Object.keys(this.nodes)[index]] || null; } // DOM level 2 functions to be implemented later getNamedItemNS(namespaceURI, localName) { throw new Error("This DOM method is not implemented."); } setNamedItemNS(node) { throw new Error("This DOM method is not implemented."); } removeNamedItemNS(namespaceURI, localName) { throw new Error("This DOM method is not implemented."); } }; // DOM level 1 Object.defineProperty(XMLNamedNodeMap.prototype, 'length', { get: function() { return Object.keys(this.nodes).length || 0; } }); return XMLNamedNodeMap; }).call(this); }).call(this);