Skip to content

Commit cc4586f

Browse files
committed
More work for swc_ecma_transforms
1 parent 9aa8b53 commit cc4586f

File tree

30 files changed

+472
-349
lines changed

30 files changed

+472
-349
lines changed

ecmascript/transforms/src/compat/es2015/arrow.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ impl Fold for Arrow {
118118

119119
Expr::Call(CallExpr {
120120
span,
121-
callee: fn_expr.member(quote_ident!("bind")).as_callee(),
121+
callee: fn_expr.make_member(quote_ident!("bind")).as_callee(),
122122
args: vec![ThisExpr { span: DUMMY_SP }.as_arg()],
123123
type_args: Default::default(),
124124
})

ecmascript/transforms/src/compat/es2015/block_scoping.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ impl BlockScoping {
229229
})),
230230
cons: Box::new(Stmt::Return(ReturnStmt {
231231
span: DUMMY_SP,
232-
arg: Some(ret.clone().member(quote_ident!("v")).into()),
232+
arg: Some(ret.clone().make_member(quote_ident!("v")).into()),
233233
})),
234234
alt: None,
235235
}

ecmascript/transforms/src/compat/es2015/classes/constructor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ pub(super) fn make_possible_return_value(mode: ReturningMode) -> Expr {
372372
let apply = Box::new(Expr::Call(CallExpr {
373373
span: DUMMY_SP,
374374
callee: get_prototype_of(Expr::Ident(class_name))
375-
.member(fn_name)
375+
.make_member(fn_name)
376376
.as_callee(),
377377

378378
// super(foo, bar) => possibleReturnCheck(this, foo, bar)

ecmascript/transforms/src/compat/es2015/classes/super_field.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,9 @@ impl<'a> SuperCalleeFolder<'a> {
209209
Expr::Ident(self.class_name.clone())
210210
} else {
211211
// Foo.prototype
212-
self.class_name.clone().member(quote_ident!("prototype"))
212+
self.class_name
213+
.clone()
214+
.make_member(quote_ident!("prototype"))
213215
})
214216
.as_arg();
215217

@@ -285,8 +287,12 @@ impl<'a> SuperCalleeFolder<'a> {
285287
}
286288
}
287289

288-
let proto_arg =
289-
get_prototype_of(self.class_name.clone().member(quote_ident!("prototype"))).as_arg();
290+
let proto_arg = get_prototype_of(
291+
self.class_name
292+
.clone()
293+
.make_member(quote_ident!("prototype")),
294+
)
295+
.as_arg();
290296

291297
let prop_arg = match *prop {
292298
Expr::Ident(Ident {

ecmascript/transforms/src/compat/es2015/computed_props.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,8 @@ impl Fold for ObjectLitFolder {
188188
exprs.push(Box::new(Expr::Assign(AssignExpr {
189189
span,
190190
left: PatOrExpr::Expr(Box::new(
191-
mutator_elem.member(quote_ident!(gs_prop_name.unwrap())),
191+
mutator_elem
192+
.make_member(quote_ident!(gs_prop_name.unwrap())),
192193
)),
193194
op: op!("="),
194195
right: Box::new(Expr::Fn(FnExpr {

ecmascript/transforms/src/compat/es2015/destructuring.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,10 @@ impl AssignFolder {
230230
name: *arg,
231231
init: Some(Box::new(Expr::Call(CallExpr {
232232
span: DUMMY_SP,
233-
callee: ref_ident.clone().member(quote_ident!("slice")).as_callee(),
233+
callee: ref_ident
234+
.clone()
235+
.make_member(quote_ident!("slice"))
236+
.as_callee(),
234237
args: vec![Lit::Num(Number {
235238
value: i as f64,
236239
span: dot3_token,
@@ -671,7 +674,7 @@ impl Fold for AssignFolder {
671674
span: DUMMY_SP,
672675
callee: ref_ident
673676
.clone()
674-
.member(quote_ident!("slice"))
677+
.make_member(quote_ident!("slice"))
675678
.as_callee(),
676679
args: vec![(i as f64).as_arg()],
677680
type_args: Default::default(),

ecmascript/transforms/src/compat/es2015/for_of.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ impl Actual {
9696
span: DUMMY_SP,
9797
left: Box::new(Expr::Ident(i.clone())),
9898
op: op!("<"),
99-
right: Box::new(arr.clone().member(quote_ident!("length"))),
99+
right: Box::new(arr.clone().make_member(quote_ident!("length"))),
100100
})));
101101
let update = Some(Box::new(Expr::Update(UpdateExpr {
102102
span: DUMMY_SP,
@@ -203,7 +203,7 @@ impl Actual {
203203
};
204204

205205
let step = quote_ident!(var_span, "_step");
206-
let step_value = Box::new(step.clone().member(quote_ident!("value")));
206+
let step_value = Box::new(step.clone().make_member(quote_ident!("value")));
207207
body.stmts.insert(
208208
0,
209209
match left {
@@ -231,7 +231,7 @@ impl Actual {
231231

232232
let iterator = quote_ident!(var_span, "_iterator");
233233
// `_iterator.return`
234-
let iterator_return = Box::new(iterator.clone().member(quote_ident!("return")));
234+
let iterator_return = Box::new(iterator.clone().make_member(quote_ident!("return")));
235235

236236
let normal_completion_ident = Ident::new("_iteratorNormalCompletion".into(), var_span);
237237
self.top_level_vars.push(VarDeclarator {
@@ -305,7 +305,7 @@ impl Actual {
305305
right: Box::new(Expr::Call(CallExpr {
306306
span: DUMMY_SP,
307307
// `_iterator.next`
308-
callee: iterator.member(quote_ident!("next")).as_callee(),
308+
callee: iterator.make_member(quote_ident!("next")).as_callee(),
309309
args: vec![],
310310
type_args: Default::default(),
311311
})),
@@ -315,7 +315,7 @@ impl Actual {
315315
span: DUMMY_SP,
316316
left: PatOrExpr::Pat(Box::new(Pat::Ident(normal_completion_ident.clone()))),
317317
op: op!("="),
318-
right: Box::new(step_expr.member(quote_ident!("done"))),
318+
right: Box::new(step_expr.make_member(quote_ident!("done"))),
319319
}));
320320

321321
iteration_normal_completion

ecmascript/transforms/src/compat/es2015/regenerator/case.rs

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,10 @@ impl CaseHandler<'_> {
174174
self.unmarked_loc()
175175
};
176176

177-
self.emit_assign(self.ctx.clone().member(quote_ident!("prev")), loc.expr());
177+
self.emit_assign(
178+
self.ctx.clone().make_member(quote_ident!("prev")),
179+
loc.expr(),
180+
);
178181
}
179182

180183
fn emit(&mut self, stmt: Stmt) {
@@ -201,7 +204,7 @@ impl CaseHandler<'_> {
201204
let res = self
202205
.ctx
203206
.clone()
204-
.member(quote_ident!(format!("t{}", self.temp_idx)));
207+
.make_member(quote_ident!(format!("t{}", self.temp_idx)));
205208

206209
self.temp_idx += 1;
207210

@@ -382,7 +385,7 @@ impl CaseHandler<'_> {
382385
prop,
383386
computed: me.computed,
384387
}
385-
.member(quote_ident!("call")),
388+
.make_member(quote_ident!("call")),
386389
))
387390
} else {
388391
ExprOrSuper::Expr(Box::new(self.explode_expr(Expr::Member(me), false)))
@@ -675,7 +678,7 @@ impl CaseHandler<'_> {
675678
callee: self
676679
.ctx
677680
.clone()
678-
.member(quote_ident!("delegateYield"))
681+
.make_member(quote_ident!("delegateYield"))
679682
.as_callee(),
680683
args: vec![
681684
arg.unwrap().as_arg(),
@@ -690,8 +693,8 @@ impl CaseHandler<'_> {
690693
self.emit(ret);
691694
let after = self.mark(after);
692695
match self.listing.last_mut().unwrap() {
693-
Stmt::Return(ReturnStmt { arg: Some(arg), .. }) => match arg {
694-
Expr::Call(CallExpr { args, .. }) => {
696+
Stmt::Return(ReturnStmt { arg: Some(arg), .. }) => match **arg {
697+
Expr::Call(CallExpr { ref mut args, .. }) => {
695698
*args.last_mut().unwrap() = after.to_stmt_index().as_arg();
696699
}
697700
_ => unreachable!(),
@@ -702,7 +705,10 @@ impl CaseHandler<'_> {
702705
return result;
703706
}
704707

705-
self.emit_assign(self.ctx.clone().member(quote_ident!("next")), after.expr());
708+
self.emit_assign(
709+
self.ctx.clone().make_member(quote_ident!("next")),
710+
after.expr(),
711+
);
706712

707713
let ret = ReturnStmt {
708714
span: DUMMY_SP,
@@ -712,7 +718,7 @@ impl CaseHandler<'_> {
712718
self.emit(ret);
713719
self.mark(after);
714720

715-
finish!(self.ctx.clone().member(quote_ident!("sent")))
721+
finish!(self.ctx.clone().make_member(quote_ident!("sent")))
716722
}
717723
}
718724
}
@@ -795,7 +801,11 @@ impl CaseHandler<'_> {
795801
arg: Some(Box::new(
796802
CallExpr {
797803
span: DUMMY_SP,
798-
callee: self.ctx.clone().member(quote_ident!("abrupt")).as_callee(),
804+
callee: self
805+
.ctx
806+
.clone()
807+
.make_member(quote_ident!("abrupt"))
808+
.as_callee(),
799809
args: {
800810
let ty_arg = Lit::Str(Str {
801811
span: DUMMY_SP,
@@ -830,7 +840,7 @@ impl CaseHandler<'_> {
830840
}
831841

832842
fn jump_expr(&mut self, next: Expr) {
833-
self.emit_assign(self.ctx.clone().member(quote_ident!("next")), next);
843+
self.emit_assign(self.ctx.clone().make_member(quote_ident!("next")), next);
834844
self.emit(Stmt::Break(BreakStmt {
835845
span: DUMMY_SP,
836846
label: None,
@@ -850,7 +860,7 @@ impl CaseHandler<'_> {
850860
span: DUMMY_SP,
851861
op: op!("="),
852862
left: PatOrExpr::Expr(Box::new(
853-
self.ctx.clone().member(quote_ident!("next")),
863+
self.ctx.clone().make_member(quote_ident!("next")),
854864
)),
855865
right: Box::new(to.expr()),
856866
}
@@ -893,7 +903,7 @@ impl CaseHandler<'_> {
893903
span: DUMMY_SP,
894904
op: op!("="),
895905
left: PatOrExpr::Expr(Box::new(
896-
self.ctx.clone().member(quote_ident!("next")),
906+
self.ctx.clone().make_member(quote_ident!("next")),
897907
)),
898908
right: Box::new(to.expr()),
899909
}
@@ -1174,7 +1184,7 @@ impl CaseHandler<'_> {
11741184
let callee = folder
11751185
.ctx
11761186
.clone()
1177-
.member(quote_ident!("finish"))
1187+
.make_member(quote_ident!("finish"))
11781188
.as_callee();
11791189
folder.emit(
11801190
ReturnStmt {
@@ -1342,13 +1352,14 @@ impl CaseHandler<'_> {
13421352
.into(),
13431353
),
13441354
}
1345-
.member(quote_ident!("done")),
1355+
.make_member(quote_ident!("done")),
13461356
),
13471357
after,
13481358
);
13491359

13501360
{
1351-
let right = Box::new(key_info_tmp_var.clone().member(quote_ident!("value")));
1361+
let right =
1362+
Box::new(key_info_tmp_var.clone().make_member(quote_ident!("value")));
13521363
match s.left {
13531364
VarDeclOrPat::VarDecl(var) => unreachable!(
13541365
"VarDeclaration in for-in statement must be hoisted: {:?}",

ecmascript/transforms/src/compat/es2015/regenerator/mod.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ impl Fold for Regenerator {
109109
.regenerator_runtime
110110
.clone()
111111
.unwrap()
112-
.member(quote_ident!("mark"))
112+
.make_member(quote_ident!("mark"))
113113
.as_callee(),
114114
args: vec![FnExpr { ident, function }.as_arg()],
115115
type_args: None,
@@ -144,7 +144,7 @@ impl Fold for Regenerator {
144144
.regenerator_runtime
145145
.clone()
146146
.unwrap()
147-
.member(quote_ident!("mark"))
147+
.make_member(quote_ident!("mark"))
148148
.as_callee(),
149149
args: vec![f.ident.clone().as_arg()],
150150
type_args: None,
@@ -217,7 +217,7 @@ impl Fold for Regenerator {
217217
.regenerator_runtime
218218
.clone()
219219
.unwrap()
220-
.member(quote_ident!("mark"))
220+
.make_member(quote_ident!("mark"))
221221
.as_callee(),
222222
args: vec![FnExpr { ident, function }.as_arg()],
223223
type_args: None,
@@ -356,7 +356,7 @@ impl Regenerator {
356356
// _ctx.stop()
357357
arg: Some(Box::new(Expr::Call(CallExpr {
358358
span: DUMMY_SP,
359-
callee: ctx.clone().member(quote_ident!("stop")).as_callee(),
359+
callee: ctx.clone().make_member(quote_ident!("stop")).as_callee(),
360360
args: vec![],
361361
type_args: Default::default(),
362362
}))),
@@ -379,9 +379,9 @@ impl Regenerator {
379379
span: DUMMY_SP,
380380
op: op!("="),
381381
left: PatOrExpr::Expr(Box::new(
382-
ctx.clone().member(quote_ident!("prev")),
382+
ctx.clone().make_member(quote_ident!("prev")),
383383
)),
384-
right: Box::new(ctx.clone().member(quote_ident!("next"))),
384+
right: Box::new(ctx.clone().make_member(quote_ident!("next"))),
385385
}
386386
.into(),
387387
),
@@ -417,7 +417,7 @@ impl Regenerator {
417417
.regenerator_runtime
418418
.clone()
419419
.unwrap()
420-
.member(quote_ident!("wrap"))
420+
.make_member(quote_ident!("wrap"))
421421
.as_callee(),
422422
args: {
423423
let mut args = vec![Expr::Fn(FnExpr {
@@ -492,7 +492,7 @@ impl Fold for FnSentVisitor {
492492
Expr::MetaProp(MetaPropExpr { meta, prop })
493493
if meta.sym == *"function" && prop.sym == *"sent" =>
494494
{
495-
return self.ctx.clone().member(quote_ident!("_sent"));
495+
return self.ctx.clone().make_member(quote_ident!("_sent"));
496496
}
497497

498498
_ => {}

ecmascript/transforms/src/compat/es2015/spread.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ impl ActualFolder {
323323
span: DUMMY_SP,
324324
elems: vec![],
325325
}
326-
.member(quote_ident!("concat"))
326+
.make_member(quote_ident!("concat"))
327327
.as_callee(),
328328
args: vec![expr.as_arg()],
329329
type_args: Default::default(),
@@ -369,7 +369,7 @@ impl ActualFolder {
369369
let callee = buf
370370
.remove(0)
371371
.expr
372-
.member(Ident::new(js_word!("concat"), DUMMY_SP))
372+
.make_member(Ident::new(js_word!("concat"), DUMMY_SP))
373373
.as_callee();
374374

375375
if buf[0].spread.is_none() {
@@ -404,7 +404,7 @@ impl ActualFolder {
404404
elems: vec![],
405405
})
406406
})
407-
.member(Ident::new(js_word!("concat"), span))
407+
.make_member(Ident::new(js_word!("concat"), span))
408408
.as_callee(),
409409

410410
args: buf,

0 commit comments

Comments
 (0)