"use strict";function TreeTransformer(n,o){TreeWalker.call(this),this.before=n,this.after=o}TreeTransformer.prototype=new TreeWalker,function(n){function o(n,o){return MAP(n,function(n){return n.transform(o,!0)})}n(AST_Node,noop),n(AST_LabeledStatement,function(n,o){n.label=n.label.transform(o),n.body=n.body.transform(o)}),n(AST_SimpleStatement,function(n,o){n.body=n.body.transform(o)}),n(AST_Block,function(n,r){n.body=o(n.body,r)}),n(AST_Do,function(n,o){n.body=n.body.transform(o),n.condition=n.condition.transform(o)}),n(AST_While,function(n,o){n.condition=n.condition.transform(o),n.body=n.body.transform(o)}),n(AST_For,function(n,o){n.init&&(n.init=n.init.transform(o)),n.condition&&(n.condition=n.condition.transform(o)),n.step&&(n.step=n.step.transform(o)),n.body=n.body.transform(o)}),n(AST_ForIn,function(n,o){n.init=n.init.transform(o),n.object=n.object.transform(o),n.body=n.body.transform(o)}),n(AST_With,function(n,o){n.expression=n.expression.transform(o),n.body=n.body.transform(o)}),n(AST_Exit,function(n,o){n.value&&(n.value=n.value.transform(o))}),n(AST_LoopControl,function(n,o){n.label&&(n.label=n.label.transform(o))}),n(AST_If,function(n,o){n.condition=n.condition.transform(o),n.body=n.body.transform(o),n.alternative&&(n.alternative=n.alternative.transform(o))}),n(AST_Switch,function(n,r){n.expression=n.expression.transform(r),n.body=o(n.body,r)}),n(AST_Case,function(n,r){n.expression=n.expression.transform(r),n.body=o(n.body,r)}),n(AST_Try,function(n,r){n.body=o(n.body,r),n.bcatch&&(n.bcatch=n.bcatch.transform(r)),n.bfinally&&(n.bfinally=n.bfinally.transform(r))}),n(AST_Catch,function(n,r){n.argname=n.argname.transform(r),n.body=o(n.body,r)}),n(AST_Definitions,function(n,r){n.definitions=o(n.definitions,r)}),n(AST_VarDef,function(n,o){n.name=n.name.transform(o),n.value&&(n.value=n.value.transform(o))}),n(AST_Lambda,function(n,r){n.name&&(n.name=n.name.transform(r)),n.argnames=o(n.argnames,r),n.body=o(n.body,r)}),n(AST_Call,function(n,r){n.expression=n.expression.transform(r),n.args=o(n.args,r)}),n(AST_Sequence,function(n,r){n.expressions=o(n.expressions,r)}),n(AST_Dot,function(n,o){n.expression=n.expression.transform(o)}),n(AST_Sub,function(n,o){n.expression=n.expression.transform(o),n.property=n.property.transform(o)}),n(AST_Unary,function(n,o){n.expression=n.expression.transform(o)}),n(AST_Binary,function(n,o){n.left=n.left.transform(o),n.right=n.right.transform(o)}),n(AST_Conditional,function(n,o){n.condition=n.condition.transform(o),n.consequent=n.consequent.transform(o),n.alternative=n.alternative.transform(o)}),n(AST_Array,function(n,r){n.elements=o(n.elements,r)}),n(AST_Object,function(n,r){n.properties=o(n.properties,r)}),n(AST_ObjectProperty,function(n,o){n.value=n.value.transform(o)})}(function(n,o){n.DEFMETHOD("transform",function(n,r){var t,e;return n.push(this),n.before&&(t=n.before(this,o,r)),void 0===t&&(o(t=this,n),n.after&&void 0!==(e=n.after(t,r))&&(t=e)),n.pop(),t})});