lib/parser.js
function (match) {
    var temp = match[0], result;

    function checkDot(ctx) {
      var c = ctx + temp,
        m = match,
        build = '';

      build = '(typeof ' + c + ' !== "undefined" && ' + c + ' !== null';
      utils.each(m, function (v, i) {
        if (i === 0) {
          return;
        }
        build += ' && ' + c + '.' + v + ' !== undefined && ' + c + '.' + v + ' !== null';
        c += '.' + v;
      });
      build += ')';

      return build;
    }

    function buildDot(ctx) {
      return '(' + checkDot(ctx) + ' ? ' + ctx + match.join('.') + ' : "")';
    }
    result = '(' + checkDot('_ctx.') + ' ? ' + buildDot('_ctx.') + ' : ' + buildDot('') + ')';
    return '(' + result + ' !== null ? ' + result + ' : ' + '"" )';
  }
function (match) {
    var temp = match[0], result;

    function checkDot(ctx) {
      var c = ctx + temp,
        m = match,
        build = '';

      build = '(typeof ' + c + ' !== "undefined" && ' + c + ' !== null';
      utils.each(m, function (v, i) {
        if (i === 0) {
          return;
        }
        build += ' && ' + c + '.' + v + ' !== undefined && ' + c + '.' + v + ' !== null';
        c += '.' + v;
      });
      build += ')';

      return build;
    }

    function buildDot(ctx) {
      return '(' + checkDot(ctx) + ' ? ' + ctx + match.join('.') + ' : "")';
    }
    result = '(' + checkDot('_ctx.') + ' ? ' + buildDot('_ctx.') + ' : ' + buildDot('') + ')';
    return '(' + result + ' !== null ? ' + result + ' : ' + '"" )';
  }
function ( match ) { var temp = match [ 0 ] , result ; function checkDot ( ctx ) { var c = ctx + temp , m = match , build = '' ; build = '(typeof ' + c + ' !== "undefined" && ' + c + ' !== null' ; utils . each ( m , function ( v , i ) { if ( i === 0 ) { return ; } build += ' && ' + c + '.' + v + ' !== undefined && ' + c + '.' + v + ' !== null' ; c += '.' + v ; } ) ; build += ')' ; return build ; } function buildDot ( ctx ) { return '(' + checkDot ( ctx ) + ' ? ' + ctx + match . join ( '.' ) + ' : "")' ; } result = '(' + checkDot ( '_ctx.' ) + ' ? ' + buildDot ( '_ctx.' ) + ' : ' + buildDot ( '' ) + ')' ; return '(' + result + ' !== null ? ' + result + ' : ' + '"" )' ; }
Return contextual dot-check string for a match
@param  {string} match       Shortcut for token.match
@private
Return contextual dot - check string for a match