Template
Sqrl.Compile()
function anonymous(options,Sqrl
) {
var tR='';tR+='Hi\n';console.log("Hope you like Squirrelly!");tR+=Sqrl.F.e(options.htmlstuff);for(var key in options.obj){if(!options.obj.hasOwnProperty(key)) continue;tR+=(function(hvals){var tR='';var hvals0=hvals;tR+='\nReversed value: ';tR+=Sqrl.F.reverse(Sqrl.F.e(hvals.this));tR+=', Key: ';tR+=Sqrl.F.e(hvals.key);if(hvals.key==="thirdchild"){for(var i=0;i<options.obj[hvals.key].length; i++){tR+=(function(hvals){var tR='';var hvals2=hvals;tR+='\nSalutations! Index: ';tR+=Sqrl.F.e(hvals.index);tR+=', old key: ';tR+=Sqrl.F.e(hvals0.key);return tR})({this:options.obj[hvals.key][i],index:i})};}return tR})({this:options.obj[key], key: key})};tR+='\n';tR+=Sqrl.H.customhelper([],function(hvals){var hvals3=hvals;var tR='';return tR},{cabbage:function(hvals){var hvals3=hvals;var tR='';tR+='Cabbages taste good\n';return tR},pineapple:function(hvals){var hvals3=hvals;var tR='';tR+='As do pineapples\n';return tR}});tR+='\nThis is a partial: ';tR+='Partial content: the value of arr is ';tR+=Sqrl.F.e(options.arr);tR+='\nCustom delimeters!\n';tR+=Sqrl.F.e(options.arr);return tR
}
Data
Result
Hi
<script>alert('hey')</script><p>alert('hey')</p><p>alert('hey')</p><p>alert('hey')</p>
Reversed value: IH, Key: firstchild
Reversed value: YEH, Key: secondchild
Reversed value: 4,5,2,3,6,3, Key: thirdchild
Salutations! Index: 0, old key: thirdchild
Salutations! Index: 1, old key: thirdchild
Salutations! Index: 2, old key: thirdchild
Salutations! Index: 3, old key: thirdchild
Salutations! Index: 4, old key: thirdchild
Salutations! Index: 5, old key: thirdchild
Custom Helper speaking!
Block found named cabbage, with value: Cabbages taste good
Block found named pineapple, with value: As do pineapples
This is a partial: Partial content: the value of arr is Hey,<p>Malicious XSS</p>,Hey,3,12
Custom delimeters!
Hey,<p>Malicious XSS</p>,Hey,3,12