docs: function _reorderComps() {
          var tmpArray = [];
          var dictory = {};
  
          for (var n = 0; n < this.registeredControls.length; n++) {
              dictory[this.registeredControls[n].className] = this.registeredControls[n];
          }
          for (var n = 0; n < this.registeredControls.length; n++) {
              traverse(this.registeredControls[n]);
          }
  
          this.registeredControls = tmpArray;
  
          function traverse(control) {
              if (inArray(control, tmpArray)) return;
              if (control.dependencies.length > 0) {
                  for (var i = 0, len = control.dependencies.length; i < len; i++) {
                      var childControl = dictory[control.dependencies[i]];
                      traverse(childControl);
                  }
              }
              tmpArray.push(control);
          }
      }