code: function preProcessBindings(bindingString) {
    var results = [];
    var bindingHandlers = this.bindingHandlers;
    var preprocessed;
  
    // Check for a Provider.preprocessNode property
    if (typeof this.preprocessNode === 'function') {
      preprocessed = this.preprocessNode(bindingString, this);
      if (preprocessed) { bindingString = preprocessed; }
    }
  
    for (var i = 0, j = this.bindingPreProcessors.length; i < j; ++i) {
      preprocessed = this.bindingPreProcessors[i](bindingString, this);
      if (preprocessed) { bindingString = preprocessed; }
    }
  
    function addBinding(name, value) {
      results.push("'" + name + "':" + value);
    }
  
    function processBinding(key, value) {
      // Get the "on" binding from "on.click"
      var handler = bindingHandlers.get(key.split('.')[0]);
  
      if (handler && typeof handler.preprocess === 'function') {
        value = handler.preprocess(value, key, processBinding);
      }
  
      addBinding(key, value);
    }
  
    arrayForEach(parseObjectLiteral(bindingString), function(keyValueItem) {
      processBinding(
        keyValueItem.key || keyValueItem.unknown,
        keyValueItem.value
      );
    });
  
    return results.join(',');
  }
docs: Call bindingHandler.preprocess on each respective binding string.
  
  The `preprocess` property of bindingHandler must be a static
  function (i.e. on the object or constructor).