oxc_transformer/es2016/
mod.rs1use oxc_ast::ast::*;
2use oxc_traverse::{Traverse, TraverseCtx};
3
4use crate::TransformCtx;
5
6mod exponentiation_operator;
7mod options;
8
9pub use exponentiation_operator::ExponentiationOperator;
10pub use options::ES2016Options;
11
12pub struct ES2016<'a, 'ctx> {
13 options: ES2016Options,
14
15 exponentiation_operator: ExponentiationOperator<'a, 'ctx>,
17}
18
19impl<'a, 'ctx> ES2016<'a, 'ctx> {
20 pub fn new(options: ES2016Options, ctx: &'ctx TransformCtx<'a>) -> Self {
21 Self { exponentiation_operator: ExponentiationOperator::new(ctx), options }
22 }
23}
24
25impl<'a> Traverse<'a> for ES2016<'a, '_> {
26 fn enter_expression(&mut self, expr: &mut Expression<'a>, ctx: &mut TraverseCtx<'a>) {
27 if self.options.exponentiation_operator {
28 self.exponentiation_operator.enter_expression(expr, ctx);
29 }
30 }
31}