docs: function () {
  
                  if (this._cur === null){
                      this._cur = this._root;
                  } else if (this._cur.firstChild) {
                      this._cur = this._cur.firstChild;
                  } else if (this._cur.next) {
                      this._cur = this._cur.next;
                  } else {
                      while (this._cur && !this._cur.next && this._cur !== this._root){
                          this._handleTestObjectComplete(this._cur);
                          this._cur = this._cur.parent;
                      }
  
                      this._handleTestObjectComplete(this._cur);
  
                      if (this._cur == this._root){
                          this._cur.results.type = "report";
                          this._cur.results.timestamp = (new Date()).toLocaleString();
                          this._cur.results.duration = (new Date()) - this._cur._start;
                          this._lastResults = this._cur.results;
                          this._running = false;
                          this.fire({ type: this.COMPLETE_EVENT, results: this._lastResults});
                          this._cur = null;
                      } else {
                          this._cur = this._cur.next;
                      }
                  }
  
                  return this._cur;
              }