whole_func_string: function _contextGetCreateAndOrderNodes(renderNode, prev) {
  
          // The first time this function is called, the current
          // prev/next position is obtained.
          var node;
          var state = this._contextState;
          if (!state.start) {
              node = this._first;
              while (node) {
                  if (node.renderNode === renderNode) {
                      break;
                  }
                  node = node._next;
              }
              if (!node) {
                  node = this.createNode(renderNode);
                  node._next = this._first;
                  if (this._first) {
                      this._first._prev = node;
                  }
                  this._first = node;
              }
              state.start = node;
              state.startPrev = prev;
              state.prev = node;
              state.next = node;
              return node;
          }
  
          // Check whether node already exist at the correct position
          // in the linked-list. If so, return that node immediately
          // and advance the prev/next pointer for the next/prev
          // lookup operation.
          if (prev) {
              if (state.prev._prev && (state.prev._prev.renderNode === renderNode)) {
                  state.prev = state.prev._prev;
                  return state.prev;
              }
          }
          else {
              if (state.next._next && (state.next._next.renderNode === renderNode)) {
                  state.next = state.next._next;
                  return state.next;
              }
          }
  
          // Lookup the node anywhere in the list..
          node = this._first;
          while (node) {
              if (node.renderNode === renderNode) {
                  break;
              }
              node = node._next;
          }
  
          // Create new node if neccessary
          if (!node) {
              node = this.createNode(renderNode);
          }
  
          // Node existed, remove from linked-list
          else {
              if (node._next) {
                  node._next._prev = node._prev;
              }
              if (node._prev) {
                  node._prev._next = node._next;
              }
              else {
                  this._first = node._next;
              }
              node._next = undefined;
              node._prev = undefined;
          }
  
          // Insert node into the linked list
          if (prev) {
              if (state.prev._prev) {
                  node._prev = state.prev._prev;
                  state.prev._prev._next = node;
              }
              else {
                  this._first = node;
              }
              state.prev._prev = node;
              node._next = state.prev;
              state.prev = node;
          }
          else {
              if (state.next._next) {
                  node._next = state.next._next;
                  state.next._next._prev = node;
              }
              state.next._next = node;
              node._prev = state.next;
              state.next = node;
          }
  
          return node;
      }
func_code_string: function _contextGetCreateAndOrderNodes(renderNode, prev) {
  
          // The first time this function is called, the current
          // prev/next position is obtained.
          var node;
          var state = this._contextState;
          if (!state.start) {
              node = this._first;
              while (node) {
                  if (node.renderNode === renderNode) {
                      break;
                  }
                  node = node._next;
              }
              if (!node) {
                  node = this.createNode(renderNode);
                  node._next = this._first;
                  if (this._first) {
                      this._first._prev = node;
                  }
                  this._first = node;
              }
              state.start = node;
              state.startPrev = prev;
              state.prev = node;
              state.next = node;
              return node;
          }
  
          // Check whether node already exist at the correct position
          // in the linked-list. If so, return that node immediately
          // and advance the prev/next pointer for the next/prev
          // lookup operation.
          if (prev) {
              if (state.prev._prev && (state.prev._prev.renderNode === renderNode)) {
                  state.prev = state.prev._prev;
                  return state.prev;
              }
          }
          else {
              if (state.next._next && (state.next._next.renderNode === renderNode)) {
                  state.next = state.next._next;
                  return state.next;
              }
          }
  
          // Lookup the node anywhere in the list..
          node = this._first;
          while (node) {
              if (node.renderNode === renderNode) {
                  break;
              }
              node = node._next;
          }
  
          // Create new node if neccessary
          if (!node) {
              node = this.createNode(renderNode);
          }
  
          // Node existed, remove from linked-list
          else {
              if (node._next) {
                  node._next._prev = node._prev;
              }
              if (node._prev) {
                  node._prev._next = node._next;
              }
              else {
                  this._first = node._next;
              }
              node._next = undefined;
              node._prev = undefined;
          }
  
          // Insert node into the linked list
          if (prev) {
              if (state.prev._prev) {
                  node._prev = state.prev._prev;
                  state.prev._prev._next = node;
              }
              else {
                  this._first = node;
              }
              state.prev._prev = node;
              node._next = state.prev;
              state.prev = node;
          }
          else {
              if (state.next._next) {
                  node._next = state.next._next;
                  state.next._next._prev = node;
              }
              state.next._next = node;
              node._prev = state.next;
              state.next = node;
          }
  
          return node;
      }
func_documentation_string: Checks the integrity of the linked-list.
   /*function _checkIntegrity() {
  var node = this._first;
  var count = 0;
  var prevNode;
  while (node) {
  if (!node._prev && (node !== this._first)) {
  throw 'No prev but not first';
  }
  if (node._prev !== prevNode) {
  throw 'Bork';
  }
  prevNode = node;
  node = node._next;
  count++;
  }
  }
  
  function _checkContextStateIntegrity() {
  var node = this._contextState.start;
  while (node) {
  if (node === this._contextState.next) {
  break;
  }
  if (!node._invalidated) {
  throw 'WTF';
  }
  node = node._next;
  }
  node = this._contextState.start;
  while (node) {
  if (node === this._contextState.prev) {
  break;
  }
  if (!node._invalidated) {
  throw 'WTF';
  }
  node = node._prev;
  }
  } 
  Creates or gets a layout node.