AST_Do nodes: walk body before condition
authorMihai Bazon <mihai@bazon.net>
Tue, 6 Jan 2015 10:27:23 +0000 (12:27 +0200)
committerMihai Bazon <mihai@bazon.net>
Tue, 6 Jan 2015 10:29:07 +0000 (12:29 +0200)
lib/ast.js

index 051cd2f..2eb8cc8 100644 (file)
@@ -205,21 +205,27 @@ var AST_DWLoop = DEFNODE("DWLoop", "condition", {
     $documentation: "Base class for do/while statements",
     $propdoc: {
         condition: "[AST_Node] the loop condition.  Should not be instanceof AST_Statement"
-    },
-    _walk: function(visitor) {
-        return visitor._visit(this, function(){
-            this.condition._walk(visitor);
-            this.body._walk(visitor);
-        });
     }
 }, AST_IterationStatement);
 
 var AST_Do = DEFNODE("Do", null, {
     $documentation: "A `do` statement",
+    _walk: function(visitor) {
+        return visitor._visit(this, function(){
+            this.body._walk(visitor);
+            this.condition._walk(visitor);
+        });
+    }
 }, AST_DWLoop);
 
 var AST_While = DEFNODE("While", null, {
     $documentation: "A `while` statement",
+    _walk: function(visitor) {
+        return visitor._visit(this, function(){
+            this.condition._walk(visitor);
+            this.body._walk(visitor);
+        });
+    }
 }, AST_DWLoop);
 
 var AST_For = DEFNODE("For", "init condition step", {