swc_ecma_transforms_typescript/
utils.rs1use swc_common::DUMMY_SP;
2use swc_ecma_ast::*;
3use swc_ecma_utils::ExprFactory;
4
5pub(crate) fn assign_value_to_this_prop(prop_name: PropName, value: Expr) -> Box<Expr> {
8 let target = MemberExpr {
9 obj: ThisExpr { span: DUMMY_SP }.into(),
10 span: DUMMY_SP,
11 prop: prop_name.into(),
12 };
13
14 let expr = value.make_assign_to(op!("="), target.into());
15
16 Box::new(expr)
17}
18
19pub(crate) fn assign_value_to_this_private_prop(
21 private_name: PrivateName,
22 value: Expr,
23) -> Box<Expr> {
24 let target = MemberExpr {
25 obj: ThisExpr { span: DUMMY_SP }.into(),
26 span: DUMMY_SP,
27 prop: MemberProp::PrivateName(private_name),
28 };
29
30 let expr = value.make_assign_to(op!("="), target.into());
31
32 Box::new(expr)
33}
34
35pub(crate) struct Factory;
36
37impl Factory {
38 pub(crate) fn function(params: Vec<Param>, body: BlockStmt) -> Function {
39 Function {
40 params,
41 decorators: Default::default(),
42 span: DUMMY_SP,
43 body: Some(body),
44 is_generator: false,
45 is_async: false,
46 ..Default::default()
47 }
48 }
49}