swc_ecma_transforms_base/
quote.rs1#[doc(hidden)]
3#[macro_export]
4macro_rules! helper_expr {
5 (ts, $field_name:ident) => {{
6 $crate::helper_expr!(ts, ::swc_common::DUMMY_SP, $field_name)
7 }};
8
9 (ts, $span:expr, $field_name:ident) => {{
10 use swc_ecma_utils::{quote_ident, ExprFactory};
11
12 let mark = $crate::enable_helper!($field_name);
13 let ctxt = swc_common::SyntaxContext::empty().apply_mark(mark);
14
15 Expr::from(swc_ecma_utils::quote_ident!(
16 ctxt,
17 $span,
18 concat!("_", stringify!($field_name))
19 ))
20 }};
21
22 ($field_name:ident) => {{
23 $crate::helper_expr!(::swc_common::DUMMY_SP, $field_name)
24 }};
25
26 ($span:expr, $field_name:ident) => {{
27 use swc_ecma_utils::{quote_ident, ExprFactory};
28
29 let mark = $crate::enable_helper!($field_name);
30 let ctxt = swc_common::SyntaxContext::empty().apply_mark(mark);
31
32 Expr::from(swc_ecma_utils::quote_ident!(
33 ctxt,
34 $span,
35 concat!("_", stringify!($field_name))
36 ))
37 }};
38}
39
40#[doc(hidden)]
42#[macro_export]
43macro_rules! helper {
44 ($($t:tt)*) => {{
45 use swc_ecma_utils::ExprFactory;
46 $crate::helper_expr!($($t)*).as_callee()
47 }};
48}