var i, bool, ifnot, filter, value; if(this.type == "or"){ for(i = 0; bool = this.bools[i]; i++){ ifnot = bool[0]; filter = bool[1]; value = filter.resolve(context); if((value && !ifnot) || (ifnot && !value)){ if(this.falses){ buffer = this.falses.unrender(context, buffer); } return (this.trues) ? this.trues.render(context, buffer, this) : buffer; } } if(this.trues){ buffer = this.trues.unrender(context, buffer); } return (this.falses) ? this.falses.render(context, buffer, this) : buffer; }else{ for(i = 0; bool = this.bools[i]; i++){ ifnot = bool[0]; filter = bool[1]; value = filter.resolve(context); // If we ever encounter a false value if(value == ifnot){ if(this.trues){ buffer = this.trues.unrender(context, buffer); } return (this.falses) ? this.falses.render(context, buffer, this) : buffer; } } if(this.falses){ buffer = this.falses.unrender(context, buffer); } return (this.trues) ? this.trues.render(context, buffer, this) : buffer; } return buffer;