code: public InternalContext createSubContext(VariantIndexer[] indexers, InternalContext localContext, int varSize) {
          Object[][] myParentScopes = this.parentScopes;
          //cal the new-context's parent-scopes
          Object[][] scopes;
          if (myParentScopes == null) {
              scopes = new Object[][]{this.vars};
          } else {
              scopes = new Object[myParentScopes.length + 1][];
              scopes[0] = this.vars;
              System.arraycopy(myParentScopes, 0, scopes, 1, myParentScopes.length);
          }
  
          InternalContext newContext = new InternalContext(template, localContext.out, Vars.EMPTY,
                  indexers, varSize, scopes);
          newContext.localContext = localContext;
          return newContext;
      }
docs: Create a sub context.
  
  @param indexers     indexers
  @param localContext local context
  @param varSize      var size
  @return a new sub context