code: function emitTextUpTo(sourceIdx) {
        if (sourceIdx > outputIdx) {
          if (openDecoration && openDecoration !== currentDecoration) {
            // Close the current decoration
            html.push('</span>');
            openDecoration = null;
          }
          if (!openDecoration && currentDecoration) {
            openDecoration = currentDecoration;
            html.push('<span class="', openDecoration, '">');
          }
          // This interacts badly with some wikis which introduces paragraph tags
          // into pre blocks for some strange reason.
          // It's necessary for IE though which seems to lose the preformattedness
          // of <pre> tags when their innerHTML is assigned.
          // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
          // and it serves to undo the conversion of <br>s to newlines done in
          // chunkify.
          var htmlChunk = textToHtml(
              tabExpander(sourceText.substring(outputIdx, sourceIdx)))
              .replace(lastWasSpace
                       ? startOrSpaceRe
                       : adjacentSpaceRe, '$1&#160;');
          // Keep track of whether we need to escape space at the beginning of the
          // next chunk.
          lastWasSpace = trailingSpaceRe.test(htmlChunk);
          html.push(htmlChunk.replace(newlineRe, lineBreaker));
          outputIdx = sourceIdx;
        }
      }
docs: A helper function that is responsible for opening sections of decoration and outputing properly escaped chunks of source