Blame view

node_modules/domhandler/lib/node.js 915 Bytes
f7563de62   Palak Handa   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  // 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;
  		}
  	});
  });