docs: function() {
  		if (this.canGenerate === false) {
  			return '';
  		}
  		// do this first in case content generation affects outer html (styles or attributes)
  		var c = this.generateInnerHtml();
  		// generate tag, styles, attributes
  		var h = this.generateOuterHtml(c);
  		// NOTE: 'generated' is used to gate access to findNodeById in
  		// hasNode, because findNodeById is expensive.
  		// NOTE: we typically use 'generated' to mean 'created in DOM'
  		// but that has not actually happened at this point.
  		// We set 'generated = true' here anyway to avoid having to walk the
  		// control tree a second time (to set it later).
  		// The contract is that insertion in DOM will happen synchronously 
  		// to generateHtml() and before anybody should be calling hasNode().
  		this.generated = true;
  		return h;
  	}