1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
// use swc_common::Spanned; use swc_ecma_ast::*; use swc_ecma_visit::Fold; /// This transform validates span on debug mode and does nothing on release /// mode. pub struct Validator { pub name: &'static str, } impl Fold for Validator { // fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr { // if node.span.is_dummy() { // return node.fold_children_with(self); // } // // if !node.left.span().is_dummy() { // gte!(self, AssignExpr, node.left.span().lo(), node.span().lo()); // } // // // if !node.right.span().is_dummy() { // // eq!(self, AssignExpr, node.right.span().hi(), // node.span().hi()); // } // // node.fold_children_with(self) // } // // fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr { // if node.span.is_dummy() { // return node.fold_children_with(self); // } // // if !node.left.span().is_dummy() { // gte!(self, BinExpr, node.left.span().lo(), node.span().lo()); // } // // if !node.right.span().is_dummy() { // gte!(self, BinExpr, node.span().hi(), node.right.span().hi()); // } // // node.fold_children_with(self) // } // // fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr { // if node.span.is_dummy() { // return node.fold_children_with(self); // } // // if !node.test.span().is_dummy() { // gte!(self, CondExpr, node.test.span().lo(), node.span().lo()); // } // // if !node.alt.span().is_dummy() { // lte!(self, CondExpr, node.alt.span().hi(), node.span().hi()); // } // // node.fold_children_with(self) // } // // fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr { // if node.span.is_dummy() { // return node.fold_children_with(self); // } // // if !node.obj.span().is_dummy() { // ne!(self, MemberExpr, node.span(), node.obj.span()); // } // // if !node.prop.span().is_dummy() { // ne!(self, MemberExpr, node.span(), node.prop.span()); // } // // if !node.obj.span().is_dummy() { // lte!(self, MemberExpr, node.span().lo(), node.obj.span().lo()); // } // // if !node.computed && !node.prop.span().is_dummy() { // gte!(self, MemberExpr, node.span().hi(), node.prop.span().hi()); // } // // node.fold_children_with(self) // } // // fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr { // if node.span.is_dummy() { // return node.fold_children_with(self); // } // // if !node.arg.span().is_dummy() { // lte!(self, UnaryExpr, node.arg.span().hi(), node.span().hi()) // } // // node.fold_children_with(self) // } // // fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr { // if node.span.is_dummy() { // return node.fold_children_with(self); // } // // if node.prefix { // if !node.arg.span().is_dummy() { // lte!(self, UpdateExpr, node.arg.span().hi(), node.span().hi()) // } // } else if !node.arg.span().is_dummy() { // gte!(self, UpdateExpr, node.arg.span().lo(), node.span().lo()) // } // // node.fold_children_with(self) // } #[inline(always)] // prevent stack overflow on debug build fn fold_module(&mut self, module: Module) -> Module { module } }