code: function Structure(query, props, children, depth) {
    if ( props === void 0 ) props = {};
    if ( depth === void 0 ) depth = 0;
  
    this.query = query;
    this.props = Boolean !== props ? props : {};
    if (isComponent(query) || query instanceof Component) {
      this.$compChildren = flatten(children || []).map(filterNode);
      this.children = [];
    } else {
      this.children = flatten(children || []).map(filterNode);
      this.$compChildren = [];
    }
    this.html = null;
    this.$attrListeners = [];
    this.$styleListeners = [];
    this.$pointer = null;
    this.$component = null;
    this.$listener = null;
    this.$redirect = null;
    this.$destroyed = false;
    this.$isSvg = query === 'svg';
    this.$depth = depth;
  }
docs: /* eslint-disable no-restricted-syntax 
  @param {*} query
  @param {object} props
  @param {...*} children
  @param {number} depth