diff options
author | Jiavan <jiavan.com@gmail.com> | 2018-06-01 16:47:11 +0800 |
---|---|---|
committer | Alex Lam S.L <alexlamsl@gmail.com> | 2018-06-01 16:47:11 +0800 |
commit | b39043f3ab0061f2db91514dbb69e85a49a99997 (patch) | |
tree | 5ab5756a1e6aa9a54c7912258739e6247439d997 /lib/ast.js | |
parent | caf96acb08ad8113f03299a939b4a45ef44ffa42 (diff) | |
download | tracifyjs-b39043f3ab0061f2db91514dbb69e85a49a99997.tar.gz tracifyjs-b39043f3ab0061f2db91514dbb69e85a49a99997.zip |
re-introduce `enclose` (#3163)
fixes #2443
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); |