happstack-yui-7373.5.2: bundle/handlebars-compiler/handlebars-compiler-coverage.js
/*
YUI 3.7.3 (build 5687)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
var coverage = _yuitest_coverage[src];
if (!coverage.lines[line]){
coverage.calledLines++;
}
coverage.lines[line]++;
};
_yuitest_coverfunc = function(src, name, line){
var coverage = _yuitest_coverage[src],
funcId = name + ":" + line;
if (!coverage.functions[funcId]){
coverage.calledFunctions++;
}
coverage.functions[funcId]++;
};
}
_yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"] = {
lines: {},
functions: {},
coveredLines: 0,
calledLines: 0,
coveredFunctions: 0,
calledFunctions: 0,
path: "build/handlebars-compiler/handlebars-compiler.js",
code: []
};
_yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"].code=["YUI.add('handlebars-compiler', function (Y, NAME) {","","/*!","Handlebars.js - Copyright (C) 2011 Yehuda Katz","https://raw.github.com/wycats/handlebars.js/master/LICENSE","*/","// This file contains code that will be inserted at the beginning of the","// handlebars-compiler module.","","// This is necessary because the Y.Handlebars object is created in the","// handlebars-base module, but the native Handlebars code expects to use a local","// Handlebars reference.","var Handlebars = Y.Handlebars;","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","/* Jison generated parser */","var handlebars = (function(){","var parser = {trace: function trace() { },","yy: {},","symbols_: {\"error\":2,\"root\":3,\"program\":4,\"EOF\":5,\"statements\":6,\"simpleInverse\":7,\"statement\":8,\"openInverse\":9,\"closeBlock\":10,\"openBlock\":11,\"mustache\":12,\"partial\":13,\"CONTENT\":14,\"COMMENT\":15,\"OPEN_BLOCK\":16,\"inMustache\":17,\"CLOSE\":18,\"OPEN_INVERSE\":19,\"OPEN_ENDBLOCK\":20,\"path\":21,\"OPEN\":22,\"OPEN_UNESCAPED\":23,\"OPEN_PARTIAL\":24,\"params\":25,\"hash\":26,\"param\":27,\"STRING\":28,\"INTEGER\":29,\"BOOLEAN\":30,\"hashSegments\":31,\"hashSegment\":32,\"ID\":33,\"EQUALS\":34,\"pathSegments\":35,\"SEP\":36,\"$accept\":0,\"$end\":1},","terminals_: {2:\"error\",5:\"EOF\",14:\"CONTENT\",15:\"COMMENT\",16:\"OPEN_BLOCK\",18:\"CLOSE\",19:\"OPEN_INVERSE\",20:\"OPEN_ENDBLOCK\",22:\"OPEN\",23:\"OPEN_UNESCAPED\",24:\"OPEN_PARTIAL\",28:\"STRING\",29:\"INTEGER\",30:\"BOOLEAN\",33:\"ID\",34:\"EQUALS\",36:\"SEP\"},","productions_: [0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]],","performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {","","var $0 = $$.length - 1;","switch (yystate) {","case 1: return $$[$0-1]; ","break;","case 2: this.$ = new yy.ProgramNode($$[$0-2], $$[$0]); ","break;","case 3: this.$ = new yy.ProgramNode($$[$0]); ","break;","case 4: this.$ = new yy.ProgramNode([]); ","break;","case 5: this.$ = [$$[$0]]; ","break;","case 6: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; ","break;","case 7: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]); ","break;","case 8: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]); ","break;","case 9: this.$ = $$[$0]; ","break;","case 10: this.$ = $$[$0]; ","break;","case 11: this.$ = new yy.ContentNode($$[$0]); ","break;","case 12: this.$ = new yy.CommentNode($$[$0]); ","break;","case 13: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); ","break;","case 14: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); ","break;","case 15: this.$ = $$[$0-1]; ","break;","case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); ","break;","case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true); ","break;","case 18: this.$ = new yy.PartialNode($$[$0-1]); ","break;","case 19: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1]); ","break;","case 20: ","break;","case 21: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]]; ","break;","case 22: this.$ = [[$$[$0-1]].concat($$[$0]), null]; ","break;","case 23: this.$ = [[$$[$0-1]], $$[$0]]; ","break;","case 24: this.$ = [[$$[$0]], null]; ","break;","case 25: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; ","break;","case 26: this.$ = [$$[$0]]; ","break;","case 27: this.$ = $$[$0]; ","break;","case 28: this.$ = new yy.StringNode($$[$0]); ","break;","case 29: this.$ = new yy.IntegerNode($$[$0]); ","break;","case 30: this.$ = new yy.BooleanNode($$[$0]); ","break;","case 31: this.$ = new yy.HashNode($$[$0]); ","break;","case 32: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; ","break;","case 33: this.$ = [$$[$0]]; ","break;","case 34: this.$ = [$$[$0-2], $$[$0]]; ","break;","case 35: this.$ = [$$[$0-2], new yy.StringNode($$[$0])]; ","break;","case 36: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])]; ","break;","case 37: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])]; ","break;","case 38: this.$ = new yy.IdNode($$[$0]); ","break;","case 39: $$[$0-2].push($$[$0]); this.$ = $$[$0-2]; ","break;","case 40: this.$ = [$$[$0]]; ","break;","}","},","table: [{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}],","defaultActions: {16:[2,1],37:[2,23],53:[2,21]},","parseError: function parseError(str, hash) {"," throw new Error(str);","},","parse: function parse(input) {"," var self = this,"," stack = [0],"," vstack = [null], // semantic value stack"," lstack = [], // location stack"," table = this.table,"," yytext = '',"," yylineno = 0,"," yyleng = 0,"," recovering = 0,"," TERROR = 2,"," EOF = 1;",""," //this.reductionCount = this.shiftCount = 0;",""," this.lexer.setInput(input);"," this.lexer.yy = this.yy;"," this.yy.lexer = this.lexer;"," this.yy.parser = this;"," if (typeof this.lexer.yylloc == 'undefined')"," this.lexer.yylloc = {};"," var yyloc = this.lexer.yylloc;"," lstack.push(yyloc);",""," if (typeof this.yy.parseError === 'function')"," this.parseError = this.yy.parseError;",""," function popStack (n) {"," stack.length = stack.length - 2*n;"," vstack.length = vstack.length - n;"," lstack.length = lstack.length - n;"," }",""," function lex() {"," var token;"," token = self.lexer.lex() || 1; // $end = 1"," // if token isn't its numeric value, convert"," if (typeof token !== 'number') {"," token = self.symbols_[token] || token;"," }"," return token;"," }",""," var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;"," while (true) {"," // retreive state number from top of stack"," state = stack[stack.length-1];",""," // use default actions if available"," if (this.defaultActions[state]) {"," action = this.defaultActions[state];"," } else {"," if (symbol === null || typeof symbol == 'undefined') {"," symbol = lex();"," }"," // read action for current state and first input"," action = table[state] && table[state][symbol];"," }",""," // handle parse error"," _handle_error:"," if (typeof action === 'undefined' || !action.length || !action[0]) {",""," var errStr = '';"," if (!recovering) {"," // Report error"," expected = [];"," for (p in table[state]) if (this.terminals_[p] && p > 2) {"," expected.push(\"'\"+this.terminals_[p]+\"'\");"," }"," if (this.lexer.showPosition) {"," errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + (this.terminals_[symbol] || symbol)+ \"'\";"," } else {"," errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +"," (symbol == 1 /*EOF*/ ? \"end of input\" :"," (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));"," }"," this.parseError(errStr,"," {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});"," }",""," // just recovered from another error"," if (recovering == 3) {"," if (symbol == EOF) {"," throw new Error(errStr || 'Parsing halted.');"," }",""," // discard current lookahead and grab another"," yyleng = this.lexer.yyleng;"," yytext = this.lexer.yytext;"," yylineno = this.lexer.yylineno;"," yyloc = this.lexer.yylloc;"," symbol = lex();"," }",""," // try to recover from error"," while (1) {"," // check for error recovery rule in this state"," if ((TERROR.toString()) in table[state]) {"," break;"," }"," if (state === 0) {"," throw new Error(errStr || 'Parsing halted.');"," }"," popStack(1);"," state = stack[stack.length-1];"," }",""," preErrorSymbol = symbol == 2 ? null : symbol; // save the lookahead token"," symbol = TERROR; // insert generic error symbol as new lookahead"," state = stack[stack.length-1];"," action = table[state] && table[state][TERROR];"," recovering = 3; // allow 3 real symbols to be shifted before reporting a new error"," }",""," // this shouldn't happen, unless resolve defaults are off"," if (action[0] instanceof Array && action.length > 1) {"," throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);"," }",""," switch (action[0]) {",""," case 1: // shift"," //this.shiftCount++;",""," stack.push(symbol);"," vstack.push(this.lexer.yytext);"," lstack.push(this.lexer.yylloc);"," stack.push(action[1]); // push state"," symbol = null;"," if (!preErrorSymbol) { // normal execution/no error"," yyleng = this.lexer.yyleng;"," yytext = this.lexer.yytext;"," yylineno = this.lexer.yylineno;"," yyloc = this.lexer.yylloc;"," if (recovering > 0)"," recovering--;"," } else { // error just occurred, resume old lookahead f/ before error"," symbol = preErrorSymbol;"," preErrorSymbol = null;"," }"," break;",""," case 2: // reduce"," //this.reductionCount++;",""," len = this.productions_[action[1]][1];",""," // perform semantic action"," yyval.$ = vstack[vstack.length-len]; // default to $$ = $1"," // default location, uses first token for firsts, last for lasts"," yyval._$ = {"," first_line: lstack[lstack.length-(len||1)].first_line,"," last_line: lstack[lstack.length-1].last_line,"," first_column: lstack[lstack.length-(len||1)].first_column,"," last_column: lstack[lstack.length-1].last_column"," };"," r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);",""," if (typeof r !== 'undefined') {"," return r;"," }",""," // pop off stack"," if (len) {"," stack = stack.slice(0,-1*len*2);"," vstack = vstack.slice(0, -1*len);"," lstack = lstack.slice(0, -1*len);"," }",""," stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)"," vstack.push(yyval.$);"," lstack.push(yyval._$);"," // goto new state = table[STATE][NONTERMINAL]"," newState = table[stack[stack.length-2]][stack[stack.length-1]];"," stack.push(newState);"," break;",""," case 3: // accept"," return true;"," }",""," }",""," return true;","}};","/* Jison generated lexer */","var lexer = (function(){","var lexer = ({EOF:1,","parseError:function parseError(str, hash) {"," if (this.yy.parser) {"," this.yy.parser.parseError(str, hash);"," } else {"," throw new Error(str);"," }"," },","setInput:function (input) {"," this._input = input;"," this._more = this._less = this.done = false;"," this.yylineno = this.yyleng = 0;"," this.yytext = this.matched = this.match = '';"," this.conditionStack = ['INITIAL'];"," this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};"," return this;"," },","input:function () {"," var ch = this._input[0];"," this.yytext+=ch;"," this.yyleng++;"," this.match+=ch;"," this.matched+=ch;"," var lines = ch.match(/\\n/);"," if (lines) this.yylineno++;"," this._input = this._input.slice(1);"," return ch;"," },","unput:function (ch) {"," this._input = ch + this._input;"," return this;"," },","more:function () {"," this._more = true;"," return this;"," },","less:function (n) {"," this._input = this.match.slice(n) + this._input;"," },","pastInput:function () {"," var past = this.matched.substr(0, this.matched.length - this.match.length);"," return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");"," },","upcomingInput:function () {"," var next = this.match;"," if (next.length < 20) {"," next += this._input.substr(0, 20-next.length);"," }"," return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");"," },","showPosition:function () {"," var pre = this.pastInput();"," var c = new Array(pre.length + 1).join(\"-\");"," return pre + this.upcomingInput() + \"\\n\" + c+\"^\";"," },","next:function () {"," if (this.done) {"," return this.EOF;"," }"," if (!this._input) this.done = true;",""," var token,"," match,"," tempMatch,"," index,"," col,"," lines;"," if (!this._more) {"," this.yytext = '';"," this.match = '';"," }"," var rules = this._currentRules();"," for (var i=0;i < rules.length; i++) {"," tempMatch = this._input.match(this.rules[rules[i]]);"," if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {"," match = tempMatch;"," index = i;"," if (!this.options.flex) break;"," }"," }"," if (match) {"," lines = match[0].match(/\\n.*/g);"," if (lines) this.yylineno += lines.length;"," this.yylloc = {first_line: this.yylloc.last_line,"," last_line: this.yylineno+1,"," first_column: this.yylloc.last_column,"," last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length};"," this.yytext += match[0];"," this.match += match[0];"," this.yyleng = this.yytext.length;"," this._more = false;"," this._input = this._input.slice(match[0].length);"," this.matched += match[0];"," token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);"," if (this.done && this._input) this.done = false;"," if (token) return token;"," else return;"," }"," if (this._input === \"\") {"," return this.EOF;"," } else {"," return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),"," {text: \"\", token: null, line: this.yylineno});"," }"," },","lex:function lex() {"," var r = this.next();"," if (typeof r !== 'undefined') {"," return r;"," } else {"," return this.lex();"," }"," },","begin:function begin(condition) {"," this.conditionStack.push(condition);"," },","popState:function popState() {"," return this.conditionStack.pop();"," },","_currentRules:function _currentRules() {"," return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;"," },","topState:function () {"," return this.conditionStack[this.conditionStack.length-2];"," },","pushState:function begin(condition) {"," this.begin(condition);"," }});","lexer.options = {};","lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {","","var YYSTATE=YY_START","switch($avoiding_name_collisions) {","case 0:"," if(yy_.yytext.slice(-1) !== \"\\\\\") this.begin(\"mu\");"," if(yy_.yytext.slice(-1) === \"\\\\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin(\"emu\");"," if(yy_.yytext) return 14;"," ","break;","case 1: return 14; ","break;","case 2: this.popState(); return 14; ","break;","case 3: return 24; ","break;","case 4: return 16; ","break;","case 5: return 20; ","break;","case 6: return 19; ","break;","case 7: return 19; ","break;","case 8: return 23; ","break;","case 9: return 23; ","break;","case 10: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15; ","break;","case 11: return 22; ","break;","case 12: return 34; ","break;","case 13: return 33; ","break;","case 14: return 33; ","break;","case 15: return 36; ","break;","case 16: /*ignore whitespace*/ ","break;","case 17: this.popState(); return 18; ","break;","case 18: this.popState(); return 18; ","break;","case 19: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\\\\"/g,'\"'); return 28; ","break;","case 20: return 30; ","break;","case 21: return 30; ","break;","case 22: return 29; ","break;","case 23: return 33; ","break;","case 24: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 33; ","break;","case 25: return 'INVALID'; ","break;","case 26: return 5; ","break;","}","};","lexer.rules = [/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{)))/,/^(?:\\{\\{>)/,/^(?:\\{\\{#)/,/^(?:\\{\\{\\/)/,/^(?:\\{\\{\\^)/,/^(?:\\{\\{\\s*else\\b)/,/^(?:\\{\\{\\{)/,/^(?:\\{\\{&)/,/^(?:\\{\\{![\\s\\S]*?\\}\\})/,/^(?:\\{\\{)/,/^(?:=)/,/^(?:\\.(?=[} ]))/,/^(?:\\.\\.)/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}\\}\\})/,/^(?:\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:true(?=[}\\s]))/,/^(?:false(?=[}\\s]))/,/^(?:[0-9]+(?=[}\\s]))/,/^(?:[a-zA-Z0-9_$-]+(?=[=}\\s\\/.]))/,/^(?:\\[[^\\]]*\\])/,/^(?:.)/,/^(?:$)/];","lexer.conditions = {\"mu\":{\"rules\":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],\"inclusive\":false},\"emu\":{\"rules\":[2],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,26],\"inclusive\":true}};","return lexer;})()","parser.lexer = lexer;function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;","return new Parser;","})();","if (typeof require !== 'undefined' && typeof exports !== 'undefined') {","exports.parser = handlebars;","exports.Parser = handlebars.Parser;","exports.parse = function () { return handlebars.parse.apply(handlebars, arguments); }","exports.main = function commonjsMain(args) {"," if (!args[1])"," throw new Error('Usage: '+args[0]+' FILE');"," var source, cwd;"," if (typeof process !== 'undefined') {"," source = require('fs').readFileSync(require('path').resolve(args[1]), \"utf8\");"," } else {"," source = require(\"file\").path(require(\"file\").cwd()).join(args[1]).read({charset: \"utf-8\"});"," }"," return exports.parser.parse(source);","}","if (typeof module !== 'undefined' && require.main === module) {"," exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require(\"system\").args);","}","};","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","// BEGIN(BROWSER)","Handlebars.Parser = handlebars;","","Handlebars.parse = function(string) {"," Handlebars.Parser.yy = Handlebars.AST;"," return Handlebars.Parser.parse(string);","};","","Handlebars.print = function(ast) {"," return new Handlebars.PrintVisitor().accept(ast);","};","","Handlebars.logger = {"," DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,",""," // override in the host environment"," log: function(level, str) {}","};","","Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); };","","// END(BROWSER)","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","// BEGIN(BROWSER)","(function() {",""," Handlebars.AST = {};",""," Handlebars.AST.ProgramNode = function(statements, inverse) {"," this.type = \"program\";"," this.statements = statements;"," if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); }"," };",""," Handlebars.AST.MustacheNode = function(rawParams, hash, unescaped) {"," this.type = \"mustache\";"," this.escaped = !unescaped;"," this.hash = hash;",""," var id = this.id = rawParams[0];"," var params = this.params = rawParams.slice(1);",""," // a mustache is an eligible helper if:"," // * its id is simple (a single part, not `this` or `..`)"," var eligibleHelper = this.eligibleHelper = id.isSimple;",""," // a mustache is definitely a helper if:"," // * it is an eligible helper, and"," // * it has at least one parameter or hash segment"," this.isHelper = eligibleHelper && (params.length || hash);",""," // if a mustache is an eligible helper but not a definite"," // helper, it is ambiguous, and will be resolved in a later"," // pass or at runtime."," };",""," Handlebars.AST.PartialNode = function(id, context) {"," this.type = \"partial\";",""," // TODO: disallow complex IDs",""," this.id = id;"," this.context = context;"," };",""," var verifyMatch = function(open, close) {"," if(open.original !== close.original) {"," throw new Handlebars.Exception(open.original + \" doesn't match \" + close.original);"," }"," };",""," Handlebars.AST.BlockNode = function(mustache, program, inverse, close) {"," verifyMatch(mustache.id, close);"," this.type = \"block\";"," this.mustache = mustache;"," this.program = program;"," this.inverse = inverse;",""," if (this.inverse && !this.program) {"," this.isInverse = true;"," }"," };",""," Handlebars.AST.ContentNode = function(string) {"," this.type = \"content\";"," this.string = string;"," };",""," Handlebars.AST.HashNode = function(pairs) {"," this.type = \"hash\";"," this.pairs = pairs;"," };",""," Handlebars.AST.IdNode = function(parts) {"," this.type = \"ID\";"," this.original = parts.join(\".\");",""," var dig = [], depth = 0;",""," for(var i=0,l=parts.length; i<l; i++) {"," var part = parts[i];",""," if(part === \"..\") { depth++; }"," else if(part === \".\" || part === \"this\") { this.isScoped = true; }"," else { dig.push(part); }"," }",""," this.parts = dig;"," this.string = dig.join('.');"," this.depth = depth;",""," // an ID is simple if it only has one part, and that part is not"," // `..` or `this`."," this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;"," };",""," Handlebars.AST.StringNode = function(string) {"," this.type = \"STRING\";"," this.string = string;"," };",""," Handlebars.AST.IntegerNode = function(integer) {"," this.type = \"INTEGER\";"," this.integer = integer;"," };",""," Handlebars.AST.BooleanNode = function(bool) {"," this.type = \"BOOLEAN\";"," this.bool = bool;"," };",""," Handlebars.AST.CommentNode = function(comment) {"," this.type = \"comment\";"," this.comment = comment;"," };","","})();","// END(BROWSER)","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","// BEGIN(BROWSER)","","/*jshint eqnull:true*/","Handlebars.Compiler = function() {};","Handlebars.JavaScriptCompiler = function() {};","","(function(Compiler, JavaScriptCompiler) {"," // the foundHelper register will disambiguate helper lookup from finding a"," // function in a context. This is necessary for mustache compatibility, which"," // requires that context functions in blocks are evaluated by blockHelperMissing,"," // and then proceed as if the resulting value was provided to blockHelperMissing.",""," Compiler.prototype = {"," compiler: Compiler,",""," disassemble: function() {"," var opcodes = this.opcodes, opcode, out = [], params, param;",""," for (var i=0, l=opcodes.length; i<l; i++) {"," opcode = opcodes[i];",""," if (opcode.opcode === 'DECLARE') {"," out.push(\"DECLARE \" + opcode.name + \"=\" + opcode.value);"," } else {"," params = [];"," for (var j=0; j<opcode.args.length; j++) {"," param = opcode.args[j];"," if (typeof param === \"string\") {"," param = \"\\\"\" + param.replace(\"\\n\", \"\\\\n\") + \"\\\"\";"," }"," params.push(param);"," }"," out.push(opcode.opcode + \" \" + params.join(\" \"));"," }"," }",""," return out.join(\"\\n\");"," },",""," guid: 0,",""," compile: function(program, options) {"," this.children = [];"," this.depths = {list: []};"," this.options = options;",""," // These changes will propagate to the other compiler components"," var knownHelpers = this.options.knownHelpers;"," this.options.knownHelpers = {"," 'helperMissing': true,"," 'blockHelperMissing': true,"," 'each': true,"," 'if': true,"," 'unless': true,"," 'with': true,"," 'log': true"," };"," if (knownHelpers) {"," for (var name in knownHelpers) {"," this.options.knownHelpers[name] = knownHelpers[name];"," }"," }",""," return this.program(program);"," },",""," accept: function(node) {"," return this[node.type](node);"," },",""," program: function(program) {"," var statements = program.statements, statement;"," this.opcodes = [];",""," for(var i=0, l=statements.length; i<l; i++) {"," statement = statements[i];"," this[statement.type](statement);"," }"," this.isSimple = l === 1;",""," this.depths.list = this.depths.list.sort(function(a, b) {"," return a - b;"," });",""," return this;"," },",""," compileProgram: function(program) {"," var result = new this.compiler().compile(program, this.options);"," var guid = this.guid++, depth;",""," this.usePartial = this.usePartial || result.usePartial;",""," this.children[guid] = result;",""," for(var i=0, l=result.depths.list.length; i<l; i++) {"," depth = result.depths.list[i];",""," if(depth < 2) { continue; }"," else { this.addDepth(depth - 1); }"," }",""," return guid;"," },",""," block: function(block) {"," var mustache = block.mustache,"," program = block.program,"," inverse = block.inverse;",""," if (program) {"," program = this.compileProgram(program);"," }",""," if (inverse) {"," inverse = this.compileProgram(inverse);"," }",""," var type = this.classifyMustache(mustache);",""," if (type === \"helper\") {"," this.helperMustache(mustache, program, inverse);"," } else if (type === \"simple\") {"," this.simpleMustache(mustache);",""," // now that the simple mustache is resolved, we need to"," // evaluate it by executing `blockHelperMissing`"," this.opcode('pushProgram', program);"," this.opcode('pushProgram', inverse);"," this.opcode('pushLiteral', '{}');"," this.opcode('blockValue');"," } else {"," this.ambiguousMustache(mustache, program, inverse);",""," // now that the simple mustache is resolved, we need to"," // evaluate it by executing `blockHelperMissing`"," this.opcode('pushProgram', program);"," this.opcode('pushProgram', inverse);"," this.opcode('pushLiteral', '{}');"," this.opcode('ambiguousBlockValue');"," }",""," this.opcode('append');"," },",""," hash: function(hash) {"," var pairs = hash.pairs, pair, val;",""," this.opcode('push', '{}');",""," for(var i=0, l=pairs.length; i<l; i++) {"," pair = pairs[i];"," val = pair[1];",""," this.accept(val);"," this.opcode('assignToHash', pair[0]);"," }"," },",""," partial: function(partial) {"," var id = partial.id;"," this.usePartial = true;",""," if(partial.context) {"," this.ID(partial.context);"," } else {"," this.opcode('push', 'depth0');"," }",""," this.opcode('invokePartial', id.original);"," this.opcode('append');"," },",""," content: function(content) {"," this.opcode('appendContent', content.string);"," },",""," mustache: function(mustache) {"," var options = this.options;"," var type = this.classifyMustache(mustache);",""," if (type === \"simple\") {"," this.simpleMustache(mustache);"," } else if (type === \"helper\") {"," this.helperMustache(mustache);"," } else {"," this.ambiguousMustache(mustache);"," }",""," if(mustache.escaped && !options.noEscape) {"," this.opcode('appendEscaped');"," } else {"," this.opcode('append');"," }"," },",""," ambiguousMustache: function(mustache, program, inverse) {"," var id = mustache.id, name = id.parts[0];",""," this.opcode('getContext', id.depth);",""," this.opcode('pushProgram', program);"," this.opcode('pushProgram', inverse);",""," this.opcode('invokeAmbiguous', name);"," },",""," simpleMustache: function(mustache, program, inverse) {"," var id = mustache.id;",""," this.addDepth(id.depth);"," this.opcode('getContext', id.depth);",""," if (id.parts.length) {"," this.opcode('lookupOnContext', id.parts[0]);"," for(var i=1, l=id.parts.length; i<l; i++) {"," this.opcode('lookup', id.parts[i]);"," }"," } else {"," this.opcode('pushContext');"," }"," this.opcode('resolvePossibleLambda');"," },",""," helperMustache: function(mustache, program, inverse) {"," var params = this.setupFullMustacheParams(mustache, program, inverse),"," name = mustache.id.parts[0];",""," if (this.options.knownHelpers[name]) {"," this.opcode('invokeKnownHelper', params.length, name);"," } else if (this.knownHelpersOnly) {"," throw new Error(\"You specified knownHelpersOnly, but used the unknown helper \" + name);"," } else {"," this.opcode('invokeHelper', params.length, name);"," }"," },",""," ID: function(id) {"," this.addDepth(id.depth);"," this.opcode('getContext', id.depth);"," this.opcode('lookupOnContext', id.parts[0]);",""," for(var i=1, l=id.parts.length; i<l; i++) {"," this.opcode('lookup', id.parts[i]);"," }"," },",""," STRING: function(string) {"," this.opcode('pushString', string.string);"," },",""," INTEGER: function(integer) {"," this.opcode('pushLiteral', integer.integer);"," },",""," BOOLEAN: function(bool) {"," this.opcode('pushLiteral', bool.bool);"," },",""," comment: function() {},",""," // HELPERS"," opcode: function(name) {"," this.opcodes.push({ opcode: name, args: [].slice.call(arguments, 1) });"," },",""," declare: function(name, value) {"," this.opcodes.push({ opcode: 'DECLARE', name: name, value: value });"," },",""," addDepth: function(depth) {"," if(depth === 0) { return; }",""," if(!this.depths[depth]) {"," this.depths[depth] = true;"," this.depths.list.push(depth);"," }"," },",""," classifyMustache: function(mustache) {"," var isHelper = mustache.isHelper;"," var isEligible = mustache.eligibleHelper;"," var options = this.options;",""," // if ambiguous, we can possibly resolve the ambiguity now"," if (isEligible && !isHelper) {"," var name = mustache.id.parts[0];",""," if (options.knownHelpers[name]) {"," isHelper = true;"," } else if (options.knownHelpersOnly) {"," isEligible = false;"," }"," }",""," if (isHelper) { return \"helper\"; }"," else if (isEligible) { return \"ambiguous\"; }"," else { return \"simple\"; }"," },",""," pushParams: function(params) {"," var i = params.length, param;",""," while(i--) {"," param = params[i];",""," if(this.options.stringParams) {"," if(param.depth) {"," this.addDepth(param.depth);"," }",""," this.opcode('getContext', param.depth || 0);"," this.opcode('pushStringParam', param.string);"," } else {"," this[param.type](param);"," }"," }"," },",""," setupMustacheParams: function(mustache) {"," var params = mustache.params;"," this.pushParams(params);",""," if(mustache.hash) {"," this.hash(mustache.hash);"," } else {"," this.opcode('pushLiteral', '{}');"," }",""," return params;"," },",""," // this will replace setupMustacheParams when we're done"," setupFullMustacheParams: function(mustache, program, inverse) {"," var params = mustache.params;"," this.pushParams(params);",""," this.opcode('pushProgram', program);"," this.opcode('pushProgram', inverse);",""," if(mustache.hash) {"," this.hash(mustache.hash);"," } else {"," this.opcode('pushLiteral', '{}');"," }",""," return params;"," }"," };",""," var Literal = function(value) {"," this.value = value;"," };",""," JavaScriptCompiler.prototype = {"," // PUBLIC API: You can override these methods in a subclass to provide"," // alternative compiled forms for name lookup and buffering semantics"," nameLookup: function(parent, name, type) {"," if (/^[0-9]+$/.test(name)) {"," return parent + \"[\" + name + \"]\";"," } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {"," return parent + \".\" + name;"," }"," else {"," return parent + \"['\" + name + \"']\";"," }"," },",""," appendToBuffer: function(string) {"," if (this.environment.isSimple) {"," return \"return \" + string + \";\";"," } else {"," return \"buffer += \" + string + \";\";"," }"," },",""," initializeBuffer: function() {"," return this.quotedString(\"\");"," },",""," namespace: \"Handlebars\","," // END PUBLIC API",""," compile: function(environment, options, context, asObject) {"," this.environment = environment;"," this.options = options || {};",""," Handlebars.log(Handlebars.logger.DEBUG, this.environment.disassemble() + \"\\n\\n\");",""," this.name = this.environment.name;"," this.isChild = !!context;"," this.context = context || {"," programs: [],"," aliases: { }"," };",""," this.preamble();",""," this.stackSlot = 0;"," this.stackVars = [];"," this.registers = { list: [] };"," this.compileStack = [];",""," this.compileChildren(environment, options);",""," var opcodes = environment.opcodes, opcode;",""," this.i = 0;",""," for(l=opcodes.length; this.i<l; this.i++) {"," opcode = opcodes[this.i];",""," if(opcode.opcode === 'DECLARE') {"," this[opcode.name] = opcode.value;"," } else {"," this[opcode.opcode].apply(this, opcode.args);"," }"," }",""," return this.createFunctionContext(asObject);"," },",""," nextOpcode: function() {"," var opcodes = this.environment.opcodes, opcode = opcodes[this.i + 1];"," return opcodes[this.i + 1];"," },",""," eat: function(opcode) {"," this.i = this.i + 1;"," },",""," preamble: function() {"," var out = [];",""," if (!this.isChild) {"," var namespace = this.namespace;"," var copies = \"helpers = helpers || \" + namespace + \".helpers;\";"," if(this.environment.usePartial) { copies = copies + \" partials = partials || \" + namespace + \".partials;\"; }"," out.push(copies);"," } else {"," out.push('');"," }",""," if (!this.environment.isSimple) {"," out.push(\", buffer = \" + this.initializeBuffer());"," } else {"," out.push(\"\");"," }",""," // track the last context pushed into place to allow skipping the"," // getContext opcode when it would be a noop"," this.lastContext = 0;"," this.source = out;"," },",""," createFunctionContext: function(asObject) {"," var locals = this.stackVars.concat(this.registers.list);",""," if(locals.length > 0) {"," this.source[1] = this.source[1] + \", \" + locals.join(\", \");"," }",""," // Generate minimizer alias mappings"," if (!this.isChild) {"," var aliases = [];"," for (var alias in this.context.aliases) {"," this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];"," }"," }",""," if (this.source[1]) {"," this.source[1] = \"var \" + this.source[1].substring(2) + \";\";"," }",""," // Merge children"," if (!this.isChild) {"," this.source[1] += '\\n' + this.context.programs.join('\\n') + '\\n';"," }",""," if (!this.environment.isSimple) {"," this.source.push(\"return buffer;\");"," }",""," var params = this.isChild ? [\"depth0\", \"data\"] : [\"Handlebars\", \"depth0\", \"helpers\", \"partials\", \"data\"];",""," for(var i=0, l=this.environment.depths.list.length; i<l; i++) {"," params.push(\"depth\" + this.environment.depths.list[i]);"," }",""," if (asObject) {"," params.push(this.source.join(\"\\n \"));",""," return Function.apply(this, params);"," } else {"," var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\\n ' + this.source.join(\"\\n \") + '}';"," Handlebars.log(Handlebars.logger.DEBUG, functionSource + \"\\n\\n\");"," return functionSource;"," }"," },",""," // [blockValue]"," //"," // On stack, before: hash, inverse, program, value"," // On stack, after: return value of blockHelperMissing"," //"," // The purpose of this opcode is to take a block of the form"," // `{{#foo}}...{{/foo}}`, resolve the value of `foo`, and"," // replace it on the stack with the result of properly"," // invoking blockHelperMissing."," blockValue: function() {"," this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';",""," var params = [\"depth0\"];"," this.setupParams(0, params);",""," this.replaceStack(function(current) {"," params.splice(1, 0, current);"," return current + \" = blockHelperMissing.call(\" + params.join(\", \") + \")\";"," });"," },",""," // [ambiguousBlockValue]"," //"," // On stack, before: hash, inverse, program, value"," // Compiler value, before: lastHelper=value of last found helper, if any"," // On stack, after, if no lastHelper: same as [blockValue]"," // On stack, after, if lastHelper: value"," ambiguousBlockValue: function() {"," this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';",""," var params = [\"depth0\"];"," this.setupParams(0, params);",""," var current = this.topStack();"," params.splice(1, 0, current);",""," this.source.push(\"if (!\" + this.lastHelper + \") { \" + current + \" = blockHelperMissing.call(\" + params.join(\", \") + \"); }\");"," },",""," // [appendContent]"," //"," // On stack, before: ..."," // On stack, after: ..."," //"," // Appends the string value of `content` to the current buffer"," appendContent: function(content) {"," this.source.push(this.appendToBuffer(this.quotedString(content)));"," },",""," // [append]"," //"," // On stack, before: value, ..."," // On stack, after: ..."," //"," // Coerces `value` to a String and appends it to the current buffer."," //"," // If `value` is truthy, or 0, it is coerced into a string and appended"," // Otherwise, the empty string is appended"," append: function() {"," var local = this.popStack();"," this.source.push(\"if(\" + local + \" || \" + local + \" === 0) { \" + this.appendToBuffer(local) + \" }\");"," if (this.environment.isSimple) {"," this.source.push(\"else { \" + this.appendToBuffer(\"''\") + \" }\");"," }"," },",""," // [appendEscaped]"," //"," // On stack, before: value, ..."," // On stack, after: ..."," //"," // Escape `value` and append it to the buffer"," appendEscaped: function() {"," var opcode = this.nextOpcode(), extra = \"\";"," this.context.aliases.escapeExpression = 'this.escapeExpression';",""," if(opcode && opcode.opcode === 'appendContent') {"," extra = \" + \" + this.quotedString(opcode.args[0]);"," this.eat(opcode);"," }",""," this.source.push(this.appendToBuffer(\"escapeExpression(\" + this.popStack() + \")\" + extra));"," },",""," // [getContext]"," //"," // On stack, before: ..."," // On stack, after: ..."," // Compiler value, after: lastContext=depth"," //"," // Set the value of the `lastContext` compiler value to the depth"," getContext: function(depth) {"," if(this.lastContext !== depth) {"," this.lastContext = depth;"," }"," },",""," // [lookupOnContext]"," //"," // On stack, before: ..."," // On stack, after: currentContext[name], ..."," //"," // Looks up the value of `name` on the current context and pushes"," // it onto the stack."," lookupOnContext: function(name) {"," this.pushStack(this.nameLookup('depth' + this.lastContext, name, 'context'));"," },",""," // [pushContext]"," //"," // On stack, before: ..."," // On stack, after: currentContext, ..."," //"," // Pushes the value of the current context onto the stack."," pushContext: function() {"," this.pushStackLiteral('depth' + this.lastContext);"," },",""," // [resolvePossibleLambda]"," //"," // On stack, before: value, ..."," // On stack, after: resolved value, ..."," //"," // If the `value` is a lambda, replace it on the stack by"," // the return value of the lambda"," resolvePossibleLambda: function() {"," this.context.aliases.functionType = '\"function\"';",""," this.replaceStack(function(current) {"," return \"typeof \" + current + \" === functionType ? \" + current + \"() : \" + current;"," });"," },",""," // [lookup]"," //"," // On stack, before: value, ..."," // On stack, after: value[name], ..."," //"," // Replace the value on the stack with the result of looking"," // up `name` on `value`"," lookup: function(name) {"," this.replaceStack(function(current) {"," return current + \" == null || \" + current + \" === false ? \" + current + \" : \" + this.nameLookup(current, name, 'context');"," });"," },",""," // [pushStringParam]"," //"," // On stack, before: ..."," // On stack, after: string, currentContext, ..."," //"," // This opcode is designed for use in string mode, which"," // provides the string value of a parameter along with its"," // depth rather than resolving it immediately."," pushStringParam: function(string) {"," this.pushStackLiteral('depth' + this.lastContext);"," this.pushString(string);"," },",""," // [pushString]"," //"," // On stack, before: ..."," // On stack, after: quotedString(string), ..."," //"," // Push a quoted version of `string` onto the stack"," pushString: function(string) {"," this.pushStackLiteral(this.quotedString(string));"," },",""," // [push]"," //"," // On stack, before: ..."," // On stack, after: expr, ..."," //"," // Push an expression onto the stack"," push: function(expr) {"," this.pushStack(expr);"," },",""," // [pushLiteral]"," //"," // On stack, before: ..."," // On stack, after: value, ..."," //"," // Pushes a value onto the stack. This operation prevents"," // the compiler from creating a temporary variable to hold"," // it."," pushLiteral: function(value) {"," this.pushStackLiteral(value);"," },",""," // [pushProgram]"," //"," // On stack, before: ..."," // On stack, after: program(guid), ..."," //"," // Push a program expression onto the stack. This takes"," // a compile-time guid and converts it into a runtime-accessible"," // expression."," pushProgram: function(guid) {"," if (guid != null) {"," this.pushStackLiteral(this.programExpression(guid));"," } else {"," this.pushStackLiteral(null);"," }"," },",""," // [invokeHelper]"," //"," // On stack, before: hash, inverse, program, params..., ..."," // On stack, after: result of helper invocation"," //"," // Pops off the helper's parameters, invokes the helper,"," // and pushes the helper's return value onto the stack."," //"," // If the helper is not found, `helperMissing` is called."," invokeHelper: function(paramSize, name) {"," this.context.aliases.helperMissing = 'helpers.helperMissing';",""," var helper = this.lastHelper = this.setupHelper(paramSize, name);"," this.register('foundHelper', helper.name);",""," this.pushStack(\"foundHelper ? foundHelper.call(\" +"," helper.callParams + \") \" + \": helperMissing.call(\" +"," helper.helperMissingParams + \")\");"," },",""," // [invokeKnownHelper]"," //"," // On stack, before: hash, inverse, program, params..., ..."," // On stack, after: result of helper invocation"," //"," // This operation is used when the helper is known to exist,"," // so a `helperMissing` fallback is not required."," invokeKnownHelper: function(paramSize, name) {"," var helper = this.setupHelper(paramSize, name);"," this.pushStack(helper.name + \".call(\" + helper.callParams + \")\");"," },",""," // [invokeAmbiguous]"," //"," // On stack, before: hash, inverse, program, params..., ..."," // On stack, after: result of disambiguation"," //"," // This operation is used when an expression like `{{foo}}`"," // is provided, but we don't know at compile-time whether it"," // is a helper or a path."," //"," // This operation emits more code than the other options,"," // and can be avoided by passing the `knownHelpers` and"," // `knownHelpersOnly` flags at compile-time."," invokeAmbiguous: function(name) {"," this.context.aliases.functionType = '\"function\"';",""," this.pushStackLiteral('{}');"," var helper = this.setupHelper(0, name);",""," var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');"," this.register('foundHelper', helperName);",""," var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');"," var nextStack = this.nextStack();",""," this.source.push('if (foundHelper) { ' + nextStack + ' = foundHelper.call(' + helper.callParams + '); }');"," this.source.push('else { ' + nextStack + ' = ' + nonHelper + '; ' + nextStack + ' = typeof ' + nextStack + ' === functionType ? ' + nextStack + '() : ' + nextStack + '; }');"," },",""," // [invokePartial]"," //"," // On stack, before: context, ..."," // On stack after: result of partial invocation"," //"," // This operation pops off a context, invokes a partial with that context,"," // and pushes the result of the invocation back."," invokePartial: function(name) {"," var params = [this.nameLookup('partials', name, 'partial'), \"'\" + name + \"'\", this.popStack(), \"helpers\", \"partials\"];",""," if (this.options.data) {"," params.push(\"data\");"," }",""," this.context.aliases.self = \"this\";"," this.pushStack(\"self.invokePartial(\" + params.join(\", \") + \");\");"," },",""," // [assignToHash]"," //"," // On stack, before: value, hash, ..."," // On stack, after: hash, ..."," //"," // Pops a value and hash off the stack, assigns `hash[key] = value`"," // and pushes the hash back onto the stack."," assignToHash: function(key) {"," var value = this.popStack();"," var hash = this.topStack();",""," this.source.push(hash + \"['\" + key + \"'] = \" + value + \";\");"," },",""," // HELPERS",""," compiler: JavaScriptCompiler,",""," compileChildren: function(environment, options) {"," var children = environment.children, child, compiler;",""," for(var i=0, l=children.length; i<l; i++) {"," child = children[i];"," compiler = new this.compiler();",""," this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children"," var index = this.context.programs.length;"," child.index = index;"," child.name = 'program' + index;"," this.context.programs[index] = compiler.compile(child, options, this.context);"," }"," },",""," programExpression: function(guid) {"," this.context.aliases.self = \"this\";",""," if(guid == null) {"," return \"self.noop\";"," }",""," var child = this.environment.children[guid],"," depths = child.depths.list, depth;",""," var programParams = [child.index, child.name, \"data\"];",""," for(var i=0, l = depths.length; i<l; i++) {"," depth = depths[i];",""," if(depth === 1) { programParams.push(\"depth0\"); }"," else { programParams.push(\"depth\" + (depth - 1)); }"," }",""," if(depths.length === 0) {"," return \"self.program(\" + programParams.join(\", \") + \")\";"," } else {"," programParams.shift();"," return \"self.programWithDepth(\" + programParams.join(\", \") + \")\";"," }"," },",""," register: function(name, val) {"," this.useRegister(name);"," this.source.push(name + \" = \" + val + \";\");"," },",""," useRegister: function(name) {"," if(!this.registers[name]) {"," this.registers[name] = true;"," this.registers.list.push(name);"," }"," },",""," pushStackLiteral: function(item) {"," this.compileStack.push(new Literal(item));"," return item;"," },",""," pushStack: function(item) {"," this.source.push(this.incrStack() + \" = \" + item + \";\");"," this.compileStack.push(\"stack\" + this.stackSlot);"," return \"stack\" + this.stackSlot;"," },",""," replaceStack: function(callback) {"," var item = callback.call(this, this.topStack());",""," this.source.push(this.topStack() + \" = \" + item + \";\");"," return \"stack\" + this.stackSlot;"," },",""," nextStack: function(skipCompileStack) {"," var name = this.incrStack();"," this.compileStack.push(\"stack\" + this.stackSlot);"," return name;"," },",""," incrStack: function() {"," this.stackSlot++;"," if(this.stackSlot > this.stackVars.length) { this.stackVars.push(\"stack\" + this.stackSlot); }"," return \"stack\" + this.stackSlot;"," },",""," popStack: function() {"," var item = this.compileStack.pop();",""," if (item instanceof Literal) {"," return item.value;"," } else {"," this.stackSlot--;"," return item;"," }"," },",""," topStack: function() {"," var item = this.compileStack[this.compileStack.length - 1];",""," if (item instanceof Literal) {"," return item.value;"," } else {"," return item;"," }"," },",""," quotedString: function(str) {"," return '\"' + str"," .replace(/\\\\/g, '\\\\\\\\')"," .replace(/\"/g, '\\\\\"')"," .replace(/\\n/g, '\\\\n')"," .replace(/\\r/g, '\\\\r') + '\"';"," },",""," setupHelper: function(paramSize, name) {"," var params = [];"," this.setupParams(paramSize, params);"," var foundHelper = this.nameLookup('helpers', name, 'helper');",""," return {"," params: params,"," name: foundHelper,"," callParams: [\"depth0\"].concat(params).join(\", \"),"," helperMissingParams: [\"depth0\", this.quotedString(name)].concat(params).join(\", \")"," };"," },",""," // the params and contexts arguments are passed in arrays"," // to fill in"," setupParams: function(paramSize, params) {"," var options = [], contexts = [], param, inverse, program;",""," options.push(\"hash:\" + this.popStack());",""," inverse = this.popStack();"," program = this.popStack();",""," // Avoid setting fn and inverse if neither are set. This allows"," // helpers to do a check for `if (options.fn)`"," if (program || inverse) {"," if (!program) {"," this.context.aliases.self = \"this\";"," program = \"self.noop\";"," }",""," if (!inverse) {"," this.context.aliases.self = \"this\";"," inverse = \"self.noop\";"," }",""," options.push(\"inverse:\" + inverse);"," options.push(\"fn:\" + program);"," }",""," for(var i=0; i<paramSize; i++) {"," param = this.popStack();"," params.push(param);",""," if(this.options.stringParams) {"," contexts.push(this.popStack());"," }"," }",""," if (this.options.stringParams) {"," options.push(\"contexts:[\" + contexts.join(\",\") + \"]\");"," }",""," if(this.options.data) {"," options.push(\"data:data\");"," }",""," params.push(\"{\" + options.join(\",\") + \"}\");"," return params.join(\", \");"," }"," };",""," var reservedWords = ("," \"break else new var\" +"," \" case finally return void\" +"," \" catch for switch while\" +"," \" continue function this with\" +"," \" default if throw\" +"," \" delete in try\" +"," \" do instanceof typeof\" +"," \" abstract enum int short\" +"," \" boolean export interface static\" +"," \" byte extends long super\" +"," \" char final native synchronized\" +"," \" class float package throws\" +"," \" const goto private transient\" +"," \" debugger implements protected volatile\" +"," \" double import public let yield\""," ).split(\" \");",""," var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};",""," for(var i=0, l=reservedWords.length; i<l; i++) {"," compilerWords[reservedWords[i]] = true;"," }",""," JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {"," if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(name)) {"," return true;"," }"," return false;"," };","","})(Handlebars.Compiler, Handlebars.JavaScriptCompiler);","","Handlebars.precompile = function(string, options) {"," options = options || {};",""," var ast = Handlebars.parse(string);"," var environment = new Handlebars.Compiler().compile(ast, options);"," return new Handlebars.JavaScriptCompiler().compile(environment, options);","};","","Handlebars.compile = function(string, options) {"," options = options || {};",""," var compiled;"," function compile() {"," var ast = Handlebars.parse(string);"," var environment = new Handlebars.Compiler().compile(ast, options);"," var templateSpec = new Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);"," return Handlebars.template(templateSpec);"," }",""," // Template is only compiled on first use and cached after that point."," return function(context, options) {"," if (!compiled) {"," compiled = compile();"," }"," return compiled.call(this, context, options);"," };","};","","// END(BROWSER)","// This file contains YUI-specific wrapper code and overrides for the","// handlebars-compiler module.","","/**","Handlebars parser and compiler. Use this module when you need to compile","Handlebars templates.","","@module handlebars","@submodule handlebars-compiler","*/","","var levels = ['debug', 'info', 'warn', 'error'];","","/**","Logs a debugging message. Note that messages will only be logged when the","handlebars module is loaded in \"debug\" mode.","","@method log","@param {String} level Log level for this message. Supported levels are \"debug\","," \"info\", \"warn\", and \"error\".","@param {String} message Message to log.","@for Handlebars","*/","Handlebars.logger.log = function (level, message) {","","};","","/**","Compiles and renders a Handlebars template string in a single step.","","If you'll be using a template more than once, it's more efficient to compile it","into a function once using `compile()`, and then render it whenever you need to","by simply executing the compiled function. However, if you only need to compile","and render a template once, `render()` is a handy shortcut for doing both in a","single step.","","@example",""," Y.Handlebars.render('The pie of the day is {{pie}}!', {"," pie: 'Maple Custard'"," });"," // => \"The pie of the day is Maple Custard!\"","","@method render","@param {String} string Handlebars template string to render.","@param {Object} context Context object to pass to the template.","@param {Object} [options] Compile/render options."," @param {Object} [options.helpers] Helper functions."," @param {Object} [options.partials] Partials."," @param {Object} [options.data] Data.","@return {String} Rendered template string.","*/","Handlebars.render = function (string, context, options) {"," return Handlebars.compile(string)(context, options);","};","","// The rest of this file is just API docs for methods defined in Handlebars","// itself.","","/**","Compiles a Handlebars template string into a function. To render the template,","call the function and pass in a context object.","","@example",""," var template = Y.Handlebars.compile('The pie of the day is {{pie}}!.');"," template({pie: 'Pecan'});"," // => \"The pie of the day is Pecan!\"","","@method compile","@param {String} string Handlebars template string to compile.","@param {Object} [options] Compiler options.","@return {Function} Compiled template function.","*/","","/**","Precompiles a Handlebars template string into a string of JavaScript code. This","can be used to precompile a template at build time or on the server, and the","resulting template can then be rendered at runtime or on the client without","needing to go through a compile step.","","To render a precompiled template, evaluate the code and then pass the resulting","function to `Y.Handlebars.template()` to get back an executable template","function.","","@method precompile","@param {String} string Handlebars template string to compile.","@param {Object} [options] Compiler options.","@return {String} Precompiled template code.","*/","","","}, '3.7.3', {\"requires\": [\"handlebars-base\"]});"];
_yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"].lines = {"1":0,"13":0,"17":0,"18":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"112":0,"115":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"138":0,"139":0,"141":0,"142":0,"143":0,"144":0,"147":0,"148":0,"149":0,"151":0,"152":0,"154":0,"157":0,"158":0,"160":0,"163":0,"164":0,"166":0,"167":0,"170":0,"174":0,"175":0,"177":0,"178":0,"180":0,"181":0,"182":0,"184":0,"185":0,"187":0,"191":0,"196":0,"197":0,"198":0,"202":0,"203":0,"204":0,"205":0,"206":0,"210":0,"212":0,"213":0,"215":0,"216":0,"218":0,"219":0,"222":0,"223":0,"224":0,"225":0,"226":0,"230":0,"231":0,"234":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"252":0,"253":0,"255":0,"260":0,"263":0,"265":0,"271":0,"273":0,"274":0,"278":0,"279":0,"280":0,"281":0,"284":0,"285":0,"286":0,"288":0,"289":0,"290":0,"293":0,"298":0,"301":0,"302":0,"304":0,"305":0,"307":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"331":0,"332":0,"335":0,"336":0,"339":0,"342":0,"343":0,"346":0,"347":0,"348":0,"350":0,"353":0,"354":0,"355":0,"358":0,"359":0,"361":0,"363":0,"369":0,"370":0,"371":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"382":0,"383":0,"384":0,"385":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"400":0,"401":0,"403":0,"408":0,"409":0,"410":0,"412":0,"416":0,"419":0,"422":0,"425":0,"428":0,"430":0,"431":0,"433":0,"434":0,"436":0,"437":0,"438":0,"440":0,"441":0,"442":0,"443":0,"444":0,"445":0,"446":0,"447":0,"448":0,"449":0,"450":0,"451":0,"452":0,"453":0,"454":0,"455":0,"456":0,"457":0,"458":0,"459":0,"460":0,"461":0,"462":0,"463":0,"464":0,"465":0,"466":0,"467":0,"468":0,"469":0,"470":0,"472":0,"473":0,"474":0,"475":0,"476":0,"477":0,"478":0,"479":0,"480":0,"481":0,"482":0,"483":0,"484":0,"485":0,"486":0,"487":0,"488":0,"489":0,"490":0,"491":0,"492":0,"495":0,"496":0,"497":0,"498":0,"499":0,"501":0,"502":0,"503":0,"504":0,"505":0,"506":0,"507":0,"508":0,"509":0,"510":0,"512":0,"514":0,"516":0,"517":0,"519":0,"523":0,"525":0,"526":0,"527":0,"530":0,"531":0,"534":0,"541":0,"547":0,"549":0,"551":0,"552":0,"553":0,"554":0,"557":0,"558":0,"559":0,"560":0,"562":0,"563":0,"567":0,"572":0,"579":0,"580":0,"584":0,"585":0,"588":0,"589":0,"590":0,"594":0,"595":0,"596":0,"597":0,"598":0,"599":0,"601":0,"602":0,"606":0,"607":0,"608":0,"611":0,"612":0,"613":0,"616":0,"617":0,"618":0,"620":0,"622":0,"623":0,"625":0,"626":0,"630":0,"631":0,"632":0,"636":0,"639":0,"640":0,"641":0,"644":0,"645":0,"646":0,"649":0,"650":0,"651":0,"654":0,"655":0,"656":0,"666":0,"667":0,"669":0,"675":0,"679":0,"681":0,"682":0,"684":0,"685":0,"687":0,"688":0,"689":0,"690":0,"691":0,"693":0,"695":0,"699":0,"705":0,"706":0,"707":0,"710":0,"711":0,"720":0,"721":0,"722":0,"726":0,"730":0,"734":0,"735":0,"737":0,"738":0,"739":0,"741":0,"743":0,"744":0,"747":0,"751":0,"752":0,"754":0,"756":0,"758":0,"759":0,"761":0,"765":0,"769":0,"773":0,"774":0,"777":0,"778":0,"781":0,"783":0,"784":0,"785":0,"786":0,"790":0,"791":0,"792":0,"793":0,"795":0,"799":0,"800":0,"801":0,"802":0,"805":0,"809":0,"811":0,"813":0,"814":0,"815":0,"817":0,"818":0,"823":0,"824":0,"826":0,"827":0,"829":0,"832":0,"833":0,"837":0,"841":0,"842":0,"844":0,"845":0,"846":0,"847":0,"849":0,"852":0,"853":0,"855":0,"860":0,"862":0,"864":0,"865":0,"867":0,"871":0,"873":0,"874":0,"876":0,"877":0,"878":0,"879":0,"882":0,"884":0,"888":0,"891":0,"892":0,"893":0,"894":0,"896":0,"901":0,"902":0,"903":0,"905":0,"906":0,"911":0,"915":0,"919":0,"926":0,"930":0,"934":0,"936":0,"937":0,"938":0,"943":0,"944":0,"945":0,"948":0,"949":0,"951":0,"952":0,"953":0,"954":0,"958":0,"959":0,"964":0,"966":0,"967":0,"969":0,"970":0,"971":0,"974":0,"975":0,"977":0,"983":0,"984":0,"986":0,"987":0,"989":0,"992":0,"997":0,"998":0,"1000":0,"1001":0,"1003":0,"1004":0,"1006":0,"1009":0,"1013":0,"1014":0,"1017":0,"1021":0,"1022":0,"1023":0,"1024":0,"1027":0,"1032":0,"1033":0,"1035":0,"1040":0,"1047":0,"1048":0,"1050":0,"1052":0,"1053":0,"1054":0,"1059":0,"1061":0,"1062":0,"1063":0,"1064":0,"1066":0,"1068":0,"1070":0,"1072":0,"1073":0,"1075":0,"1076":0,"1078":0,"1082":0,"1086":0,"1087":0,"1091":0,"1095":0,"1097":0,"1098":0,"1099":0,"1100":0,"1101":0,"1103":0,"1106":0,"1107":0,"1109":0,"1114":0,"1115":0,"1119":0,"1121":0,"1122":0,"1126":0,"1127":0,"1128":0,"1129":0,"1133":0,"1134":0,"1138":0,"1139":0,"1142":0,"1143":0,"1146":0,"1148":0,"1149":0,"1152":0,"1153":0,"1155":0,"1157":0,"1158":0,"1159":0,"1173":0,"1175":0,"1176":0,"1178":0,"1179":0,"1180":0,"1191":0,"1193":0,"1194":0,"1196":0,"1197":0,"1199":0,"1209":0,"1222":0,"1223":0,"1224":0,"1225":0,"1236":0,"1237":0,"1239":0,"1240":0,"1241":0,"1244":0,"1255":0,"1256":0,"1268":0,"1278":0,"1289":0,"1291":0,"1292":0,"1304":0,"1305":0,"1318":0,"1319":0,"1329":0,"1339":0,"1351":0,"1363":0,"1364":0,"1366":0,"1380":0,"1382":0,"1383":0,"1385":0,"1398":0,"1399":0,"1415":0,"1417":0,"1418":0,"1420":0,"1421":0,"1423":0,"1424":0,"1426":0,"1427":0,"1438":0,"1440":0,"1441":0,"1444":0,"1445":0,"1456":0,"1457":0,"1459":0,"1467":0,"1469":0,"1470":0,"1471":0,"1473":0,"1474":0,"1475":0,"1476":0,"1477":0,"1482":0,"1484":0,"1485":0,"1488":0,"1491":0,"1493":0,"1494":0,"1496":0,"1500":0,"1501":0,"1503":0,"1504":0,"1509":0,"1510":0,"1514":0,"1515":0,"1516":0,"1521":0,"1522":0,"1526":0,"1527":0,"1528":0,"1532":0,"1534":0,"1535":0,"1539":0,"1540":0,"1541":0,"1545":0,"1546":0,"1547":0,"1551":0,"1553":0,"1554":0,"1556":0,"1557":0,"1562":0,"1564":0,"1565":0,"1567":0,"1572":0,"1580":0,"1581":0,"1582":0,"1584":0,"1595":0,"1597":0,"1599":0,"1600":0,"1604":0,"1605":0,"1606":0,"1607":0,"1610":0,"1611":0,"1612":0,"1615":0,"1616":0,"1619":0,"1620":0,"1621":0,"1623":0,"1624":0,"1628":0,"1629":0,"1632":0,"1633":0,"1636":0,"1637":0,"1641":0,"1659":0,"1661":0,"1662":0,"1665":0,"1666":0,"1667":0,"1669":0,"1674":0,"1675":0,"1677":0,"1678":0,"1679":0,"1682":0,"1683":0,"1685":0,"1686":0,"1687":0,"1688":0,"1689":0,"1690":0,"1694":0,"1695":0,"1696":0,"1698":0,"1714":0,"1726":0,"1755":0,"1756":0};
_yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"].functions = {"anonymous:23":0,"parseError:111":0,"popStack:141":0,"lex:147":0,"parse:114":0,"parseError:303":0,"setInput:310":0,"input:319":0,"unput:330":0,"more:334":0,"less:338":0,"pastInput:341":0,"upcomingInput:345":0,"showPosition:352":0,"next:357":0,"lex:407":0,"begin:415":0,"popState:418":0,"_currentRules:421":0,"topState:424":0,"begin:427":0,"anonymous:431":0,"(anonymous 3):301":0,"Parser:498":0,"(anonymous 2):17":0,"parse:504":0,"commonjsMain:505":0,"parse:525":0,"print:530":0,"log:541":0,"ProgramNode:551":0,"MustacheNode:557":0,"PartialNode:579":0,"verifyMatch:588":0,"BlockNode:594":0,"ContentNode:606":0,"HashNode:611":0,"IdNode:616":0,"StringNode:639":0,"IntegerNode:644":0,"BooleanNode:649":0,"CommentNode:654":0,"(anonymous 4):547":0,"disassemble:678":0,"compile:704":0,"accept:729":0,"(anonymous 6):743":0,"program:733":0,"compileProgram:750":0,"block:768":0,"hash:808":0,"partial:822":0,"content:836":0,"mustache:840":0,"ambiguousMustache:859":0,"simpleMustache:870":0,"helperMustache:887":0,"ID:900":0,"STRING:910":0,"INTEGER:914":0,"BOOLEAN:918":0,"opcode:925":0,"declare:929":0,"addDepth:933":0,"classifyMustache:942":0,"pushParams:963":0,"setupMustacheParams:982":0,"setupFullMustacheParams:996":0,"Literal:1013":0,"nameLookup:1020":0,"appendToBuffer:1031":0,"initializeBuffer:1039":0,"compile:1046":0,"nextOpcode:1085":0,"eat:1090":0,"preamble:1094":0,"createFunctionContext:1118":0,"(anonymous 7):1178":0,"blockValue:1172":0,"ambiguousBlockValue:1190":0,"appendContent:1208":0,"append:1221":0,"appendEscaped:1235":0,"getContext:1254":0,"lookupOnContext:1267":0,"pushContext:1277":0,"(anonymous 8):1291":0,"resolvePossibleLambda:1288":0,"(anonymous 9):1304":0,"lookup:1303":0,"pushStringParam:1317":0,"pushString:1328":0,"push:1338":0,"pushLiteral:1350":0,"pushProgram:1362":0,"invokeHelper:1379":0,"invokeKnownHelper:1397":0,"invokeAmbiguous:1414":0,"invokePartial:1437":0,"assignToHash:1455":0,"compileChildren:1466":0,"programExpression:1481":0,"register:1508":0,"useRegister:1513":0,"pushStackLiteral:1520":0,"pushStack:1525":0,"replaceStack:1531":0,"nextStack:1538":0,"incrStack:1544":0,"popStack:1550":0,"topStack:1561":0,"quotedString:1571":0,"setupHelper:1579":0,"setupParams:1594":0,"isValidJavaScriptVariableName:1665":0,"(anonymous 5):669":0,"precompile:1674":0,"compile:1686":0,"(anonymous 10):1694":0,"compile:1682":0,"render:1755":0,"(anonymous 1):1":0};
_yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"].coveredLines = 799;
_yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"].coveredFunctions = 122;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1);
YUI.add('handlebars-compiler', function (Y, NAME) {
/*!
Handlebars.js - Copyright (C) 2011 Yehuda Katz
https://raw.github.com/wycats/handlebars.js/master/LICENSE
*/
// This file contains code that will be inserted at the beginning of the
// handlebars-compiler module.
// This is necessary because the Y.Handlebars object is created in the
// handlebars-base module, but the native Handlebars code expects to use a local
// Handlebars reference.
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 1)", 1);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 13);
var Handlebars = Y.Handlebars;
/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */
/* Jison generated parser */
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 17);
var handlebars = (function(){
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 2)", 17);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 18);
var parser = {trace: function trace() { },
yy: {},
symbols_: {"error":2,"root":3,"program":4,"EOF":5,"statements":6,"simpleInverse":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"OPEN_PARTIAL":24,"params":25,"hash":26,"param":27,"STRING":28,"INTEGER":29,"BOOLEAN":30,"hashSegments":31,"hashSegment":32,"ID":33,"EQUALS":34,"pathSegments":35,"SEP":36,"$accept":0,"$end":1},
terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"OPEN_PARTIAL",28:"STRING",29:"INTEGER",30:"BOOLEAN",33:"ID",34:"EQUALS",36:"SEP"},
productions_: [0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]],
performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "anonymous", 23);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 25);
var $0 = $$.length - 1;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 26);
switch (yystate) {
case 1: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 27);
return $$[$0-1];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 28);
break;
case 2: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 29);
this.$ = new yy.ProgramNode($$[$0-2], $$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 30);
break;
case 3: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 31);
this.$ = new yy.ProgramNode($$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 32);
break;
case 4: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 33);
this.$ = new yy.ProgramNode([]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 34);
break;
case 5: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 35);
this.$ = [$$[$0]];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 36);
break;
case 6: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 37);
$$[$0-1].push($$[$0]); this.$ = $$[$0-1];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 38);
break;
case 7: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 39);
this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 40);
break;
case 8: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 41);
this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 42);
break;
case 9: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 43);
this.$ = $$[$0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 44);
break;
case 10: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 45);
this.$ = $$[$0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 46);
break;
case 11: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 47);
this.$ = new yy.ContentNode($$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 48);
break;
case 12: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 49);
this.$ = new yy.CommentNode($$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 50);
break;
case 13: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 51);
this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 52);
break;
case 14: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 53);
this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 54);
break;
case 15: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 55);
this.$ = $$[$0-1];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 56);
break;
case 16: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 57);
this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 58);
break;
case 17: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 59);
this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 60);
break;
case 18: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 61);
this.$ = new yy.PartialNode($$[$0-1]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 62);
break;
case 19: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 63);
this.$ = new yy.PartialNode($$[$0-2], $$[$0-1]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 64);
break;
case 20:
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 66);
break;
case 21: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 67);
this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 68);
break;
case 22: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 69);
this.$ = [[$$[$0-1]].concat($$[$0]), null];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 70);
break;
case 23: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 71);
this.$ = [[$$[$0-1]], $$[$0]];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 72);
break;
case 24: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 73);
this.$ = [[$$[$0]], null];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 74);
break;
case 25: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 75);
$$[$0-1].push($$[$0]); this.$ = $$[$0-1];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 76);
break;
case 26: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 77);
this.$ = [$$[$0]];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 78);
break;
case 27: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 79);
this.$ = $$[$0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 80);
break;
case 28: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 81);
this.$ = new yy.StringNode($$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 82);
break;
case 29: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 83);
this.$ = new yy.IntegerNode($$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 84);
break;
case 30: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 85);
this.$ = new yy.BooleanNode($$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 86);
break;
case 31: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 87);
this.$ = new yy.HashNode($$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 88);
break;
case 32: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 89);
$$[$0-1].push($$[$0]); this.$ = $$[$0-1];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 90);
break;
case 33: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 91);
this.$ = [$$[$0]];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 92);
break;
case 34: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 93);
this.$ = [$$[$0-2], $$[$0]];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 94);
break;
case 35: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 95);
this.$ = [$$[$0-2], new yy.StringNode($$[$0])];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 96);
break;
case 36: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 97);
this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 98);
break;
case 37: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 99);
this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 100);
break;
case 38: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 101);
this.$ = new yy.IdNode($$[$0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 102);
break;
case 39: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 103);
$$[$0-2].push($$[$0]); this.$ = $$[$0-2];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 104);
break;
case 40: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 105);
this.$ = [$$[$0]];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 106);
break;
}
},
table: [{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}],
defaultActions: {16:[2,1],37:[2,23],53:[2,21]},
parseError: function parseError(str, hash) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "parseError", 111);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 112);
throw new Error(str);
},
parse: function parse(input) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "parse", 114);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 115);
var self = this,
stack = [0],
vstack = [null], // semantic value stack
lstack = [], // location stack
table = this.table,
yytext = '',
yylineno = 0,
yyleng = 0,
recovering = 0,
TERROR = 2,
EOF = 1;
//this.reductionCount = this.shiftCount = 0;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 129);
this.lexer.setInput(input);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 130);
this.lexer.yy = this.yy;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 131);
this.yy.lexer = this.lexer;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 132);
this.yy.parser = this;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 133);
if (typeof this.lexer.yylloc == 'undefined')
{_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 134);
this.lexer.yylloc = {};}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 135);
var yyloc = this.lexer.yylloc;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 136);
lstack.push(yyloc);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 138);
if (typeof this.yy.parseError === 'function')
{_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 139);
this.parseError = this.yy.parseError;}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 141);
function popStack (n) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "popStack", 141);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 142);
stack.length = stack.length - 2*n;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 143);
vstack.length = vstack.length - n;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 144);
lstack.length = lstack.length - n;
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 147);
function lex() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "lex", 147);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 148);
var token;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 149);
token = self.lexer.lex() || 1; // $end = 1
// if token isn't its numeric value, convert
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 151);
if (typeof token !== 'number') {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 152);
token = self.symbols_[token] || token;
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 154);
return token;
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 157);
var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 158);
while (true) {
// retreive state number from top of stack
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 160);
state = stack[stack.length-1];
// use default actions if available
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 163);
if (this.defaultActions[state]) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 164);
action = this.defaultActions[state];
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 166);
if (symbol === null || typeof symbol == 'undefined') {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 167);
symbol = lex();
}
// read action for current state and first input
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 170);
action = table[state] && table[state][symbol];
}
// handle parse error
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 174);
_handle_error:
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 175);
if (typeof action === 'undefined' || !action.length || !action[0]) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 177);
var errStr = '';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 178);
if (!recovering) {
// Report error
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 180);
expected = [];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 181);
for (p in table[state]) {if (this.terminals_[p] && p > 2) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 182);
expected.push("'"+this.terminals_[p]+"'");
}}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 184);
if (this.lexer.showPosition) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 185);
errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'";
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 187);
errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
(symbol == 1 /*EOF*/ ? "end of input" :
("'"+(this.terminals_[symbol] || symbol)+"'"));
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 191);
this.parseError(errStr,
{text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
}
// just recovered from another error
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 196);
if (recovering == 3) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 197);
if (symbol == EOF) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 198);
throw new Error(errStr || 'Parsing halted.');
}
// discard current lookahead and grab another
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 202);
yyleng = this.lexer.yyleng;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 203);
yytext = this.lexer.yytext;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 204);
yylineno = this.lexer.yylineno;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 205);
yyloc = this.lexer.yylloc;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 206);
symbol = lex();
}
// try to recover from error
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 210);
while (1) {
// check for error recovery rule in this state
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 212);
if ((TERROR.toString()) in table[state]) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 213);
break;
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 215);
if (state === 0) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 216);
throw new Error(errStr || 'Parsing halted.');
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 218);
popStack(1);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 219);
state = stack[stack.length-1];
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 222);
preErrorSymbol = symbol == 2 ? null : symbol; // save the lookahead token
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 223);
symbol = TERROR; // insert generic error symbol as new lookahead
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 224);
state = stack[stack.length-1];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 225);
action = table[state] && table[state][TERROR];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 226);
recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
}
// this shouldn't happen, unless resolve defaults are off
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 230);
if (action[0] instanceof Array && action.length > 1) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 231);
throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 234);
switch (action[0]) {
case 1: // shift
//this.shiftCount++;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 239);
stack.push(symbol);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 240);
vstack.push(this.lexer.yytext);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 241);
lstack.push(this.lexer.yylloc);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 242);
stack.push(action[1]); // push state
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 243);
symbol = null;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 244);
if (!preErrorSymbol) { // normal execution/no error
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 245);
yyleng = this.lexer.yyleng;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 246);
yytext = this.lexer.yytext;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 247);
yylineno = this.lexer.yylineno;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 248);
yyloc = this.lexer.yylloc;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 249);
if (recovering > 0)
{_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 250);
recovering--;}
} else { // error just occurred, resume old lookahead f/ before error
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 252);
symbol = preErrorSymbol;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 253);
preErrorSymbol = null;
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 255);
break;
case 2: // reduce
//this.reductionCount++;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 260);
len = this.productions_[action[1]][1];
// perform semantic action
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 263);
yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
// default location, uses first token for firsts, last for lasts
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 265);
yyval._$ = {
first_line: lstack[lstack.length-(len||1)].first_line,
last_line: lstack[lstack.length-1].last_line,
first_column: lstack[lstack.length-(len||1)].first_column,
last_column: lstack[lstack.length-1].last_column
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 271);
r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 273);
if (typeof r !== 'undefined') {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 274);
return r;
}
// pop off stack
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 278);
if (len) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 279);
stack = stack.slice(0,-1*len*2);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 280);
vstack = vstack.slice(0, -1*len);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 281);
lstack = lstack.slice(0, -1*len);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 284);
stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 285);
vstack.push(yyval.$);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 286);
lstack.push(yyval._$);
// goto new state = table[STATE][NONTERMINAL]
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 288);
newState = table[stack[stack.length-2]][stack[stack.length-1]];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 289);
stack.push(newState);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 290);
break;
case 3: // accept
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 293);
return true;
}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 298);
return true;
}};
/* Jison generated lexer */
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 301);
var lexer = (function(){
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 3)", 301);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 302);
var lexer = ({EOF:1,
parseError:function parseError(str, hash) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "parseError", 303);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 304);
if (this.yy.parser) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 305);
this.yy.parser.parseError(str, hash);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 307);
throw new Error(str);
}
},
setInput:function (input) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "setInput", 310);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 311);
this._input = input;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 312);
this._more = this._less = this.done = false;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 313);
this.yylineno = this.yyleng = 0;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 314);
this.yytext = this.matched = this.match = '';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 315);
this.conditionStack = ['INITIAL'];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 316);
this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 317);
return this;
},
input:function () {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "input", 319);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 320);
var ch = this._input[0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 321);
this.yytext+=ch;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 322);
this.yyleng++;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 323);
this.match+=ch;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 324);
this.matched+=ch;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 325);
var lines = ch.match(/\n/);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 326);
if (lines) {this.yylineno++;}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 327);
this._input = this._input.slice(1);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 328);
return ch;
},
unput:function (ch) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "unput", 330);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 331);
this._input = ch + this._input;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 332);
return this;
},
more:function () {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "more", 334);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 335);
this._more = true;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 336);
return this;
},
less:function (n) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "less", 338);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 339);
this._input = this.match.slice(n) + this._input;
},
pastInput:function () {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "pastInput", 341);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 342);
var past = this.matched.substr(0, this.matched.length - this.match.length);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 343);
return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
},
upcomingInput:function () {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "upcomingInput", 345);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 346);
var next = this.match;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 347);
if (next.length < 20) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 348);
next += this._input.substr(0, 20-next.length);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 350);
return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
},
showPosition:function () {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "showPosition", 352);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 353);
var pre = this.pastInput();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 354);
var c = new Array(pre.length + 1).join("-");
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 355);
return pre + this.upcomingInput() + "\n" + c+"^";
},
next:function () {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "next", 357);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 358);
if (this.done) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 359);
return this.EOF;
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 361);
if (!this._input) {this.done = true;}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 363);
var token,
match,
tempMatch,
index,
col,
lines;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 369);
if (!this._more) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 370);
this.yytext = '';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 371);
this.match = '';
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 373);
var rules = this._currentRules();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 374);
for (var i=0;i < rules.length; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 375);
tempMatch = this._input.match(this.rules[rules[i]]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 376);
if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 377);
match = tempMatch;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 378);
index = i;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 379);
if (!this.options.flex) {break;}
}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 382);
if (match) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 383);
lines = match[0].match(/\n.*/g);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 384);
if (lines) {this.yylineno += lines.length;}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 385);
this.yylloc = {first_line: this.yylloc.last_line,
last_line: this.yylineno+1,
first_column: this.yylloc.last_column,
last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 389);
this.yytext += match[0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 390);
this.match += match[0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 391);
this.yyleng = this.yytext.length;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 392);
this._more = false;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 393);
this._input = this._input.slice(match[0].length);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 394);
this.matched += match[0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 395);
token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 396);
if (this.done && this._input) {this.done = false;}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 397);
if (token) {return token;}
else {_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 398);
return;}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 400);
if (this._input === "") {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 401);
return this.EOF;
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 403);
return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
{text: "", token: null, line: this.yylineno});
}
},
lex:function lex() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "lex", 407);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 408);
var r = this.next();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 409);
if (typeof r !== 'undefined') {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 410);
return r;
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 412);
return this.lex();
}
},
begin:function begin(condition) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "begin", 415);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 416);
this.conditionStack.push(condition);
},
popState:function popState() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "popState", 418);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 419);
return this.conditionStack.pop();
},
_currentRules:function _currentRules() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "_currentRules", 421);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 422);
return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
},
topState:function () {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "topState", 424);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 425);
return this.conditionStack[this.conditionStack.length-2];
},
pushState:function begin(condition) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "begin", 427);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 428);
this.begin(condition);
}});
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 430);
lexer.options = {};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 431);
lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "anonymous", 431);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 433);
var YYSTATE=YY_START
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 434);
switch($avoiding_name_collisions) {
case 0:
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 436);
if(yy_.yytext.slice(-1) !== "\\") {this.begin("mu");}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 437);
if(yy_.yytext.slice(-1) === "\\") {yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin("emu");}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 438);
if(yy_.yytext) {return 14;}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 440);
break;
case 1: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 441);
return 14;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 442);
break;
case 2: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 443);
this.popState(); return 14;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 444);
break;
case 3: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 445);
return 24;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 446);
break;
case 4: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 447);
return 16;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 448);
break;
case 5: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 449);
return 20;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 450);
break;
case 6: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 451);
return 19;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 452);
break;
case 7: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 453);
return 19;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 454);
break;
case 8: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 455);
return 23;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 456);
break;
case 9: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 457);
return 23;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 458);
break;
case 10: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 459);
yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 460);
break;
case 11: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 461);
return 22;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 462);
break;
case 12: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 463);
return 34;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 464);
break;
case 13: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 465);
return 33;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 466);
break;
case 14: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 467);
return 33;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 468);
break;
case 15: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 469);
return 36;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 470);
break;
case 16: /*ignore whitespace*/
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 472);
break;
case 17: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 473);
this.popState(); return 18;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 474);
break;
case 18: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 475);
this.popState(); return 18;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 476);
break;
case 19: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 477);
yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 28;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 478);
break;
case 20: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 479);
return 30;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 480);
break;
case 21: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 481);
return 30;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 482);
break;
case 22: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 483);
return 29;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 484);
break;
case 23: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 485);
return 33;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 486);
break;
case 24: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 487);
yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 33;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 488);
break;
case 25: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 489);
return 'INVALID';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 490);
break;
case 26: _yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 491);
return 5;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 492);
break;
}
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 495);
lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{)))/,/^(?:\{\{>)/,/^(?:\{\{#)/,/^(?:\{\{\/)/,/^(?:\{\{\^)/,/^(?:\{\{\s*else\b)/,/^(?:\{\{\{)/,/^(?:\{\{&)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{)/,/^(?:=)/,/^(?:\.(?=[} ]))/,/^(?:\.\.)/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}\}\})/,/^(?:\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:true(?=[}\s]))/,/^(?:false(?=[}\s]))/,/^(?:[0-9]+(?=[}\s]))/,/^(?:[a-zA-Z0-9_$-]+(?=[=}\s\/.]))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 496);
lexer.conditions = {"mu":{"rules":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"INITIAL":{"rules":[0,1,26],"inclusive":true}};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 497);
return lexer;})()
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 498);
parser.lexer = lexer;function Parser () { _yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "Parser", 498);
this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 499);
return new Parser;
})();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 501);
if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 502);
exports.parser = handlebars;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 503);
exports.Parser = handlebars.Parser;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 504);
exports.parse = function () { _yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "parse", 504);
return handlebars.parse.apply(handlebars, arguments); }
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 505);
exports.main = function commonjsMain(args) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "commonjsMain", 505);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 506);
if (!args[1])
{_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 507);
throw new Error('Usage: '+args[0]+' FILE');}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 508);
var source, cwd;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 509);
if (typeof process !== 'undefined') {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 510);
source = require('fs').readFileSync(require('path').resolve(args[1]), "utf8");
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 512);
source = require("file").path(require("file").cwd()).join(args[1]).read({charset: "utf-8"});
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 514);
return exports.parser.parse(source);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 516);
if (typeof module !== 'undefined' && require.main === module) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 517);
exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args);
}
}_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 519);
;
/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */
// BEGIN(BROWSER)
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 523);
Handlebars.Parser = handlebars;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 525);
Handlebars.parse = function(string) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "parse", 525);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 526);
Handlebars.Parser.yy = Handlebars.AST;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 527);
return Handlebars.Parser.parse(string);
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 530);
Handlebars.print = function(ast) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "print", 530);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 531);
return new Handlebars.PrintVisitor().accept(ast);
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 534);
Handlebars.logger = {
DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
// override in the host environment
log: function(level, str) {}
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 541);
Handlebars.log = function(level, str) { _yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "log", 541);
Handlebars.logger.log(level, str); };
// END(BROWSER)
/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */
// BEGIN(BROWSER)
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 547);
(function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 4)", 547);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 549);
Handlebars.AST = {};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 551);
Handlebars.AST.ProgramNode = function(statements, inverse) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "ProgramNode", 551);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 552);
this.type = "program";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 553);
this.statements = statements;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 554);
if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); }
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 557);
Handlebars.AST.MustacheNode = function(rawParams, hash, unescaped) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "MustacheNode", 557);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 558);
this.type = "mustache";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 559);
this.escaped = !unescaped;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 560);
this.hash = hash;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 562);
var id = this.id = rawParams[0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 563);
var params = this.params = rawParams.slice(1);
// a mustache is an eligible helper if:
// * its id is simple (a single part, not `this` or `..`)
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 567);
var eligibleHelper = this.eligibleHelper = id.isSimple;
// a mustache is definitely a helper if:
// * it is an eligible helper, and
// * it has at least one parameter or hash segment
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 572);
this.isHelper = eligibleHelper && (params.length || hash);
// if a mustache is an eligible helper but not a definite
// helper, it is ambiguous, and will be resolved in a later
// pass or at runtime.
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 579);
Handlebars.AST.PartialNode = function(id, context) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "PartialNode", 579);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 580);
this.type = "partial";
// TODO: disallow complex IDs
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 584);
this.id = id;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 585);
this.context = context;
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 588);
var verifyMatch = function(open, close) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "verifyMatch", 588);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 589);
if(open.original !== close.original) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 590);
throw new Handlebars.Exception(open.original + " doesn't match " + close.original);
}
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 594);
Handlebars.AST.BlockNode = function(mustache, program, inverse, close) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "BlockNode", 594);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 595);
verifyMatch(mustache.id, close);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 596);
this.type = "block";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 597);
this.mustache = mustache;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 598);
this.program = program;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 599);
this.inverse = inverse;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 601);
if (this.inverse && !this.program) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 602);
this.isInverse = true;
}
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 606);
Handlebars.AST.ContentNode = function(string) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "ContentNode", 606);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 607);
this.type = "content";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 608);
this.string = string;
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 611);
Handlebars.AST.HashNode = function(pairs) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "HashNode", 611);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 612);
this.type = "hash";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 613);
this.pairs = pairs;
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 616);
Handlebars.AST.IdNode = function(parts) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "IdNode", 616);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 617);
this.type = "ID";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 618);
this.original = parts.join(".");
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 620);
var dig = [], depth = 0;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 622);
for(var i=0,l=parts.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 623);
var part = parts[i];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 625);
if(part === "..") { depth++; }
else {_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 626);
if(part === "." || part === "this") { this.isScoped = true; }
else { dig.push(part); }}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 630);
this.parts = dig;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 631);
this.string = dig.join('.');
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 632);
this.depth = depth;
// an ID is simple if it only has one part, and that part is not
// `..` or `this`.
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 636);
this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 639);
Handlebars.AST.StringNode = function(string) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "StringNode", 639);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 640);
this.type = "STRING";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 641);
this.string = string;
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 644);
Handlebars.AST.IntegerNode = function(integer) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "IntegerNode", 644);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 645);
this.type = "INTEGER";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 646);
this.integer = integer;
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 649);
Handlebars.AST.BooleanNode = function(bool) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "BooleanNode", 649);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 650);
this.type = "BOOLEAN";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 651);
this.bool = bool;
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 654);
Handlebars.AST.CommentNode = function(comment) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "CommentNode", 654);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 655);
this.type = "comment";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 656);
this.comment = comment;
};
})();
// END(BROWSER)
/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */
// BEGIN(BROWSER)
/*jshint eqnull:true*/
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 666);
Handlebars.Compiler = function() {};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 667);
Handlebars.JavaScriptCompiler = function() {};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 669);
(function(Compiler, JavaScriptCompiler) {
// the foundHelper register will disambiguate helper lookup from finding a
// function in a context. This is necessary for mustache compatibility, which
// requires that context functions in blocks are evaluated by blockHelperMissing,
// and then proceed as if the resulting value was provided to blockHelperMissing.
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 5)", 669);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 675);
Compiler.prototype = {
compiler: Compiler,
disassemble: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "disassemble", 678);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 679);
var opcodes = this.opcodes, opcode, out = [], params, param;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 681);
for (var i=0, l=opcodes.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 682);
opcode = opcodes[i];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 684);
if (opcode.opcode === 'DECLARE') {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 685);
out.push("DECLARE " + opcode.name + "=" + opcode.value);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 687);
params = [];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 688);
for (var j=0; j<opcode.args.length; j++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 689);
param = opcode.args[j];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 690);
if (typeof param === "string") {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 691);
param = "\"" + param.replace("\n", "\\n") + "\"";
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 693);
params.push(param);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 695);
out.push(opcode.opcode + " " + params.join(" "));
}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 699);
return out.join("\n");
},
guid: 0,
compile: function(program, options) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "compile", 704);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 705);
this.children = [];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 706);
this.depths = {list: []};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 707);
this.options = options;
// These changes will propagate to the other compiler components
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 710);
var knownHelpers = this.options.knownHelpers;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 711);
this.options.knownHelpers = {
'helperMissing': true,
'blockHelperMissing': true,
'each': true,
'if': true,
'unless': true,
'with': true,
'log': true
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 720);
if (knownHelpers) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 721);
for (var name in knownHelpers) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 722);
this.options.knownHelpers[name] = knownHelpers[name];
}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 726);
return this.program(program);
},
accept: function(node) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "accept", 729);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 730);
return this[node.type](node);
},
program: function(program) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "program", 733);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 734);
var statements = program.statements, statement;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 735);
this.opcodes = [];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 737);
for(var i=0, l=statements.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 738);
statement = statements[i];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 739);
this[statement.type](statement);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 741);
this.isSimple = l === 1;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 743);
this.depths.list = this.depths.list.sort(function(a, b) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 6)", 743);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 744);
return a - b;
});
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 747);
return this;
},
compileProgram: function(program) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "compileProgram", 750);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 751);
var result = new this.compiler().compile(program, this.options);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 752);
var guid = this.guid++, depth;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 754);
this.usePartial = this.usePartial || result.usePartial;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 756);
this.children[guid] = result;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 758);
for(var i=0, l=result.depths.list.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 759);
depth = result.depths.list[i];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 761);
if(depth < 2) { continue; }
else { this.addDepth(depth - 1); }
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 765);
return guid;
},
block: function(block) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "block", 768);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 769);
var mustache = block.mustache,
program = block.program,
inverse = block.inverse;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 773);
if (program) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 774);
program = this.compileProgram(program);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 777);
if (inverse) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 778);
inverse = this.compileProgram(inverse);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 781);
var type = this.classifyMustache(mustache);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 783);
if (type === "helper") {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 784);
this.helperMustache(mustache, program, inverse);
} else {_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 785);
if (type === "simple") {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 786);
this.simpleMustache(mustache);
// now that the simple mustache is resolved, we need to
// evaluate it by executing `blockHelperMissing`
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 790);
this.opcode('pushProgram', program);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 791);
this.opcode('pushProgram', inverse);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 792);
this.opcode('pushLiteral', '{}');
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 793);
this.opcode('blockValue');
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 795);
this.ambiguousMustache(mustache, program, inverse);
// now that the simple mustache is resolved, we need to
// evaluate it by executing `blockHelperMissing`
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 799);
this.opcode('pushProgram', program);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 800);
this.opcode('pushProgram', inverse);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 801);
this.opcode('pushLiteral', '{}');
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 802);
this.opcode('ambiguousBlockValue');
}}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 805);
this.opcode('append');
},
hash: function(hash) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "hash", 808);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 809);
var pairs = hash.pairs, pair, val;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 811);
this.opcode('push', '{}');
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 813);
for(var i=0, l=pairs.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 814);
pair = pairs[i];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 815);
val = pair[1];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 817);
this.accept(val);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 818);
this.opcode('assignToHash', pair[0]);
}
},
partial: function(partial) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "partial", 822);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 823);
var id = partial.id;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 824);
this.usePartial = true;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 826);
if(partial.context) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 827);
this.ID(partial.context);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 829);
this.opcode('push', 'depth0');
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 832);
this.opcode('invokePartial', id.original);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 833);
this.opcode('append');
},
content: function(content) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "content", 836);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 837);
this.opcode('appendContent', content.string);
},
mustache: function(mustache) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "mustache", 840);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 841);
var options = this.options;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 842);
var type = this.classifyMustache(mustache);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 844);
if (type === "simple") {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 845);
this.simpleMustache(mustache);
} else {_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 846);
if (type === "helper") {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 847);
this.helperMustache(mustache);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 849);
this.ambiguousMustache(mustache);
}}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 852);
if(mustache.escaped && !options.noEscape) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 853);
this.opcode('appendEscaped');
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 855);
this.opcode('append');
}
},
ambiguousMustache: function(mustache, program, inverse) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "ambiguousMustache", 859);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 860);
var id = mustache.id, name = id.parts[0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 862);
this.opcode('getContext', id.depth);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 864);
this.opcode('pushProgram', program);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 865);
this.opcode('pushProgram', inverse);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 867);
this.opcode('invokeAmbiguous', name);
},
simpleMustache: function(mustache, program, inverse) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "simpleMustache", 870);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 871);
var id = mustache.id;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 873);
this.addDepth(id.depth);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 874);
this.opcode('getContext', id.depth);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 876);
if (id.parts.length) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 877);
this.opcode('lookupOnContext', id.parts[0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 878);
for(var i=1, l=id.parts.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 879);
this.opcode('lookup', id.parts[i]);
}
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 882);
this.opcode('pushContext');
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 884);
this.opcode('resolvePossibleLambda');
},
helperMustache: function(mustache, program, inverse) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "helperMustache", 887);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 888);
var params = this.setupFullMustacheParams(mustache, program, inverse),
name = mustache.id.parts[0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 891);
if (this.options.knownHelpers[name]) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 892);
this.opcode('invokeKnownHelper', params.length, name);
} else {_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 893);
if (this.knownHelpersOnly) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 894);
throw new Error("You specified knownHelpersOnly, but used the unknown helper " + name);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 896);
this.opcode('invokeHelper', params.length, name);
}}
},
ID: function(id) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "ID", 900);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 901);
this.addDepth(id.depth);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 902);
this.opcode('getContext', id.depth);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 903);
this.opcode('lookupOnContext', id.parts[0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 905);
for(var i=1, l=id.parts.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 906);
this.opcode('lookup', id.parts[i]);
}
},
STRING: function(string) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "STRING", 910);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 911);
this.opcode('pushString', string.string);
},
INTEGER: function(integer) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "INTEGER", 914);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 915);
this.opcode('pushLiteral', integer.integer);
},
BOOLEAN: function(bool) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "BOOLEAN", 918);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 919);
this.opcode('pushLiteral', bool.bool);
},
comment: function() {},
// HELPERS
opcode: function(name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "opcode", 925);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 926);
this.opcodes.push({ opcode: name, args: [].slice.call(arguments, 1) });
},
declare: function(name, value) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "declare", 929);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 930);
this.opcodes.push({ opcode: 'DECLARE', name: name, value: value });
},
addDepth: function(depth) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "addDepth", 933);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 934);
if(depth === 0) { return; }
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 936);
if(!this.depths[depth]) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 937);
this.depths[depth] = true;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 938);
this.depths.list.push(depth);
}
},
classifyMustache: function(mustache) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "classifyMustache", 942);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 943);
var isHelper = mustache.isHelper;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 944);
var isEligible = mustache.eligibleHelper;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 945);
var options = this.options;
// if ambiguous, we can possibly resolve the ambiguity now
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 948);
if (isEligible && !isHelper) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 949);
var name = mustache.id.parts[0];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 951);
if (options.knownHelpers[name]) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 952);
isHelper = true;
} else {_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 953);
if (options.knownHelpersOnly) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 954);
isEligible = false;
}}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 958);
if (isHelper) { return "helper"; }
else {_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 959);
if (isEligible) { return "ambiguous"; }
else { return "simple"; }}
},
pushParams: function(params) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "pushParams", 963);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 964);
var i = params.length, param;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 966);
while(i--) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 967);
param = params[i];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 969);
if(this.options.stringParams) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 970);
if(param.depth) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 971);
this.addDepth(param.depth);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 974);
this.opcode('getContext', param.depth || 0);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 975);
this.opcode('pushStringParam', param.string);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 977);
this[param.type](param);
}
}
},
setupMustacheParams: function(mustache) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "setupMustacheParams", 982);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 983);
var params = mustache.params;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 984);
this.pushParams(params);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 986);
if(mustache.hash) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 987);
this.hash(mustache.hash);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 989);
this.opcode('pushLiteral', '{}');
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 992);
return params;
},
// this will replace setupMustacheParams when we're done
setupFullMustacheParams: function(mustache, program, inverse) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "setupFullMustacheParams", 996);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 997);
var params = mustache.params;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 998);
this.pushParams(params);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1000);
this.opcode('pushProgram', program);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1001);
this.opcode('pushProgram', inverse);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1003);
if(mustache.hash) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1004);
this.hash(mustache.hash);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1006);
this.opcode('pushLiteral', '{}');
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1009);
return params;
}
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1013);
var Literal = function(value) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "Literal", 1013);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1014);
this.value = value;
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1017);
JavaScriptCompiler.prototype = {
// PUBLIC API: You can override these methods in a subclass to provide
// alternative compiled forms for name lookup and buffering semantics
nameLookup: function(parent, name, type) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "nameLookup", 1020);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1021);
if (/^[0-9]+$/.test(name)) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1022);
return parent + "[" + name + "]";
} else {_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1023);
if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1024);
return parent + "." + name;
}
else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1027);
return parent + "['" + name + "']";
}}
},
appendToBuffer: function(string) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "appendToBuffer", 1031);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1032);
if (this.environment.isSimple) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1033);
return "return " + string + ";";
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1035);
return "buffer += " + string + ";";
}
},
initializeBuffer: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "initializeBuffer", 1039);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1040);
return this.quotedString("");
},
namespace: "Handlebars",
// END PUBLIC API
compile: function(environment, options, context, asObject) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "compile", 1046);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1047);
this.environment = environment;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1048);
this.options = options || {};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1050);
Handlebars.log(Handlebars.logger.DEBUG, this.environment.disassemble() + "\n\n");
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1052);
this.name = this.environment.name;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1053);
this.isChild = !!context;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1054);
this.context = context || {
programs: [],
aliases: { }
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1059);
this.preamble();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1061);
this.stackSlot = 0;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1062);
this.stackVars = [];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1063);
this.registers = { list: [] };
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1064);
this.compileStack = [];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1066);
this.compileChildren(environment, options);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1068);
var opcodes = environment.opcodes, opcode;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1070);
this.i = 0;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1072);
for(l=opcodes.length; this.i<l; this.i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1073);
opcode = opcodes[this.i];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1075);
if(opcode.opcode === 'DECLARE') {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1076);
this[opcode.name] = opcode.value;
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1078);
this[opcode.opcode].apply(this, opcode.args);
}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1082);
return this.createFunctionContext(asObject);
},
nextOpcode: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "nextOpcode", 1085);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1086);
var opcodes = this.environment.opcodes, opcode = opcodes[this.i + 1];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1087);
return opcodes[this.i + 1];
},
eat: function(opcode) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "eat", 1090);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1091);
this.i = this.i + 1;
},
preamble: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "preamble", 1094);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1095);
var out = [];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1097);
if (!this.isChild) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1098);
var namespace = this.namespace;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1099);
var copies = "helpers = helpers || " + namespace + ".helpers;";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1100);
if(this.environment.usePartial) { copies = copies + " partials = partials || " + namespace + ".partials;"; }
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1101);
out.push(copies);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1103);
out.push('');
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1106);
if (!this.environment.isSimple) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1107);
out.push(", buffer = " + this.initializeBuffer());
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1109);
out.push("");
}
// track the last context pushed into place to allow skipping the
// getContext opcode when it would be a noop
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1114);
this.lastContext = 0;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1115);
this.source = out;
},
createFunctionContext: function(asObject) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "createFunctionContext", 1118);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1119);
var locals = this.stackVars.concat(this.registers.list);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1121);
if(locals.length > 0) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1122);
this.source[1] = this.source[1] + ", " + locals.join(", ");
}
// Generate minimizer alias mappings
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1126);
if (!this.isChild) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1127);
var aliases = [];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1128);
for (var alias in this.context.aliases) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1129);
this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];
}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1133);
if (this.source[1]) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1134);
this.source[1] = "var " + this.source[1].substring(2) + ";";
}
// Merge children
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1138);
if (!this.isChild) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1139);
this.source[1] += '\n' + this.context.programs.join('\n') + '\n';
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1142);
if (!this.environment.isSimple) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1143);
this.source.push("return buffer;");
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1146);
var params = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1148);
for(var i=0, l=this.environment.depths.list.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1149);
params.push("depth" + this.environment.depths.list[i]);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1152);
if (asObject) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1153);
params.push(this.source.join("\n "));
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1155);
return Function.apply(this, params);
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1157);
var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\n ' + this.source.join("\n ") + '}';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1158);
Handlebars.log(Handlebars.logger.DEBUG, functionSource + "\n\n");
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1159);
return functionSource;
}
},
// [blockValue]
//
// On stack, before: hash, inverse, program, value
// On stack, after: return value of blockHelperMissing
//
// The purpose of this opcode is to take a block of the form
// `{{#foo}}...{{/foo}}`, resolve the value of `foo`, and
// replace it on the stack with the result of properly
// invoking blockHelperMissing.
blockValue: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "blockValue", 1172);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1173);
this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1175);
var params = ["depth0"];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1176);
this.setupParams(0, params);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1178);
this.replaceStack(function(current) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 7)", 1178);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1179);
params.splice(1, 0, current);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1180);
return current + " = blockHelperMissing.call(" + params.join(", ") + ")";
});
},
// [ambiguousBlockValue]
//
// On stack, before: hash, inverse, program, value
// Compiler value, before: lastHelper=value of last found helper, if any
// On stack, after, if no lastHelper: same as [blockValue]
// On stack, after, if lastHelper: value
ambiguousBlockValue: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "ambiguousBlockValue", 1190);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1191);
this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1193);
var params = ["depth0"];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1194);
this.setupParams(0, params);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1196);
var current = this.topStack();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1197);
params.splice(1, 0, current);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1199);
this.source.push("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }");
},
// [appendContent]
//
// On stack, before: ...
// On stack, after: ...
//
// Appends the string value of `content` to the current buffer
appendContent: function(content) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "appendContent", 1208);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1209);
this.source.push(this.appendToBuffer(this.quotedString(content)));
},
// [append]
//
// On stack, before: value, ...
// On stack, after: ...
//
// Coerces `value` to a String and appends it to the current buffer.
//
// If `value` is truthy, or 0, it is coerced into a string and appended
// Otherwise, the empty string is appended
append: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "append", 1221);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1222);
var local = this.popStack();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1223);
this.source.push("if(" + local + " || " + local + " === 0) { " + this.appendToBuffer(local) + " }");
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1224);
if (this.environment.isSimple) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1225);
this.source.push("else { " + this.appendToBuffer("''") + " }");
}
},
// [appendEscaped]
//
// On stack, before: value, ...
// On stack, after: ...
//
// Escape `value` and append it to the buffer
appendEscaped: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "appendEscaped", 1235);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1236);
var opcode = this.nextOpcode(), extra = "";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1237);
this.context.aliases.escapeExpression = 'this.escapeExpression';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1239);
if(opcode && opcode.opcode === 'appendContent') {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1240);
extra = " + " + this.quotedString(opcode.args[0]);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1241);
this.eat(opcode);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1244);
this.source.push(this.appendToBuffer("escapeExpression(" + this.popStack() + ")" + extra));
},
// [getContext]
//
// On stack, before: ...
// On stack, after: ...
// Compiler value, after: lastContext=depth
//
// Set the value of the `lastContext` compiler value to the depth
getContext: function(depth) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "getContext", 1254);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1255);
if(this.lastContext !== depth) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1256);
this.lastContext = depth;
}
},
// [lookupOnContext]
//
// On stack, before: ...
// On stack, after: currentContext[name], ...
//
// Looks up the value of `name` on the current context and pushes
// it onto the stack.
lookupOnContext: function(name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "lookupOnContext", 1267);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1268);
this.pushStack(this.nameLookup('depth' + this.lastContext, name, 'context'));
},
// [pushContext]
//
// On stack, before: ...
// On stack, after: currentContext, ...
//
// Pushes the value of the current context onto the stack.
pushContext: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "pushContext", 1277);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1278);
this.pushStackLiteral('depth' + this.lastContext);
},
// [resolvePossibleLambda]
//
// On stack, before: value, ...
// On stack, after: resolved value, ...
//
// If the `value` is a lambda, replace it on the stack by
// the return value of the lambda
resolvePossibleLambda: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "resolvePossibleLambda", 1288);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1289);
this.context.aliases.functionType = '"function"';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1291);
this.replaceStack(function(current) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 8)", 1291);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1292);
return "typeof " + current + " === functionType ? " + current + "() : " + current;
});
},
// [lookup]
//
// On stack, before: value, ...
// On stack, after: value[name], ...
//
// Replace the value on the stack with the result of looking
// up `name` on `value`
lookup: function(name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "lookup", 1303);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1304);
this.replaceStack(function(current) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 9)", 1304);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1305);
return current + " == null || " + current + " === false ? " + current + " : " + this.nameLookup(current, name, 'context');
});
},
// [pushStringParam]
//
// On stack, before: ...
// On stack, after: string, currentContext, ...
//
// This opcode is designed for use in string mode, which
// provides the string value of a parameter along with its
// depth rather than resolving it immediately.
pushStringParam: function(string) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "pushStringParam", 1317);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1318);
this.pushStackLiteral('depth' + this.lastContext);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1319);
this.pushString(string);
},
// [pushString]
//
// On stack, before: ...
// On stack, after: quotedString(string), ...
//
// Push a quoted version of `string` onto the stack
pushString: function(string) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "pushString", 1328);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1329);
this.pushStackLiteral(this.quotedString(string));
},
// [push]
//
// On stack, before: ...
// On stack, after: expr, ...
//
// Push an expression onto the stack
push: function(expr) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "push", 1338);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1339);
this.pushStack(expr);
},
// [pushLiteral]
//
// On stack, before: ...
// On stack, after: value, ...
//
// Pushes a value onto the stack. This operation prevents
// the compiler from creating a temporary variable to hold
// it.
pushLiteral: function(value) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "pushLiteral", 1350);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1351);
this.pushStackLiteral(value);
},
// [pushProgram]
//
// On stack, before: ...
// On stack, after: program(guid), ...
//
// Push a program expression onto the stack. This takes
// a compile-time guid and converts it into a runtime-accessible
// expression.
pushProgram: function(guid) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "pushProgram", 1362);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1363);
if (guid != null) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1364);
this.pushStackLiteral(this.programExpression(guid));
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1366);
this.pushStackLiteral(null);
}
},
// [invokeHelper]
//
// On stack, before: hash, inverse, program, params..., ...
// On stack, after: result of helper invocation
//
// Pops off the helper's parameters, invokes the helper,
// and pushes the helper's return value onto the stack.
//
// If the helper is not found, `helperMissing` is called.
invokeHelper: function(paramSize, name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "invokeHelper", 1379);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1380);
this.context.aliases.helperMissing = 'helpers.helperMissing';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1382);
var helper = this.lastHelper = this.setupHelper(paramSize, name);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1383);
this.register('foundHelper', helper.name);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1385);
this.pushStack("foundHelper ? foundHelper.call(" +
helper.callParams + ") " + ": helperMissing.call(" +
helper.helperMissingParams + ")");
},
// [invokeKnownHelper]
//
// On stack, before: hash, inverse, program, params..., ...
// On stack, after: result of helper invocation
//
// This operation is used when the helper is known to exist,
// so a `helperMissing` fallback is not required.
invokeKnownHelper: function(paramSize, name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "invokeKnownHelper", 1397);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1398);
var helper = this.setupHelper(paramSize, name);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1399);
this.pushStack(helper.name + ".call(" + helper.callParams + ")");
},
// [invokeAmbiguous]
//
// On stack, before: hash, inverse, program, params..., ...
// On stack, after: result of disambiguation
//
// This operation is used when an expression like `{{foo}}`
// is provided, but we don't know at compile-time whether it
// is a helper or a path.
//
// This operation emits more code than the other options,
// and can be avoided by passing the `knownHelpers` and
// `knownHelpersOnly` flags at compile-time.
invokeAmbiguous: function(name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "invokeAmbiguous", 1414);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1415);
this.context.aliases.functionType = '"function"';
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1417);
this.pushStackLiteral('{}');
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1418);
var helper = this.setupHelper(0, name);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1420);
var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1421);
this.register('foundHelper', helperName);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1423);
var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1424);
var nextStack = this.nextStack();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1426);
this.source.push('if (foundHelper) { ' + nextStack + ' = foundHelper.call(' + helper.callParams + '); }');
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1427);
this.source.push('else { ' + nextStack + ' = ' + nonHelper + '; ' + nextStack + ' = typeof ' + nextStack + ' === functionType ? ' + nextStack + '() : ' + nextStack + '; }');
},
// [invokePartial]
//
// On stack, before: context, ...
// On stack after: result of partial invocation
//
// This operation pops off a context, invokes a partial with that context,
// and pushes the result of the invocation back.
invokePartial: function(name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "invokePartial", 1437);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1438);
var params = [this.nameLookup('partials', name, 'partial'), "'" + name + "'", this.popStack(), "helpers", "partials"];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1440);
if (this.options.data) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1441);
params.push("data");
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1444);
this.context.aliases.self = "this";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1445);
this.pushStack("self.invokePartial(" + params.join(", ") + ");");
},
// [assignToHash]
//
// On stack, before: value, hash, ...
// On stack, after: hash, ...
//
// Pops a value and hash off the stack, assigns `hash[key] = value`
// and pushes the hash back onto the stack.
assignToHash: function(key) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "assignToHash", 1455);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1456);
var value = this.popStack();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1457);
var hash = this.topStack();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1459);
this.source.push(hash + "['" + key + "'] = " + value + ";");
},
// HELPERS
compiler: JavaScriptCompiler,
compileChildren: function(environment, options) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "compileChildren", 1466);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1467);
var children = environment.children, child, compiler;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1469);
for(var i=0, l=children.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1470);
child = children[i];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1471);
compiler = new this.compiler();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1473);
this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1474);
var index = this.context.programs.length;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1475);
child.index = index;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1476);
child.name = 'program' + index;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1477);
this.context.programs[index] = compiler.compile(child, options, this.context);
}
},
programExpression: function(guid) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "programExpression", 1481);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1482);
this.context.aliases.self = "this";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1484);
if(guid == null) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1485);
return "self.noop";
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1488);
var child = this.environment.children[guid],
depths = child.depths.list, depth;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1491);
var programParams = [child.index, child.name, "data"];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1493);
for(var i=0, l = depths.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1494);
depth = depths[i];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1496);
if(depth === 1) { programParams.push("depth0"); }
else { programParams.push("depth" + (depth - 1)); }
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1500);
if(depths.length === 0) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1501);
return "self.program(" + programParams.join(", ") + ")";
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1503);
programParams.shift();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1504);
return "self.programWithDepth(" + programParams.join(", ") + ")";
}
},
register: function(name, val) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "register", 1508);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1509);
this.useRegister(name);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1510);
this.source.push(name + " = " + val + ";");
},
useRegister: function(name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "useRegister", 1513);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1514);
if(!this.registers[name]) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1515);
this.registers[name] = true;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1516);
this.registers.list.push(name);
}
},
pushStackLiteral: function(item) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "pushStackLiteral", 1520);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1521);
this.compileStack.push(new Literal(item));
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1522);
return item;
},
pushStack: function(item) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "pushStack", 1525);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1526);
this.source.push(this.incrStack() + " = " + item + ";");
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1527);
this.compileStack.push("stack" + this.stackSlot);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1528);
return "stack" + this.stackSlot;
},
replaceStack: function(callback) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "replaceStack", 1531);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1532);
var item = callback.call(this, this.topStack());
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1534);
this.source.push(this.topStack() + " = " + item + ";");
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1535);
return "stack" + this.stackSlot;
},
nextStack: function(skipCompileStack) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "nextStack", 1538);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1539);
var name = this.incrStack();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1540);
this.compileStack.push("stack" + this.stackSlot);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1541);
return name;
},
incrStack: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "incrStack", 1544);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1545);
this.stackSlot++;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1546);
if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); }
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1547);
return "stack" + this.stackSlot;
},
popStack: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "popStack", 1550);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1551);
var item = this.compileStack.pop();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1553);
if (item instanceof Literal) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1554);
return item.value;
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1556);
this.stackSlot--;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1557);
return item;
}
},
topStack: function() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "topStack", 1561);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1562);
var item = this.compileStack[this.compileStack.length - 1];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1564);
if (item instanceof Literal) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1565);
return item.value;
} else {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1567);
return item;
}
},
quotedString: function(str) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "quotedString", 1571);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1572);
return '"' + str
.replace(/\\/g, '\\\\')
.replace(/"/g, '\\"')
.replace(/\n/g, '\\n')
.replace(/\r/g, '\\r') + '"';
},
setupHelper: function(paramSize, name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "setupHelper", 1579);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1580);
var params = [];
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1581);
this.setupParams(paramSize, params);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1582);
var foundHelper = this.nameLookup('helpers', name, 'helper');
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1584);
return {
params: params,
name: foundHelper,
callParams: ["depth0"].concat(params).join(", "),
helperMissingParams: ["depth0", this.quotedString(name)].concat(params).join(", ")
};
},
// the params and contexts arguments are passed in arrays
// to fill in
setupParams: function(paramSize, params) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "setupParams", 1594);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1595);
var options = [], contexts = [], param, inverse, program;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1597);
options.push("hash:" + this.popStack());
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1599);
inverse = this.popStack();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1600);
program = this.popStack();
// Avoid setting fn and inverse if neither are set. This allows
// helpers to do a check for `if (options.fn)`
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1604);
if (program || inverse) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1605);
if (!program) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1606);
this.context.aliases.self = "this";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1607);
program = "self.noop";
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1610);
if (!inverse) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1611);
this.context.aliases.self = "this";
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1612);
inverse = "self.noop";
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1615);
options.push("inverse:" + inverse);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1616);
options.push("fn:" + program);
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1619);
for(var i=0; i<paramSize; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1620);
param = this.popStack();
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1621);
params.push(param);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1623);
if(this.options.stringParams) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1624);
contexts.push(this.popStack());
}
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1628);
if (this.options.stringParams) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1629);
options.push("contexts:[" + contexts.join(",") + "]");
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1632);
if(this.options.data) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1633);
options.push("data:data");
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1636);
params.push("{" + options.join(",") + "}");
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1637);
return params.join(", ");
}
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1641);
var reservedWords = (
"break else new var" +
" case finally return void" +
" catch for switch while" +
" continue function this with" +
" default if throw" +
" delete in try" +
" do instanceof typeof" +
" abstract enum int short" +
" boolean export interface static" +
" byte extends long super" +
" char final native synchronized" +
" class float package throws" +
" const goto private transient" +
" debugger implements protected volatile" +
" double import public let yield"
).split(" ");
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1659);
var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1661);
for(var i=0, l=reservedWords.length; i<l; i++) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1662);
compilerWords[reservedWords[i]] = true;
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1665);
JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "isValidJavaScriptVariableName", 1665);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1666);
if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(name)) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1667);
return true;
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1669);
return false;
};
})(Handlebars.Compiler, Handlebars.JavaScriptCompiler);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1674);
Handlebars.precompile = function(string, options) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "precompile", 1674);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1675);
options = options || {};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1677);
var ast = Handlebars.parse(string);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1678);
var environment = new Handlebars.Compiler().compile(ast, options);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1679);
return new Handlebars.JavaScriptCompiler().compile(environment, options);
};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1682);
Handlebars.compile = function(string, options) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "compile", 1682);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1683);
options = options || {};
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1685);
var compiled;
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1686);
function compile() {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "compile", 1686);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1687);
var ast = Handlebars.parse(string);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1688);
var environment = new Handlebars.Compiler().compile(ast, options);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1689);
var templateSpec = new Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1690);
return Handlebars.template(templateSpec);
}
// Template is only compiled on first use and cached after that point.
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1694);
return function(context, options) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "(anonymous 10)", 1694);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1695);
if (!compiled) {
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1696);
compiled = compile();
}
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1698);
return compiled.call(this, context, options);
};
};
// END(BROWSER)
// This file contains YUI-specific wrapper code and overrides for the
// handlebars-compiler module.
/**
Handlebars parser and compiler. Use this module when you need to compile
Handlebars templates.
@module handlebars
@submodule handlebars-compiler
*/
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1714);
var levels = ['debug', 'info', 'warn', 'error'];
/**
Logs a debugging message. Note that messages will only be logged when the
handlebars module is loaded in "debug" mode.
@method log
@param {String} level Log level for this message. Supported levels are "debug",
"info", "warn", and "error".
@param {String} message Message to log.
@for Handlebars
*/
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1726);
Handlebars.logger.log = function (level, message) {
};
/**
Compiles and renders a Handlebars template string in a single step.
If you'll be using a template more than once, it's more efficient to compile it
into a function once using `compile()`, and then render it whenever you need to
by simply executing the compiled function. However, if you only need to compile
and render a template once, `render()` is a handy shortcut for doing both in a
single step.
@example
Y.Handlebars.render('The pie of the day is {{pie}}!', {
pie: 'Maple Custard'
});
// => "The pie of the day is Maple Custard!"
@method render
@param {String} string Handlebars template string to render.
@param {Object} context Context object to pass to the template.
@param {Object} [options] Compile/render options.
@param {Object} [options.helpers] Helper functions.
@param {Object} [options.partials] Partials.
@param {Object} [options.data] Data.
@return {String} Rendered template string.
*/
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1755);
Handlebars.render = function (string, context, options) {
_yuitest_coverfunc("build/handlebars-compiler/handlebars-compiler.js", "render", 1755);
_yuitest_coverline("build/handlebars-compiler/handlebars-compiler.js", 1756);
return Handlebars.compile(string)(context, options);
};
// The rest of this file is just API docs for methods defined in Handlebars
// itself.
/**
Compiles a Handlebars template string into a function. To render the template,
call the function and pass in a context object.
@example
var template = Y.Handlebars.compile('The pie of the day is {{pie}}!.');
template({pie: 'Pecan'});
// => "The pie of the day is Pecan!"
@method compile
@param {String} string Handlebars template string to compile.
@param {Object} [options] Compiler options.
@return {Function} Compiled template function.
*/
/**
Precompiles a Handlebars template string into a string of JavaScript code. This
can be used to precompile a template at build time or on the server, and the
resulting template can then be rendered at runtime or on the client without
needing to go through a compile step.
To render a precompiled template, evaluate the code and then pass the resulting
function to `Y.Handlebars.template()` to get back an executable template
function.
@method precompile
@param {String} string Handlebars template string to compile.
@param {Object} [options] Compiler options.
@return {String} Precompiled template code.
*/
}, '3.7.3', {"requires": ["handlebars-base"]});