code: function(parts, falsy, scoped) {
                  /*jshint -W083 */
                  var i = 0,
                      len = parts.length;
  
                  if (!scoped && this.options.compat && !this.lastContext) {
                      // The depthed query is expected to handle the undefined logic for the root level that
                      // is implemented below, so we evaluate that directly in compat mode
                      this.push(this.depthedLookup(parts[i++]));
                  } else {
                      this.pushContext();
                  }
  
                  for (; i < len; i++) {
                      this.replaceStack(function(current) {
                          var lookup = this.nameLookup(current, parts[i], 'context');
                          // We want to ensure that zero and false are handled properly if the context (falsy flag)
                          // needs to have the special handling for these values.
                          if (!falsy) {
                              return ' != null ? ' + lookup + ' : ' + current;
                          } else {
                              // Otherwise we can use generic falsy handling
                              return ' && ' + lookup;
                          }
                      });
                  }
              }
docs: [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.