aboutsummaryrefslogtreecommitdiff
path: root/lib/scope.js
diff options
context:
space:
mode:
authorMihai Bazon <mihai@bazon.net>2012-09-05 11:31:02 +0300
committerMihai Bazon <mihai@bazon.net>2012-09-05 11:39:43 +0300
commit8633b0073f016fddd655ae5e1f1726287a24828d (patch)
tree83f03aac1f74a30555e44edfa2a75eb5ca372e6f /lib/scope.js
parent1b5183dd5ee7d2b147f5862c9abf8f45f50fc82f (diff)
downloadtracifyjs-8633b0073f016fddd655ae5e1f1726287a24828d.tar.gz
tracifyjs-8633b0073f016fddd655ae5e1f1726287a24828d.zip
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).
Diffstat (limited to 'lib/scope.js')
-rw-r--r--lib/scope.js4
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/scope.js b/lib/scope.js
index 0f9969d2..0518a49a 100644
--- a/lib/scope.js
+++ b/lib/scope.js
@@ -228,9 +228,7 @@ AST_Toplevel.DEFMETHOD("scope_warnings", function(options){
}
if (options.nested_defuns
&& node instanceof AST_Defun
- && !(tw.parent() instanceof AST_Scope
- || (tw.parent() instanceof AST_BlockStatement
- && tw.parent(1) instanceof AST_Scope))) {
+ && !(tw.parent() instanceof AST_Scope)) {
AST_Node.warn("Function {name} declared in nested statement [{line},{col}]", {
name: node.name.name,
line: node.start.line,