"use strict";function TreeTransformer(c,a){TreeWalker.call(this),this.before=c,this.after=a}TreeTransformer.prototype=new TreeWalker,function(){function c(c,f){c.DEFMETHOD("transform",function(b,a){var c,d;return b.push(this),b.before&&(c=b.before(this,f,a)),void 0===c&&(c=this,f(c,b),b.after&&(d=b.after(c,a),void 0!==d&&(c=d))),b.pop(),c})}function d(c,d){return MAP(c,function(b){return b.transform(d,!0)})}c(AST_Node,noop),c(AST_LabeledStatement,function(c,a){c.label=c.label.transform(a),c.body=c.body.transform(a)}),c(AST_SimpleStatement,function(c,a){c.body=c.body.transform(a)}),c(AST_Block,function(b,a){b.body=d(b.body,a)}),c(AST_DWLoop,function(c,a){c.condition=c.condition.transform(a),c.body=c.body.transform(a)}),c(AST_For,function(c,a){c.init&&(c.init=c.init.transform(a)),c.condition&&(c.condition=c.condition.transform(a)),c.step&&(c.step=c.step.transform(a)),c.body=c.body.transform(a)}),c(AST_ForIn,function(c,a){c.init=c.init.transform(a),c.object=c.object.transform(a),c.body=c.body.transform(a)}),c(AST_With,function(c,a){c.expression=c.expression.transform(a),c.body=c.body.transform(a)}),c(AST_Exit,function(c,a){c.value&&(c.value=c.value.transform(a))}),c(AST_LoopControl,function(c,a){c.label&&(c.label=c.label.transform(a))}),c(AST_If,function(c,a){c.condition=c.condition.transform(a),c.body=c.body.transform(a),c.alternative&&(c.alternative=c.alternative.transform(a))}),c(AST_Switch,function(b,a){b.expression=b.expression.transform(a),b.body=d(b.body,a)}),c(AST_Case,function(b,a){b.expression=b.expression.transform(a),b.body=d(b.body,a)}),c(AST_Try,function(b,a){b.body=d(b.body,a),b.bcatch&&(b.bcatch=b.bcatch.transform(a)),b.bfinally&&(b.bfinally=b.bfinally.transform(a))}),c(AST_Catch,function(b,a){b.argname=b.argname.transform(a),b.body=d(b.body,a)}),c(AST_Definitions,function(b,a){b.definitions=d(b.definitions,a)}),c(AST_VarDef,function(c,a){c.name=c.name.transform(a),c.value&&(c.value=c.value.transform(a))}),c(AST_Destructuring,function(b,a){b.names=d(b.names,a)}),c(AST_Lambda,function(b,a){b.name&&(b.name=b.name.transform(a)),b.argnames=d(b.argnames,a),b.body=b.body instanceof AST_Node?b.body.transform(a):d(b.body,a)}),c(AST_Call,function(b,a){b.expression=b.expression.transform(a),b.args=d(b.args,a)}),c(AST_Sequence,function(b,a){b.expressions=d(b.expressions,a)}),c(AST_Dot,function(c,a){c.expression=c.expression.transform(a)}),c(AST_Sub,function(c,a){c.expression=c.expression.transform(a),c.property=c.property.transform(a)}),c(AST_Yield,function(c,a){c.expression&&(c.expression=c.expression.transform(a))}),c(AST_Await,function(c,a){c.expression=c.expression.transform(a)}),c(AST_Unary,function(c,a){c.expression=c.expression.transform(a)}),c(AST_Binary,function(c,a){c.left=c.left.transform(a),c.right=c.right.transform(a)}),c(AST_Conditional,function(c,a){c.condition=c.condition.transform(a),c.consequent=c.consequent.transform(a),c.alternative=c.alternative.transform(a)}),c(AST_Array,function(b,a){b.elements=d(b.elements,a)}),c(AST_Object,function(b,a){b.properties=d(b.properties,a)}),c(AST_ObjectProperty,function(c,a){c.key instanceof AST_Node&&(c.key=c.key.transform(a)),c.value=c.value.transform(a)}),c(AST_Class,function(b,a){b.name&&(b.name=b.name.transform(a)),b.extends&&(b.extends=b.extends.transform(a)),b.properties=d(b.properties,a)}),c(AST_Expansion,function(c,a){c.expression=c.expression.transform(a)}),c(AST_NameMapping,function(c,a){c.foreign_name=c.foreign_name.transform(a),c.name=c.name.transform(a)}),c(AST_Import,function(b,a){b.imported_name&&(b.imported_name=b.imported_name.transform(a)),b.imported_names&&d(b.imported_names,a),b.module_name=b.module_name.transform(a)}),c(AST_Export,function(b,a){b.exported_definition&&(b.exported_definition=b.exported_definition.transform(a)),b.exported_value&&(b.exported_value=b.exported_value.transform(a)),b.exported_names&&d(b.exported_names,a),b.module_name&&(b.module_name=b.module_name.transform(a))}),c(AST_TemplateString,function(b,a){b.segments=d(b.segments,a)}),c(AST_PrefixedTemplateString,function(c,a){c.template_string=c.template_string.transform(a)})}();