public JsNode VisitCatchClause(CatchClause node) { var node2 = new JsCatchClause(); if (node.VariableName.IsNullOrEmpty()) { node.VariableName = "$$e" + (VariableExceptionCounter++); //Generate a psuedo-unique variable name } node2.IdentifierName = node.VariableName; node2.Block = (JsBlock)Visit(node.Body); if (node2.Block != null) { node2.Descendants <JsThrowStatement>().Where(t => t.Expression == null).ForEach(t => t.Expression = Js.Member(node2.IdentifierName)); } return(node2); }