'use strict'; var Node = require('./Node'); function removeWhitespaceNodes(whitespaceNodes) { for (var i=0; i { if (curNode.type === 'Else') { curNode.detach(); if (whitespaceNodes.length) { removeWhitespaceNodes(whitespaceNodes); } previous.else = curNode; curNode.matched = true; return false; // Stop searching } else if (curNode.type === 'ElseIf') { curNode.detach(); if (whitespaceNodes.length) { removeWhitespaceNodes(whitespaceNodes); } previous.else = curNode; previous = curNode; curNode.matched = true; return true; // Keep searching since they may be more ElseIf/Else nodes... } else if (curNode.type === 'TextOutput') { if (curNode.isWhitespace()) { whitespaceNodes.push(curNode); return true; // Just whitespace... keep searching } else { return false; // Stop searching } } else { return false; // Stop searching } }); } var test = this.test; var body = this.body; generator.write('if ('); generator.generateCode(test); generator.write(') '); generator.generateBlock(body); if (this.else) { generator.write(' '); generator.generateCode(this.else); } else { generator.write('\n'); } } appendChild(newChild) { this.body.appendChild(newChild); } } module.exports = If;