| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
							- // This object will be used as the prototype for Nodes when creating a
 
- // DOM-Level-1-compliant structure.
 
- var NodePrototype = module.exports = {
 
- 	get firstChild() {
 
- 		var children = this.children;
 
- 		return children && children[0] || null;
 
- 	},
 
- 	get lastChild() {
 
- 		var children = this.children;
 
- 		return children && children[children.length - 1] || null;
 
- 	},
 
- 	get nodeType() {
 
- 		return nodeTypes[this.type] || nodeTypes.element;
 
- 	}
 
- };
 
- var domLvl1 = {
 
- 	tagName: "name",
 
- 	childNodes: "children",
 
- 	parentNode: "parent",
 
- 	previousSibling: "prev",
 
- 	nextSibling: "next",
 
- 	nodeValue: "data"
 
- };
 
- var nodeTypes = {
 
- 	element: 1,
 
- 	text: 3,
 
- 	cdata: 4,
 
- 	comment: 8
 
- };
 
- Object.keys(domLvl1).forEach(function(key) {
 
- 	var shorthand = domLvl1[key];
 
- 	Object.defineProperty(NodePrototype, key, {
 
- 		get: function() {
 
- 			return this[shorthand] || null;
 
- 		},
 
- 		set: function(val) {
 
- 			this[shorthand] = val;
 
- 			return val;
 
- 		}
 
- 	});
 
- });
 
 
  |