docs: function (child, options) {
                  if (!(child instanceof Element)) {
                      throw "only children of type js.core.Component can be added";
                  }
  
                  if (this.$initializing || this.$initialized) {
                      // initialize auto
  
                      child.$parent = this;
                      if (child.$cidScope && child.$.cid) {
                          // register component by cid in the root scope
                          child.$cidScope.set(child.$.cid, child);
                      }
  
                      if (options && options.childIndex != null) {
                          this.$children.splice(options.childIndex, 0, child);
                      } else {
                          this.$children.push(child);
                      }
  
                      if (this.$creationPolicy === "auto") {
                          child._initialize(this.$creationPolicy);
                      }
  
  
                      // handle special elements
                      if (child instanceof Component.Template) {
                          this._addTemplate(child);
                      } else if (child instanceof Component.Configuration) {
                          this._addConfiguration(child);
                      }
                  } else {
                      this.$unitializedChildren = this.$unitializedChildren || [];
                      this.$unitializedChildren.push(child);
                  }
              }