code: private Object resolveLeadingContextObject(String name, ValueWrapper value,
              AtomicReference<Hint> hintRef) {
  
          Object leading = resolveContextObject(name, value, hintRef);
  
          if (leading == null) {
              // Leading context object not found - try to resolve context
              // unrelated objects (JNDI lookup, CDI, etc.)
              Hint hint = hintRef != null ? hintRef.get() : null;
              if (hint != null) {
                  leading = hint.resolve(null, name, value);
              }
              if (leading == null) {
                  leading = resolve(null, name, value, hint == null
                          && hintRef != null);
              }
          }
          return leading;
      }
docs: Resolve the leading context object (the first part of the key). E.g.
  <code>foo</code> in <code>{{foo.bar.name}}</code> may identify a property
  of some context object on the stack (passed data, section iteration,
  nested context, ...), or some context and data unrelated object (e.g. CDI
  bean).
  
  @param name
  @param value
  The value wrapper - ResolutionContext
  @param hintRef
  @return the resolved leading context object
  @see Hint