AST_Catch shouldn't really inherit from AST_Scope. Fix #363

I hereby acknowledge that figure_out_scope has become a mess.
This commit is contained in:
Mihai Bazon
2013-12-05 13:30:29 +02:00
parent d2190c2bf3
commit 8f35a363d9
3 changed files with 55 additions and 5 deletions

View File

@@ -82,14 +82,20 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options){
var defun = null;
var nesting = 0;
var tw = new TreeWalker(function(node, descend){
if (options.screw_ie8 && node instanceof AST_Catch) {
var save_scope = scope;
scope = new AST_Scope(node);
scope.init_scope_vars(nesting);
scope.parent_scope = save_scope;
descend();
scope = save_scope;
return true;
}
if (node instanceof AST_Scope) {
node.init_scope_vars(nesting);
var save_scope = node.parent_scope = scope;
var save_defun = defun;
if (!(node instanceof AST_Catch)) {
defun = node;
}
scope = node;
defun = scope = node;
++nesting; descend(); --nesting;
scope = save_scope;
defun = save_defun;