aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2020-07-31 15:50:16 +0100
committerGitHub <noreply@github.com>2020-07-31 22:50:16 +0800
commitaf13f8dd2c18cf6c7c862f225bde24fc52c0317f (patch)
treefd0ea0799217ef944aed1ce39939f4990910106e
parent88423f2574bfd4f158caab1c08a5a5bf1718cab4 (diff)
downloadtracifyjs-af13f8dd2c18cf6c7c862f225bde24fc52c0317f.tar.gz
tracifyjs-af13f8dd2c18cf6c7c862f225bde24fc52c0317f.zip
improve diagnostics upon AST validation failure (#4033)
-rw-r--r--lib/ast.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/ast.js b/lib/ast.js
index 093e192c..2c27cbbe 100644
--- a/lib/ast.js
+++ b/lib/ast.js
@@ -123,7 +123,14 @@ var AST_Node = DEFNODE("Node", "start end", {
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;
}));
},