diff options
Diffstat (limited to 'lib/ast.js')
-rw-r--r-- | lib/ast.js | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -335,6 +335,23 @@ var AST_Toplevel = DEFNODE("Toplevel", "globals", { } })); return wrapped_tl; + }, + wrap_enclose: function(args_values) { + if (typeof args_values != "string") args_values = ""; + var index = args_values.indexOf(":"); + if (index < 0) index = args_values.length; + var body = this.body; + return parse([ + "(function(", + args_values.slice(0, index), + '){"$ORIG"})(', + args_values.slice(index + 1), + ")" + ].join("")).transform(new TreeTransformer(function(node) { + if (node instanceof AST_Directive && node.value == "$ORIG") { + return MAP.splice(body); + } + })); } }, AST_Scope); |