validate_ast: function() {
var marker = {};
this.walk(new TreeWalker(function(node) {
- if (node.validate_visited === marker) throw new Error("invalid node reuse: " + node);
+ if (node.validate_visited === marker) {
+ throw new Error(string_template("cannot reuse {type} from [{file}:{line},{col}]", {
+ type: "AST_" + node.TYPE,
+ file: node.start.file,
+ line: node.start.line,
+ col: node.start.col,
+ }));
+ }
node.validate_visited = marker;
}));
},