docs: function(context, args, stack) {
  		var xpr = args[0],
  			index = args[1],
  			templ = args[2],
  			val = xpr.__interpolable__ ? xpr.output(context) : xpr,
  			rest = new Template(templ._queue.slice(index)),
  			instance,
  			obj = {
  				val: val,
  				rest: rest,
  				stack: []
  			};
  		stack.push(obj);
  		if (val)
  			firstPass(rest, context, obj.stack);
  		else if (xpr.__interpolable__)
  			instance = xpr.subscribeTo(context, function(value) {
  				if (value) {
  					obj.val = value;
  					instance.destroy();
  					firstPass(rest, context, obj.stack);
  				}
  			});
  	}