in myfaces-html5-demo/src/main/webapp/resources/script/google-code-prettify/prettify.js [1385:1433]
function doWork() {
var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
clock.now() + 250 /* ms */ :
Infinity);
for (; k < elements.length && clock.now() < endTime; k++) {
var cs = elements[k];
if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
// If the classes includes a language extensions, use it.
// Language extensions can be specified like
// <pre class="prettyprint lang-cpp">
// the language extension "cpp" is used to find a language handler as
// passed to PR_registerLangHandler.
var langExtension = cs.className.match(/\blang-(\w+)\b/);
if (langExtension) { langExtension = langExtension[1]; }
// make sure this is not nested in an already prettified element
var nested = false;
for (var p = cs.parentNode; p; p = p.parentNode) {
if ((p.tagName === 'pre' || p.tagName === 'code' ||
p.tagName === 'xmp') &&
p.className && p.className.indexOf('prettyprint') >= 0) {
nested = true;
break;
}
}
if (!nested) {
// fetch the content as a snippet of properly escaped HTML.
// Firefox adds newlines at the end.
var content = getInnerHtml(cs);
content = content.replace(/(?:\r\n?|\n)$/, '');
// do the pretty printing
prettyPrintingJob = {
sourceCodeHtml: content,
langExtension: langExtension,
sourceNode: cs
};
applyDecorator(prettyPrintingJob);
replaceWithPrettyPrintedHtml();
}
}
}
if (k < elements.length) {
// finish up in a continuation
setTimeout(doWork, 250);
} else if (opt_whenDone) {
opt_whenDone();
}
}