not.js
function prepareFunc(func, builder, basepath) { //Prepare an implied function for repeated use
  funcStringCache[func] = funcStringCache[func] || ('(function() { with (proxy(scope)) { return ('+func.toString()+')('+defaultScopeName+'); } })()');

  return function(scope) {
    var scope = scope || {};
    var builder = builder || stringBuilder;
    var proxy = jshtmlProxy(new builder(basepath));
    var ret = eval(funcStringCache[func]);
    if (ret && typeof(ret.then) === 'function') { //looks like a promise. Let's use it why don't we?
      ret.proxy = proxy;
      return ret;
    }
    return proxy.collect();
  }
}
function prepareFunc(func, builder, basepath) { //Prepare an implied function for repeated use
  funcStringCache[func] = funcStringCache[func] || ('(function() { with (proxy(scope)) { return ('+func.toString()+')('+defaultScopeName+'); } })()');

  return function(scope) {
    var scope = scope || {};
    var builder = builder || stringBuilder;
    var proxy = jshtmlProxy(new builder(basepath));
    var ret = eval(funcStringCache[func]);
    if (ret && typeof(ret.then) === 'function') { //looks like a promise. Let's use it why don't we?
      ret.proxy = proxy;
      return ret;
    }
    return proxy.collect();
  }
}
function prepareFunc ( func , builder , basepath ) { //Prepare an implied function for repeated use funcStringCache [ func ] = funcStringCache [ func ] || ( '(function() { with (proxy(scope)) { return (' + func . toString ( ) + ')(' + defaultScopeName + '); } })()' ) ; return function ( scope ) { var scope = scope || { } ; var builder = builder || stringBuilder ; var proxy = jshtmlProxy ( new builder ( basepath ) ) ; var ret = eval ( funcStringCache [ func ] ) ; if ( ret && typeof ( ret . then ) === 'function' ) { //looks like a promise. Let's use it why don't we? ret . proxy = proxy ; return ret ; } return proxy . collect ( ) ; } }
Cache stringified functions for implied usage
Cache stringified functions for implied usage