code: function isWhitespaceNode(node) {
  	return node
  		&& node.nodeType == Node.TEXT_NODE
  		&& (node.data == ""
  		|| (
  			/^[\t\n\r ]+$/.test(node.data)
  			&& node.parentNode
  			&& node.parentNode.nodeType == Node.ELEMENT_NODE
  			&& ["normal", "nowrap"].indexOf(getComputedStyle(node.parentNode).whiteSpace) != -1
  		) || (
  			/^[\t\r ]+$/.test(node.data)
  			&& node.parentNode
  			&& node.parentNode.nodeType == Node.ELEMENT_NODE
  			&& getComputedStyle(node.parentNode).whiteSpace == "pre-line"
  		));
  }
docs: "A whitespace node is either a Text node whose data is the empty string; or a Text node whose data consists only of one or more tabs (0x0009), line feeds (0x000A), carriage returns (0x000D), and/or spaces (0x0020), and whose parent is an Element whose resolved value for "white-space" is "normal" or "nowrap"; or a Text node whose data consists only of one or more tabs (0x0009), carriage returns (0x000D), and/or spaces (0x0020), and whose parent is an Element whose resolved value for "white-space" is "pre-line"."