Não, meu sinhô, é bem melhor que isso. :D
Macros são quando você pode mudar ligeiramente
// wow.js macro swap { rule { $x and $y } => { var tmp = $x; $x = $y; $y = tmp } } var a = "a", b = "b"; console.log(a, b); // => a b swap a and b; console.log(a, b); // => b a
Interessado? Agora pra continuar instale o Sweet.js via npm
$ npm install -g sweet.js
Agora você pode compilar os JS com macro assim:
$ sjs wow.js -o output.jsSe você compilar o wow.js vai ver ele assim:
var a$381 = 'a', b$382 = 'b'; console.log(a$381, b$382); var tmp$384 = a$381; a$381 = b$382; b$382 = tmp$384; console.log(a$381, b$382);
Gaaabrieel-san, mas o que diabos é isso que ele fez com as variáveis? Coisa mais feia!
Calma, isso se chama "higienização" e serve pra prevenir conflitos entre variáveis, por exemplo:
var tmp = "tmp", b = "b"; swap tmp and b; // ... // output.js // Sem higienização var tmp = "tmp", b = "b"; var tmp = tmp; tmp = b; b = tmp;
Viu? So many conflicts, wow!
Isso é só a ponta do Iceberg :p
calm down and wait for more in soon