docs: function (targetSection) {
                  var content = this._content;
                  this.$assert(805, this.idMap == null);
                  this.$assert(806, content);
                  var targetContent = targetSection._content;
                  var targetLength = targetContent.length;
                  // first move all children from this to target _content array
                  // updating the parent reference for sections
                  for (var i = 0, l = content.length; i < l; i++) {
                      var item = content[i];
                      targetContent[targetLength + i] = item;
                      if (item._type == TYPE_SECTION) {
                          item.parent = targetSection;
                      }
                  }
                  // then register content in the target idMap
                  this.__updateIdMap(targetSection.idMap);
  
                  // move the {on...} statement callbacks:
                  targetSection.delegateIds = targetSection.delegateIds.concat(this.delegateIds);
                  targetSection.delegateCallbacks = targetSection.delegateCallbacks.concat(this.delegateCallbacks);
                  this.delegateIds = [];
                  this.delegateCallbacks = [];
  
                  // and initialize widgets
                  var res = null;
                  if (targetSection._initWidgetsDone) {
                      res = this.initWidgets();
                  }
                  // set back idMap to null (may have been changed by __updateIdMap)
                  this.idMap = null;
                  // this section becomes empty:
                  this._content = [];
  
                  return res;
              }