+tree_remove_empty_text_nodes = (tree) ->
+ empties = []
+ traverse_tree tree, (n) ->
+ if n.type is TYPE_TEXT
+ if n.text.length is 0
+ empties.unshift n
+ return false
+ for n in empties
+ # don't completely empty the tree
+ if tree.length is 1
+ if tree[0].type is TYPE_TEXT
+ console.log "oop, leaving a blank node because it's the only thing"
+ return
+ n.el.parentNode.removeChild n.el
+ for c, i in n.parent.children
+ if c is n
+ n.parent.children.splice i, 1
+ break
+