function jstProcess(context, template, opt_debugging) {
  var processor = new JstProcessor;
  if (MAPS_DEBUG && opt_debugging) {
    processor.setDebugging(opt_debugging);
  }
  JstProcessor.prepareTemplate_(template);

  /**
   * Caches the document of the template node, so we don't have to
   * access it through ownerDocument.
   * @type Document
   */
  processor.document_ = ownerDocument(template);

  processor.run_(bindFully(processor, processor.jstProcessOuter_,
                           context, template));
  if (MAPS_DEBUG && opt_debugging) {
    log('jstProcess:' + '\n' + processor.getLogs().join('\n'));
  }
}
HTML template processor. Data values are bound to HTML templates
using the attributes transclude, jsselect, jsdisplay, jscontent,
jsvalues. The template is modifed in place. The values of those
attributes are JavaScript expressions that are evaluated in the
context of the data object fragment.

@param {JsEvalContext} context Context created from the input data
object.

@param {Element} template DOM node of the template. This will be
processed in place. After processing, it will still be a valid
template that, if processed again with the same data, will remain
unchanged.

@param {boolean} opt_debugging Optional flag to collect debugging
    information while processing the template.  Only takes effect
    in MAPS_DEBUG.