Skip to content

Commit 237bf13

Browse files
committed
[core][rewriter] dpsc: fix nested WrapGet s
1 parent 5f07a12 commit 237bf13

File tree

5 files changed

+22
-7
lines changed

5 files changed

+22
-7
lines changed

rewriter/js/src/changes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ impl<'alloc: 'data, 'data> Transform<'data> for JsChange<'alloc, 'data> {
132132
} else {
133133
transforms![&cfg.wrapcomputedgetfn, "("]
134134
}),
135-
Ty::WrapGetRight { enclose } => LL::insert(if enclose {
135+
Ty::WrapGetRight { enclose } => LL::replace(if enclose {
136136
transforms!["))"]
137137
} else {
138138
transforms![")"]

rewriter/js/src/rewrite.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ impl<'alloc: 'data, 'data> Rewrite<'alloc, 'data> {
101101

102102
impl<'alloc: 'data, 'data> RewriteType<'alloc, 'data> {
103103
fn into_inner(self, span: Span) -> SmallVec<[JsChange<'alloc, 'data>; 2]> {
104+
105+
dbg!(&self);
104106
macro_rules! span {
105107
(start) => {
106108
Span::new(span.start, span.start)
@@ -130,8 +132,8 @@ impl<'alloc: 'data, 'data> RewriteType<'alloc, 'data> {
130132
ident,
131133
enclose,
132134
}),
133-
change!(propspan, Delete),
134-
change!(span!(end), WrapGetRight {
135+
// change!(propspan, Delete),
136+
change!(Span::new(propspan.start-1, propspan.end), WrapGetRight {
135137
enclose,
136138
}),
137139
],

rewriter/js/src/visitor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ where
138138
if UNSAFE_GLOBALS.contains(&s.property.name.as_str()) {
139139
self.jschanges.add(rewrite!(it.span(), WrapGet {
140140
ident: s.property.name,
141-
propspan: Span::new(s.property.span.start-1, s.property.span.end),
141+
propspan: Span::new(s.property.span.start, s.property.span.end),
142142
enclose: false,
143143
}));
144144
}

rewriter/native/src/main.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,14 @@ pub struct RewriterOptions {
2525
prefix: String,
2626
#[clap(long, default_value = "$wrap")]
2727
wrapfn: String,
28-
#[clap(long, default_value = "$gwrap")]
29-
wrapthisfn: String,
28+
#[clap(long, default_value = "$get_")]
29+
wrapgetbase: String,
30+
#[clap(long, default_value = "$set_")]
31+
wrapsetbase: String,
32+
#[clap(long, default_value = "$computedget")]
33+
wrapcomputedgetfn: String,
34+
#[clap(long, default_value = "$computedset")]
35+
wrapcomputedsetfn: String,
3036
#[clap(long, default_value = "$import")]
3137
importfn: String,
3238
#[clap(long, default_value = "$rewrite")]
@@ -102,6 +108,10 @@ fn main() -> Result<()> {
102108
);
103109

104110
let unrewritten = NativeRewriter::unrewrite(&res);
111+
// println!(
112+
// "unrewritten:\n{}",
113+
// str::from_utf8(&unrewritten).context("failed to parse unrewritten js")?
114+
// );
105115

106116
eprintln!("errors:");
107117
for err in res.errors {

rewriter/native/src/rewriter.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,10 @@ impl NativeRewriter {
5252
Config {
5353
prefix: cfg.prefix.clone(),
5454
wrapfn: cfg.wrapfn.clone(),
55-
wrapthisfn: cfg.wrapthisfn.clone(),
55+
wrapgetbase: cfg.wrapgetbase.clone(),
56+
wrapsetbase: cfg.wrapsetbase.clone(),
57+
wrapcomputedgetfn: cfg.wrapcomputedgetfn.clone(),
58+
wrapcomputedsetfn: cfg.wrapcomputedsetfn.clone(),
5659
importfn: cfg.importfn.clone(),
5760
rewritefn: cfg.rewritefn.clone(),
5861
metafn: cfg.metafn.clone(),

0 commit comments

Comments
 (0)