From 9e6b128374c62ee9f6238134fdc207ec9dc86284 Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Fri, 10 Mar 2017 03:15:21 +0800 Subject: fix catch variable reference in IE8 (#1587) `AST_Scope.def_variable()` will overwrite `AST_Symbol.thedef`, so save a copy before calling. fixes #1586 --- lib/scope.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/scope.js') diff --git a/lib/scope.js b/lib/scope.js index f23c8fe2..483503ee 100644 --- a/lib/scope.js +++ b/lib/scope.js @@ -212,9 +212,10 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options){ self.walk(new TreeWalker(function(node, descend) { if (node instanceof AST_SymbolCatch) { var name = node.name; + var refs = node.thedef.references; var scope = node.thedef.scope.parent_scope; var def = scope.find_variable(name) || self.globals.get(name) || scope.def_variable(node); - node.thedef.references.forEach(function(ref) { + refs.forEach(function(ref) { ref.thedef = def; ref.reference(options); }); -- cgit v1.2.3