It's also one of the only languages out there to let you inspect functions' source code
Got any pointers on this? I've been searching a little and unable to find this and haven't heard of this level of introspection before.
Got any pointers on this? I've been searching a little and unable to find this and haven't heard of this level of introspection before.
The basic mechanism is to call f.toString() on some function, then construct a new one the way you want it using either eval() (for non-IE browsers), or new Function(code) (for all browsers). Caterwaul leverages this by implementing a JS parser, defining a macro syntax, and letting you determine how the code gets rewritten. (So you can do things like let[x = 5] in x + 1, which is valid JS to begin with but nobody would ever use it :) )