diff options
Diffstat (limited to 'lib/ast.js')
-rw-r--r-- | lib/ast.js | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -91,7 +91,15 @@ var AST_Token = DEFNODE("Token", "type value line col pos endline endcol endpos }, null); var AST_Node = DEFNODE("Node", "start end", { - clone: function() { + clone: function(deep) { + if (deep) { + var self = this.clone(); + return self.transform(new TreeTransformer(function(node) { + if (node !== self) { + return node.clone(true); + } + })); + } return new this.CTOR(this); }, $documentation: "Base class of all AST nodes", |