code: public final HoconNodeCursor iterateChildren() {
      	ConfigValue n = currentNode();
          if (n == null) throw new IllegalStateException("No current node");
          boolean numericallyIndexed = isNumericallyIndexed(n);
          if (!numericallyIndexed) {
              if (isArray(n)) { // false since we have already returned START_ARRAY
                  return new Array(n, this);
              }
              if (isObject(n)) {
                  return new Object(n, this);
              }
          } else {
              return new NumericallyIndexedObjectBackedArray(n, this);
          }
          throw new IllegalStateException("Current node of type "+n.getClass().getName());
      }
docs: Method called to create a new context for iterating all
  contents of the current structured value (JSON array or object)
  @return a cursor over the children of this node