String interpolation in Javascript

Thursday July 14, 2011


function interpolate(__expr){
    var __callers = [], __caller = arguments.callee,__i,__j;
    var __interpolatedLocals, __args = {};
    var collectLocals = function(c){
      var s = c.toString();
      var declarations = s.match(/var [\s\S]+?;\s*$/gm) || [];
      var assignments = s.match(/[a-z0-9_]+\s+=\s+[\s\S]+?[,;]/g) || [];
      return declarations.concat(assignments);
    };
    var mergeArgs = function(c){
      var names = c.toString().match(/\((.*?)\)/)[1].split(','), name, i;
      for(i = 0; i < c.arguments.length; i++){
        name = names[i];
        if(!name || __args[name]) continue;
        __args[name] = c.arguments[i];
      }
    }
    while((__caller = __caller.caller) && __caller != interpolate){
      __callers.push(__caller);
    };
    __callers.reverse();
    for(__i = 0; __i < __callers.length; __i++){
      __caller = __callers[__i];
      mergeArgs(__caller);
      __interpolatedLocals = collectLocals(__caller);
      for(__j = 0; __j < __interpolatedLocals.length; __j++){
        with(__args){
          try {
            eval(__interpolatedLocals[__i]);
          } catch(e){};
        }
      }
    }
    __expr = __expr.replace(/{([^{}]*?)}/g, function(){
      with(__args){
        return eval(arguments[1]);
      }
    });
    return __expr;
  }

Comments

  1. 182 days ago :: Moncler Parka ::

    Great information that you’ve presented me personally on this page. I will look ahead to ones then write-up.

  2. 134 days ago :: cheap designer bags ::

    I dont know what to say. This blog is fantastic. Thats not really a really huge statement,

    but its all I could come up with after reading this. You know so much about this subject. So

    much so that you made me want to learn more about it. Your blog is my stepping stone, my

    friend. Thanks for the heads up on this subject.

  3. 132 days ago :: Wholesale shoes ::

    Here is the latest of the most popular sports shoes for details please visit our website

    http://www.cheap-bags-shoes.com/fashion-adidas-shoes-1000-product-3711.html
    http://www.cheap-bags-shoes.com/fashion-adidas-shoes-1004-product-3715.html
    http://www.cheap-bags-shoes.com/fashion-adidas-shoes-1005-product-3716.html
    http://www.cheap-bags-shoes.com/fashion-adidas-shoes-1002-product-3713.html

  4. 107 days ago :: UGG Classic Short Boots 5251 ::

    ? Never sacrifice comfort for style. You’ll be on your feet from long before <a href=“http://www.cheapuggsnowboot.com/ugg-adirondack-tall-5498-c-1.html”><strong>Ugg Adirondack Tall Boots</strong></a> you walk down the aisle clear through the to last dance. ?

  5. 84 days ago :: new era hats ::

    This is my first time i visit here. I found so many entertaining stuff in your blog, especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the leisure here! Keep up the good work.

  6. 24 days ago :: flash chat ::

    Good point. The content that you will build your blogs with now can bring you selection of revenue when the economic system bounces back. dd1

  7. 16 days ago :: viagra generico ::

    Usted realmente puede mejorar simplemente sus dimensiones de pene simplemente y también fácilmente con el uso de pastillas, bombas, y hasta cirugía. Realice que varios tipos emplean clases orgánicas de técnicas de ampliación del pene para mejorar su cierta medida de pene hoy. Si usted pone en duda si puede conseguir un pene más grande usando prácticas todo-naturales, usted puede. Usted ha observado probablemente un acuerdo excelente de anuncios que se relacionan con suplementos. En la función que usted sólo toma éstos en una fundación estándar usted observará un pene más grande. Este movimiento ha sido popular porque Viagra. Estas variedades de suplementos alimenticios con frecuencia tienen cuestiones que no son muy nutritivas para su físico. Como un ejemplo, una píldora podría suministrar más testosterona para conseguirle a su pináculo erótico corriente. El simple hecho sigue siendo si usted lo tiene en usted y usted también digiere una parte entera más que usted necesitará, su método puede comportarse posiblemente con eficacia divertido y también hacer un específico para venir para sentirse mareado. La cierta construcción del pene de alguien no es simplemente la masa de músculo magra o posiblemente un hueso, es arreglado de numerosas cámaras de tela suave que comprenden su eje corriente. En estas variedades de cámaras son generalmente los años 1000 de venas que por lo general se amplían para ser engorged el momento usted compra una erección del pene fantástica. El mucho más expansivo que estas variedades de cámaras son normalmente, más alto su pene corriente se desarrollará indudablemente, entregándole un pene más larguísimo, más grueso, más difícil. Simplemente por la inclusión de variedades particulares de la táctica como la creación de la tracción en estas cámaras de sus brazos y dedos, usted puede hacerlos viagra para siempre más larguísimos y más gruesos rápidamente. Elevándose el pene más alto sólo no es difícil de ningún modo y también su no esencial para usar remedios o tal vez gizmos para generar los resultados finales idénticos. Las rutinas de ejercicio provechosas son técnicas para mejorar el órgano douleur, ellos han estado alrededor durante un tiempo ampliado y muchos países alrededor del globo los usan ahora mismo. Puede aparecer bien como estas rutinas de ejercicio tradicionales y las prácticas podrían ser arriesgadas y fracasadas, sin embargo en realidad hay pruebas relacionadas con la salud de su actuación. La realización de estos tipos de rutinas de prueba es increíblemente fácil, todo que usted tiene que tener son sus manos. Esto realmente se dirige para tomar aproximadamente quince 20 minutos en la compra al lleno la sesión de entrenamiento particular cada día, cuando los dos se calientan y también calme-abajo. Este enfoque es muy provechoso, completamente simple de completar y además precio bajo, varios hombres adultos comienzan a elegir para ello a diferencia del numeroso otro caro y también táctica improductiva. Todo el trabajo todo-natural las rutinas no simplemente realzan el flujo de sangre al pene, pero además toman las cosas con calma los tejidos que permiten una parte entera mucho más sangre en al eje.

Leave a Comment

Why?