cleaned up usage of AST_BlockStatement
authorMihai Bazon <mihai@bazon.net>
Wed, 5 Sep 2012 08:31:02 +0000 (11:31 +0300)
committerMihai Bazon <mihai@bazon.net>
Wed, 5 Sep 2012 08:39:43 +0000 (11:39 +0300)
commit8633b0073f016fddd655ae5e1f1726287a24828d
tree83f03aac1f74a30555e44edfa2a75eb5ca372e6f
parent1b5183dd5ee7d2b147f5862c9abf8f45f50fc82f
cleaned up usage of AST_BlockStatement

The following nodes were instances of AST_BlockStatement: AST_Scope,
AST_SwitchBlock, AST_SwitchBranch.  Also, AST_Try, AST_Catch, AST_Finally
were having a body instanceof AST_BlockStatement.

Overloading the meaning of AST_BlockStatement this way turned out to be a
mess; we now have an AST_Block class that is the base class for things
having a block of statements (might or might not be bracketed).  The
`this.body` of AST_Scope, AST_Try, AST_Catch, AST_Finally is now an array of
statements (as they inherit from AST_Block).

Avoiding calling superclass's _walk function in walkers (turns out we walked
a node multiple times).
lib/ast.js
lib/compress.js
lib/output.js
lib/parse.js
lib/scope.js
tmp/test-node.js