docs: function(isolate) {
          var ChildScope,
              child;
  
          if (isolate) {
            child = new Scope();
            child.$root = this.$root;
            // ensure that there is just one async queue per $rootScope and its children
            child.$$asyncQueue = this.$$asyncQueue;
            child.$$postDigestQueue = this.$$postDigestQueue;
          } else {
            ChildScope = function() {}; // should be anonymous; This is so that when the minifier munges
              // the name it does not become random set of chars. This will then show up as class
              // name in the debugger.
            ChildScope.prototype = this;
            child = new ChildScope();
            child.$id = nextUid();
          }
          child['this'] = child;
          child.$$listeners = {};
          child.$parent = this;
          child.$$watchers = child.$$nextSibling = child.$$childHead = child.$$childTail = null;
          child.$$prevSibling = this.$$childTail;
          if (this.$$childHead) {
            this.$$childTail.$$nextSibling = child;
            this.$$childTail = child;
          } else {
            this.$$childHead = this.$$childTail = child;
          }
          return child;
        }