Skip to content

Commit aa0f784

Browse files
authoredNov 11, 2024··
fix(es/resolver): Ignore VarDecl with declare: true (#9734)
**Description:** `declare const MY_MAGIC_VARIABLE: string` is not a variable declaration. **Related issue:** - vercel/next.js#72576
1 parent 92faf5b commit aa0f784

34 files changed

+231
-177
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,86 @@
11
//// [callChain.ts]
22
var _o2, _o21, _o22, _o23, _o3_b, _o3_b1, _o3_b2, _o3_b3, _o3_b4, _o3_b5;
3-
var _o3_b6, _o3_b7, _o3_b8, _o3_b9, _o3_b10, _o3_b11, _o3_b12, _o3_b13, _o3_b14, _o3_b15, _o3_b16, _o3_b17, _o5;
4-
o1 === null || o1 === void 0 ? void 0 : o1();
5-
o1 === null || o1 === void 0 ? void 0 : o1(1);
6-
o1 === null || o1 === void 0 ? void 0 : o1.apply(void 0, [
3+
var _o1, _o11, _o12, _o13, _o24, _o25, _o26, _o27, _o28, _o29, _o210, _o211, _o3_b6, _o3, _o3_b7, _o31, _o3_b8, _o32, _o3_b9, _o33, _o3_b10, _o34, _o3_b11, _o35, _o3_b12, _o36, _o3_b13, _o37, _o3_b14, _o38, _o3_b15, _o39, _o3_b16, _o310, _o3_b17, _o311, _o4, _o5, // GH#36031
4+
_o212, _o213;
5+
(_o1 = o1) === null || _o1 === void 0 ? void 0 : _o1();
6+
(_o11 = o1) === null || _o11 === void 0 ? void 0 : _o11(1);
7+
(_o12 = o1) === null || _o12 === void 0 ? void 0 : _o12.apply(void 0, [
78
1,
89
2
910
]);
10-
o1 === null || o1 === void 0 ? void 0 : o1.apply(void 0, [
11+
(_o13 = o1) === null || _o13 === void 0 ? void 0 : _o13.apply(void 0, [
1112
1,
1213
2,
1314
3,
1415
4
1516
]);
16-
o2 === null || o2 === void 0 ? void 0 : o2.b();
17-
o2 === null || o2 === void 0 ? void 0 : o2.b(1);
18-
o2 === null || o2 === void 0 ? void 0 : (_o2 = o2).b.apply(_o2, [
17+
(_o24 = o2) === null || _o24 === void 0 ? void 0 : _o24.b();
18+
(_o25 = o2) === null || _o25 === void 0 ? void 0 : _o25.b(1);
19+
(_o26 = o2) === null || _o26 === void 0 ? void 0 : (_o2 = _o26).b.apply(_o2, [
1920
1,
2021
2
2122
]);
22-
o2 === null || o2 === void 0 ? void 0 : (_o21 = o2).b.apply(_o21, [
23+
(_o27 = o2) === null || _o27 === void 0 ? void 0 : (_o21 = _o27).b.apply(_o21, [
2324
1,
2425
2,
2526
3,
2627
4
2728
]);
28-
o2 === null || o2 === void 0 ? void 0 : o2["b"]();
29-
o2 === null || o2 === void 0 ? void 0 : o2["b"](1);
30-
o2 === null || o2 === void 0 ? void 0 : (_o22 = o2)["b"].apply(_o22, [
29+
(_o28 = o2) === null || _o28 === void 0 ? void 0 : _o28["b"]();
30+
(_o29 = o2) === null || _o29 === void 0 ? void 0 : _o29["b"](1);
31+
(_o210 = o2) === null || _o210 === void 0 ? void 0 : (_o22 = _o210)["b"].apply(_o22, [
3132
1,
3233
2
3334
]);
34-
o2 === null || o2 === void 0 ? void 0 : (_o23 = o2)["b"].apply(_o23, [
35+
(_o211 = o2) === null || _o211 === void 0 ? void 0 : (_o23 = _o211)["b"].apply(_o23, [
3536
1,
3637
2,
3738
3,
3839
4
3940
]);
40-
(_o3_b6 = o3.b) === null || _o3_b6 === void 0 ? void 0 : _o3_b6.call(o3).c;
41-
(_o3_b7 = o3.b) === null || _o3_b7 === void 0 ? void 0 : _o3_b7.call(o3, 1).c;
42-
(_o3_b8 = o3.b) === null || _o3_b8 === void 0 ? void 0 : (_o3_b = _o3_b8).call.apply(_o3_b, [
43-
o3,
41+
(_o3_b6 = (_o3 = o3).b) === null || _o3_b6 === void 0 ? void 0 : _o3_b6.call(_o3).c;
42+
(_o3_b7 = (_o31 = o3).b) === null || _o3_b7 === void 0 ? void 0 : _o3_b7.call(_o31, 1).c;
43+
(_o3_b8 = (_o32 = o3).b) === null || _o3_b8 === void 0 ? void 0 : (_o3_b = _o3_b8).call.apply(_o3_b, [
44+
_o32,
4445
1,
4546
2
4647
]).c;
47-
(_o3_b9 = o3.b) === null || _o3_b9 === void 0 ? void 0 : (_o3_b1 = _o3_b9).call.apply(_o3_b1, [
48-
o3,
48+
(_o3_b9 = (_o33 = o3).b) === null || _o3_b9 === void 0 ? void 0 : (_o3_b1 = _o3_b9).call.apply(_o3_b1, [
49+
_o33,
4950
1,
5051
2,
5152
3,
5253
4
5354
]).c;
54-
(_o3_b10 = o3.b) === null || _o3_b10 === void 0 ? void 0 : _o3_b10.call(o3)["c"];
55-
(_o3_b11 = o3.b) === null || _o3_b11 === void 0 ? void 0 : _o3_b11.call(o3, 1)["c"];
56-
(_o3_b12 = o3.b) === null || _o3_b12 === void 0 ? void 0 : (_o3_b2 = _o3_b12).call.apply(_o3_b2, [
57-
o3,
55+
(_o3_b10 = (_o34 = o3).b) === null || _o3_b10 === void 0 ? void 0 : _o3_b10.call(_o34)["c"];
56+
(_o3_b11 = (_o35 = o3).b) === null || _o3_b11 === void 0 ? void 0 : _o3_b11.call(_o35, 1)["c"];
57+
(_o3_b12 = (_o36 = o3).b) === null || _o3_b12 === void 0 ? void 0 : (_o3_b2 = _o3_b12).call.apply(_o3_b2, [
58+
_o36,
5859
1,
5960
2
6061
])["c"];
61-
(_o3_b13 = o3.b) === null || _o3_b13 === void 0 ? void 0 : (_o3_b3 = _o3_b13).call.apply(_o3_b3, [
62-
o3,
62+
(_o3_b13 = (_o37 = o3).b) === null || _o3_b13 === void 0 ? void 0 : (_o3_b3 = _o3_b13).call.apply(_o3_b3, [
63+
_o37,
6364
1,
6465
2,
6566
3,
6667
4
6768
])["c"];
68-
(_o3_b14 = o3["b"]) === null || _o3_b14 === void 0 ? void 0 : _o3_b14.call(o3).c;
69-
(_o3_b15 = o3["b"]) === null || _o3_b15 === void 0 ? void 0 : _o3_b15.call(o3, 1).c;
70-
(_o3_b16 = o3["b"]) === null || _o3_b16 === void 0 ? void 0 : (_o3_b4 = _o3_b16).call.apply(_o3_b4, [
71-
o3,
69+
(_o3_b14 = (_o38 = o3)["b"]) === null || _o3_b14 === void 0 ? void 0 : _o3_b14.call(_o38).c;
70+
(_o3_b15 = (_o39 = o3)["b"]) === null || _o3_b15 === void 0 ? void 0 : _o3_b15.call(_o39, 1).c;
71+
(_o3_b16 = (_o310 = o3)["b"]) === null || _o3_b16 === void 0 ? void 0 : (_o3_b4 = _o3_b16).call.apply(_o3_b4, [
72+
_o310,
7273
1,
7374
2
7475
]).c;
75-
(_o3_b17 = o3["b"]) === null || _o3_b17 === void 0 ? void 0 : (_o3_b5 = _o3_b17).call.apply(_o3_b5, [
76-
o3,
76+
(_o3_b17 = (_o311 = o3)["b"]) === null || _o3_b17 === void 0 ? void 0 : (_o3_b5 = _o3_b17).call.apply(_o3_b5, [
77+
_o311,
7778
1,
7879
2,
7980
3,
8081
4
8182
]).c;
82-
var v = o4 === null || o4 === void 0 ? void 0 : o4(incr);
83+
var v = (_o4 = o4) === null || _o4 === void 0 ? void 0 : _o4(incr);
8384
(_o5 = o5()) === null || _o5 === void 0 ? void 0 : _o5();
84-
// GH#36031
85-
o2 === null || o2 === void 0 ? void 0 : o2.b().toString;
86-
o2 === null || o2 === void 0 ? void 0 : o2.b().toString;
85+
(_o212 = o2) === null || _o212 === void 0 ? void 0 : _o212.b().toString;
86+
(_o213 = o2) === null || _o213 === void 0 ? void 0 : _o213.b().toString;
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//// [callChain.2.ts]
2-
var _o3_b;
3-
o1 === null || o1 === void 0 ? void 0 : o1();
4-
o2 === null || o2 === void 0 ? void 0 : o2.b();
5-
(_o3_b = o3.b) === null || _o3_b === void 0 ? void 0 : _o3_b.call(o3).c;
2+
var _o1, _o2, _o3_b, _o3;
3+
(_o1 = o1) === null || _o1 === void 0 ? void 0 : _o1();
4+
(_o2 = o2) === null || _o2 === void 0 ? void 0 : _o2.b();
5+
(_o3_b = (_o3 = o3).b) === null || _o3_b === void 0 ? void 0 : _o3_b.call(_o3).c;
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
//// [callChain.2.ts]
2-
var _o3_b;
3-
null == o1 || o1(), null == o2 || o2.b(), null === (_o3_b = o3.b) || void 0 === _o3_b || _o3_b.call(o3).c;
2+
var _o1, _o2, _o3_b, _o3;
3+
null === (_o1 = o1) || void 0 === _o1 || _o1(), null === (_o2 = o2) || void 0 === _o2 || _o2.b(), null === (_o3_b = (_o3 = o3).b) || void 0 === _o3_b || _o3_b.call(_o3).c;
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,57 @@
11
//// [callChain.ts]
2-
var _o2, _o21, _o22, _o23, _o3_b6, _o3_b7, _o3_b8, _o3_b9, _o3_b10, _o3_b11, _o3_b12, _o3_b13, _o3_b14, _o3_b15, _o3_b16, _o3_b17, _o5;
3-
null == o1 || o1(), null == o1 || o1(1), null == o1 || o1.apply(void 0, [
2+
var _o1, _o11, _o12, _o13, _o24, _o25, _o26, _o27, _o28, _o29, _o210, _o211, _o3_b6, _o3, _o3_b7, _o31, _o3_b8, _o32, _o3_b9, _o33, _o3_b10, _o34, _o3_b11, _o35, _o3_b12, _o36, _o3_b13, _o37, _o3_b14, _o38, _o3_b15, _o39, _o3_b16, _o310, _o3_b17, _o311, _o4, _o5, _o212, _o213;
3+
null === (_o1 = o1) || void 0 === _o1 || _o1(), null === (_o11 = o1) || void 0 === _o11 || _o11(1), null === (_o12 = o1) || void 0 === _o12 || _o12.apply(void 0, [
44
1,
55
2
6-
]), null == o1 || o1.apply(void 0, [
6+
]), null === (_o13 = o1) || void 0 === _o13 || _o13.apply(void 0, [
77
1,
88
2,
99
3,
1010
4
11-
]), null == o2 || o2.b(), null == o2 || o2.b(1), null == o2 || (_o2 = o2).b.apply(_o2, [
11+
]), null === (_o24 = o2) || void 0 === _o24 || _o24.b(), null === (_o25 = o2) || void 0 === _o25 || _o25.b(1), null === (_o26 = o2) || void 0 === _o26 || _o26.b.apply(_o26, [
1212
1,
1313
2
14-
]), null == o2 || (_o21 = o2).b.apply(_o21, [
14+
]), null === (_o27 = o2) || void 0 === _o27 || _o27.b.apply(_o27, [
1515
1,
1616
2,
1717
3,
1818
4
19-
]), null == o2 || o2.b(), null == o2 || o2.b(1), null == o2 || (_o22 = o2).b.apply(_o22, [
19+
]), null === (_o28 = o2) || void 0 === _o28 || _o28.b(), null === (_o29 = o2) || void 0 === _o29 || _o29.b(1), null === (_o210 = o2) || void 0 === _o210 || _o210.b.apply(_o210, [
2020
1,
2121
2
22-
]), null == o2 || (_o23 = o2).b.apply(_o23, [
22+
]), null === (_o211 = o2) || void 0 === _o211 || _o211.b.apply(_o211, [
2323
1,
2424
2,
2525
3,
2626
4
27-
]), null === (_o3_b6 = o3.b) || void 0 === _o3_b6 || _o3_b6.call(o3).c, null === (_o3_b7 = o3.b) || void 0 === _o3_b7 || _o3_b7.call(o3, 1).c, null === (_o3_b8 = o3.b) || void 0 === _o3_b8 || _o3_b8.call.apply(_o3_b8, [
28-
o3,
27+
]), null === (_o3_b6 = (_o3 = o3).b) || void 0 === _o3_b6 || _o3_b6.call(_o3).c, null === (_o3_b7 = (_o31 = o3).b) || void 0 === _o3_b7 || _o3_b7.call(_o31, 1).c, null === (_o3_b8 = (_o32 = o3).b) || void 0 === _o3_b8 || _o3_b8.call.apply(_o3_b8, [
28+
_o32,
2929
1,
3030
2
31-
]).c, null === (_o3_b9 = o3.b) || void 0 === _o3_b9 || _o3_b9.call.apply(_o3_b9, [
32-
o3,
31+
]).c, null === (_o3_b9 = (_o33 = o3).b) || void 0 === _o3_b9 || _o3_b9.call.apply(_o3_b9, [
32+
_o33,
3333
1,
3434
2,
3535
3,
3636
4
37-
]).c, null === (_o3_b10 = o3.b) || void 0 === _o3_b10 || _o3_b10.call(o3).c, null === (_o3_b11 = o3.b) || void 0 === _o3_b11 || _o3_b11.call(o3, 1).c, null === (_o3_b12 = o3.b) || void 0 === _o3_b12 || _o3_b12.call.apply(_o3_b12, [
38-
o3,
37+
]).c, null === (_o3_b10 = (_o34 = o3).b) || void 0 === _o3_b10 || _o3_b10.call(_o34).c, null === (_o3_b11 = (_o35 = o3).b) || void 0 === _o3_b11 || _o3_b11.call(_o35, 1).c, null === (_o3_b12 = (_o36 = o3).b) || void 0 === _o3_b12 || _o3_b12.call.apply(_o3_b12, [
38+
_o36,
3939
1,
4040
2
41-
]).c, null === (_o3_b13 = o3.b) || void 0 === _o3_b13 || _o3_b13.call.apply(_o3_b13, [
42-
o3,
41+
]).c, null === (_o3_b13 = (_o37 = o3).b) || void 0 === _o3_b13 || _o3_b13.call.apply(_o3_b13, [
42+
_o37,
4343
1,
4444
2,
4545
3,
4646
4
47-
]).c, null === (_o3_b14 = o3.b) || void 0 === _o3_b14 || _o3_b14.call(o3).c, null === (_o3_b15 = o3.b) || void 0 === _o3_b15 || _o3_b15.call(o3, 1).c, null === (_o3_b16 = o3.b) || void 0 === _o3_b16 || _o3_b16.call.apply(_o3_b16, [
48-
o3,
47+
]).c, null === (_o3_b14 = (_o38 = o3).b) || void 0 === _o3_b14 || _o3_b14.call(_o38).c, null === (_o3_b15 = (_o39 = o3).b) || void 0 === _o3_b15 || _o3_b15.call(_o39, 1).c, null === (_o3_b16 = (_o310 = o3).b) || void 0 === _o3_b16 || _o3_b16.call.apply(_o3_b16, [
48+
_o310,
4949
1,
5050
2
51-
]).c, null === (_o3_b17 = o3.b) || void 0 === _o3_b17 || _o3_b17.call.apply(_o3_b17, [
52-
o3,
51+
]).c, null === (_o3_b17 = (_o311 = o3).b) || void 0 === _o3_b17 || _o3_b17.call.apply(_o3_b17, [
52+
_o311,
5353
1,
5454
2,
5555
3,
5656
4
57-
]).c, null == o4 || o4(incr), null === (_o5 = o5()) || void 0 === _o5 || _o5(), null == o2 || o2.b().toString, null == o2 || o2.b().toString;
57+
]).c, null === (_o4 = o4) || void 0 === _o4 || _o4(incr), null === (_o5 = o5()) || void 0 === _o5 || _o5(), null === (_o212 = o2) || void 0 === _o212 || _o212.b().toString, null === (_o213 = o2) || void 0 === _o213 || _o213.b().toString;

‎crates/swc/tests/tsc-references/callChain.3.1.normal.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
//// [callChain.3.ts]
2-
var _a_m, _a_m1, _a_m2, _a_m3, _a_m4;
3-
var n1 = a === null || a === void 0 ? void 0 : (_a_m = a.m) === null || _a_m === void 0 ? void 0 : _a_m.call(a, {
2+
var _a_m, _a, _a_m1, _a1, _a_m2, _a2, _a_m3, _a3, _a_m4, _a4;
3+
var n1 = (_a = a) === null || _a === void 0 ? void 0 : (_a_m = _a.m) === null || _a_m === void 0 ? void 0 : _a_m.call(_a, {
44
x: 12
55
}); // should be an error (`undefined` is not assignable to `number`)
6-
var n2 = a === null || a === void 0 ? void 0 : (_a_m1 = a.m) === null || _a_m1 === void 0 ? void 0 : _a_m1.call(a, {
6+
var n2 = (_a1 = a) === null || _a1 === void 0 ? void 0 : (_a_m1 = _a1.m) === null || _a_m1 === void 0 ? void 0 : _a_m1.call(_a1, {
77
x: absorb()
88
}); // likewise
9-
var n3 = a === null || a === void 0 ? void 0 : (_a_m2 = a.m) === null || _a_m2 === void 0 ? void 0 : _a_m2.call(a, {
9+
var n3 = (_a2 = a) === null || _a2 === void 0 ? void 0 : (_a_m2 = _a2.m) === null || _a_m2 === void 0 ? void 0 : _a_m2.call(_a2, {
1010
x: 12
1111
}); // should be ok
12-
var n4 = a === null || a === void 0 ? void 0 : (_a_m3 = a.m) === null || _a_m3 === void 0 ? void 0 : _a_m3.call(a, {
12+
var n4 = (_a3 = a) === null || _a3 === void 0 ? void 0 : (_a_m3 = _a3.m) === null || _a_m3 === void 0 ? void 0 : _a_m3.call(_a3, {
1313
x: absorb()
1414
}); // likewise
1515
// Also a test showing `!` vs `?` for good measure
16-
var t1 = a === null || a === void 0 ? void 0 : (_a_m4 = a.m) === null || _a_m4 === void 0 ? void 0 : _a_m4.call(a, {
16+
var t1 = (_a4 = a) === null || _a4 === void 0 ? void 0 : (_a_m4 = _a4.m) === null || _a_m4 === void 0 ? void 0 : _a_m4.call(_a4, {
1717
x: 12
1818
});
1919
t1 = a.m({

‎crates/swc/tests/tsc-references/callChain.3.2.minified.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
//// [callChain.3.ts]
2-
var _a_m, _a_m1, _a_m2, _a_m3, _a_m4;
3-
null == a || null === (_a_m = a.m) || void 0 === _a_m || _a_m.call(a, {
2+
var _a_m, _a, _a_m1, _a1, _a_m2, _a2, _a_m3, _a3, _a_m4, _a4;
3+
null === (_a = a) || void 0 === _a || null === (_a_m = _a.m) || void 0 === _a_m || _a_m.call(_a, {
44
x: 12
5-
}), null == a || null === (_a_m1 = a.m) || void 0 === _a_m1 || _a_m1.call(a, {
5+
}), null === (_a1 = a) || void 0 === _a1 || null === (_a_m1 = _a1.m) || void 0 === _a_m1 || _a_m1.call(_a1, {
66
x: absorb()
7-
}), null == a || null === (_a_m2 = a.m) || void 0 === _a_m2 || _a_m2.call(a, {
7+
}), null === (_a2 = a) || void 0 === _a2 || null === (_a_m2 = _a2.m) || void 0 === _a_m2 || _a_m2.call(_a2, {
88
x: 12
9-
}), null == a || null === (_a_m3 = a.m) || void 0 === _a_m3 || _a_m3.call(a, {
9+
}), null === (_a3 = a) || void 0 === _a3 || null === (_a_m3 = _a3.m) || void 0 === _a_m3 || _a_m3.call(_a3, {
1010
x: absorb()
11-
}), null == a || null === (_a_m4 = a.m) || void 0 === _a_m4 || _a_m4.call(a, {
11+
}), null === (_a4 = a) || void 0 === _a4 || null === (_a_m4 = _a4.m) || void 0 === _a_m4 || _a_m4.call(_a4, {
1212
x: 12
1313
}), a.m({
1414
x: 12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
//// [callChainInference.ts]
22
// Repro from #42404
3+
var _value;
34
if (value) {
4-
value === null || value === void 0 ? void 0 : value.foo("a");
5+
var _value1;
6+
(_value1 = value) === null || _value1 === void 0 ? void 0 : _value1.foo("a");
57
}
6-
value === null || value === void 0 ? void 0 : value.foo("a");
8+
(_value = value) === null || _value === void 0 ? void 0 : _value.foo("a");
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
//// [callChainInference.ts]
2-
value && (null == value || value.foo("a")), null == value || value.foo("a");
2+
var _value, _value1;
3+
value && (null === (_value1 = value) || void 0 === _value1 || _value1.foo("a")), null === (_value = value) || void 0 === _value || _value.foo("a");

‎crates/swc/tests/tsc-references/controlFlowOptionalChain.1.normal.js

+31-22
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
// assignments in shortcutting chain
33
import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
44
import { _ as _type_of } from "@swc/helpers/_/_type_of";
5-
var _o4_x, _o4_x1, _o5_x_y_z, _o5_x, _o5_x1, _o5_x2, _o5_x_y_z1, _o5_x3, _arr_i;
5+
var _o, _o1, _o2, _o3, _f, _o21, _o22, _o31, _o32, _o4_x, _o4_x1, _o5_x_y_z, _o5_x, _o5_x1, _o5_x2, _o5_x_y_z1, _o5_x3, _o6, _o61, _arr_i;
66
var a;
7-
o === null || o === void 0 ? void 0 : o[a = 1];
7+
(_o = o) === null || _o === void 0 ? void 0 : _o[a = 1];
88
a.toString();
99
var b;
10-
o === null || o === void 0 ? void 0 : o.x[b = 1];
10+
(_o1 = o) === null || _o1 === void 0 ? void 0 : _o1.x[b = 1];
1111
b.toString();
1212
var c;
13-
o === null || o === void 0 ? void 0 : o(c = 1);
13+
(_o2 = o) === null || _o2 === void 0 ? void 0 : _o2(c = 1);
1414
c.toString();
1515
var d;
16-
o === null || o === void 0 ? void 0 : o.x(d = 1);
16+
(_o3 = o) === null || _o3 === void 0 ? void 0 : _o3.x(d = 1);
1717
d.toString();
18-
if (f === null || f === void 0 ? void 0 : f(x)) {
18+
if ((_f = f) === null || _f === void 0 ? void 0 : _f(x)) {
1919
x; // number
2020
f; // (x: any) => x is number
2121
f(x);
@@ -27,32 +27,36 @@ if (f === null || f === void 0 ? void 0 : f(x)) {
2727
x;
2828
f;
2929
f(x);
30-
if (o2 === null || o2 === void 0 ? void 0 : o2.f(x)) {
30+
if ((_o21 = o2) === null || _o21 === void 0 ? void 0 : _o21.f(x)) {
31+
var _o23, _o24;
3132
x; // number
3233
o2.f; // (x: any) => x is number
33-
o2 === null || o2 === void 0 ? void 0 : o2.f;
34-
o2 === null || o2 === void 0 ? void 0 : o2.f(x);
34+
(_o23 = o2) === null || _o23 === void 0 ? void 0 : _o23.f;
35+
(_o24 = o2) === null || _o24 === void 0 ? void 0 : _o24.f(x);
3536
} else {
37+
var _o25;
3638
x;
3739
o2;
38-
o2 === null || o2 === void 0 ? void 0 : o2.f;
40+
(_o25 = o2) === null || _o25 === void 0 ? void 0 : _o25.f;
3941
o2.f;
4042
}
4143
x;
4244
o2;
43-
o2 === null || o2 === void 0 ? void 0 : o2.f;
45+
(_o22 = o2) === null || _o22 === void 0 ? void 0 : _o22.f;
4446
o2.f;
45-
if ((o3 === null || o3 === void 0 ? void 0 : o3.x) === 1) {
47+
if (((_o31 = o3) === null || _o31 === void 0 ? void 0 : _o31.x) === 1) {
48+
var _o33;
4649
o3;
4750
o3.x;
48-
o3 === null || o3 === void 0 ? void 0 : o3.x;
51+
(_o33 = o3) === null || _o33 === void 0 ? void 0 : _o33.x;
4952
} else {
53+
var _o34;
5054
o3;
51-
o3 === null || o3 === void 0 ? void 0 : o3.x;
55+
(_o34 = o3) === null || _o34 === void 0 ? void 0 : _o34.x;
5256
o3.x;
5357
}
5458
o3;
55-
o3 === null || o3 === void 0 ? void 0 : o3.x;
59+
(_o32 = o3) === null || _o32 === void 0 ? void 0 : _o32.x;
5660
o3.x;
5761
if ((_o4_x = o4.x) === null || _o4_x === void 0 ? void 0 : _o4_x.y) {
5862
var _o4_x2;
@@ -92,33 +96,38 @@ o5.x;
9296
(_o5_x3 = o5.x) === null || _o5_x3 === void 0 ? void 0 : (_o5_x_y_z1 = _o5_x3.y.z) === null || _o5_x_y_z1 === void 0 ? void 0 : _o5_x_y_z1.w;
9397
o5.x.y;
9498
o5.x.y.z.w;
95-
if (o6 === null || o6 === void 0 ? void 0 : o6.f()) {
99+
if ((_o6 = o6) === null || _o6 === void 0 ? void 0 : _o6.f()) {
96100
o6; // Derived
97101
o6.f;
98102
} else {
103+
var _o62;
99104
o6;
100-
o6 === null || o6 === void 0 ? void 0 : o6.f;
105+
(_o62 = o6) === null || _o62 === void 0 ? void 0 : _o62.f;
101106
o6.f;
102107
}
103108
o6;
104-
o6 === null || o6 === void 0 ? void 0 : o6.f;
109+
(_o61 = o6) === null || _o61 === void 0 ? void 0 : _o61.f;
105110
o6.f;
106111
function f01(x1) {
107112
if (!!true) {
108-
isString === null || isString === void 0 ? void 0 : isString(x1);
113+
var _isString;
114+
(_isString = isString) === null || _isString === void 0 ? void 0 : _isString(x1);
109115
x1;
110116
}
111117
if (!!true) {
112-
maybeIsString === null || maybeIsString === void 0 ? void 0 : maybeIsString(x1);
118+
var _maybeIsString;
119+
(_maybeIsString = maybeIsString) === null || _maybeIsString === void 0 ? void 0 : _maybeIsString(x1);
113120
x1;
114121
}
115122
if (!!true) {
123+
var _maybeIsString1;
116124
isDefined(maybeIsString);
117-
maybeIsString === null || maybeIsString === void 0 ? void 0 : maybeIsString(x1);
125+
(_maybeIsString1 = maybeIsString) === null || _maybeIsString1 === void 0 ? void 0 : _maybeIsString1(x1);
118126
x1;
119127
}
120128
if (!!true) {
121-
maybeNever === null || maybeNever === void 0 ? void 0 : maybeNever();
129+
var _maybeNever;
130+
(_maybeNever = maybeNever) === null || _maybeNever === void 0 ? void 0 : _maybeNever();
122131
x1;
123132
}
124133
}

‎crates/swc/tests/tsc-references/controlFlowOptionalChain.2.minified.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
//// [deleteChain.ts]
2-
var _o3_b, _o3_b1, _o4_b_c_d, _o4_b, _o4_b_c_d1, _o4_b1, _o4_b_c_d2, _o4_b2, _o5_b_c_d, _o5_b, _o5_b_c_d1, _o5_b1, _o6_b_c_d, _o6_b, _o6_b_c_d1, _o6_b1;
3-
o1 === null || o1 === void 0 ? true : delete o1.b;
4-
o1 === null || o1 === void 0 ? true : delete o1.b;
5-
o2 === null || o2 === void 0 ? true : delete o2.b.c;
6-
o2 === null || o2 === void 0 ? true : delete o2.b.c;
2+
var _o1, _o11, _o2, _o21, _o3_b, _o3_b1, _o4_b_c_d, _o4_b, _o4_b_c_d1, _o4_b1, _o4_b_c_d2, _o4_b2, _o5_b_c_d, _o5_b, _o5, _o5_b_c_d1, _o5_b1, _o51, _o6_b_c_d, _o6_b, _o6_b_c_d1, _o6_b1;
3+
(_o1 = o1) === null || _o1 === void 0 ? true : delete _o1.b;
4+
(_o11 = o1) === null || _o11 === void 0 ? true : delete _o11.b;
5+
(_o2 = o2) === null || _o2 === void 0 ? true : delete _o2.b.c;
6+
(_o21 = o2) === null || _o21 === void 0 ? true : delete _o21.b.c;
77
(_o3_b = o3.b) === null || _o3_b === void 0 ? true : delete _o3_b.c;
88
(_o3_b1 = o3.b) === null || _o3_b1 === void 0 ? true : delete _o3_b1.c;
99
(_o4_b = o4.b) === null || _o4_b === void 0 ? true : (_o4_b_c_d = _o4_b.c.d) === null || _o4_b_c_d === void 0 ? true : delete _o4_b_c_d.e;
1010
(_o4_b1 = o4.b) === null || _o4_b1 === void 0 ? true : (_o4_b_c_d1 = _o4_b1.c.d) === null || _o4_b_c_d1 === void 0 ? true : delete _o4_b_c_d1.e;
1111
(_o4_b2 = o4.b) === null || _o4_b2 === void 0 ? true : (_o4_b_c_d2 = _o4_b2.c.d) === null || _o4_b_c_d2 === void 0 ? true : delete _o4_b_c_d2.e;
12-
(_o5_b = o5.b) === null || _o5_b === void 0 ? true : (_o5_b_c_d = _o5_b.call(o5).c.d) === null || _o5_b_c_d === void 0 ? true : delete _o5_b_c_d.e;
13-
(_o5_b1 = o5.b) === null || _o5_b1 === void 0 ? true : (_o5_b_c_d1 = _o5_b1.call(o5).c.d) === null || _o5_b_c_d1 === void 0 ? true : delete _o5_b_c_d1.e;
12+
(_o5_b = (_o5 = o5).b) === null || _o5_b === void 0 ? true : (_o5_b_c_d = _o5_b.call(_o5).c.d) === null || _o5_b_c_d === void 0 ? true : delete _o5_b_c_d.e;
13+
(_o5_b1 = (_o51 = o5).b) === null || _o5_b1 === void 0 ? true : (_o5_b_c_d1 = _o5_b1.call(_o51).c.d) === null || _o5_b_c_d1 === void 0 ? true : delete _o5_b_c_d1.e;
1414
(_o6_b = o6.b) === null || _o6_b === void 0 ? true : (_o6_b_c_d = _o6_b['c'].d) === null || _o6_b_c_d === void 0 ? true : delete _o6_b_c_d['e'];
1515
(_o6_b1 = o6.b) === null || _o6_b1 === void 0 ? true : (_o6_b_c_d1 = _o6_b1['c'].d) === null || _o6_b_c_d1 === void 0 ? true : delete _o6_b_c_d1['e'];

‎crates/swc/tests/tsc-references/deleteChain.2.minified.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
//// [elementAccessChain.ts]
2-
var _o3_b, _o3_b1, _o4_b_c_d, _o4_b, _o4_b_c_d1, _o4_b1, _o5_b_c_d, _o5_b, _o5_b_c_d1, _o5_b1, _o5_b_c_d2, _o5_b2, _o5_b_c_d3, _o5_b3, _o6;
3-
o1 === null || o1 === void 0 ? void 0 : o1["b"];
4-
o2 === null || o2 === void 0 ? void 0 : o2["b"].c;
5-
o2 === null || o2 === void 0 ? void 0 : o2.b["c"];
2+
var _o1, _o2, _o21, _o3_b, _o3_b1, _o4_b_c_d, _o4_b, _o4_b_c_d1, _o4_b1, _o5_b_c_d, _o5_b, _o5, _o5_b_c_d1, _o5_b1, _o51, _o5_b_c_d2, _o5_b2, _o52, _o5_b_c_d3, _o5_b3, _o53, _o6, // GH#36031
3+
_o22, _o23, _o24, _o25;
4+
(_o1 = o1) === null || _o1 === void 0 ? void 0 : _o1["b"];
5+
(_o2 = o2) === null || _o2 === void 0 ? void 0 : _o2["b"].c;
6+
(_o21 = o2) === null || _o21 === void 0 ? void 0 : _o21.b["c"];
67
(_o3_b = o3["b"]) === null || _o3_b === void 0 ? void 0 : _o3_b.c;
78
(_o3_b1 = o3.b) === null || _o3_b1 === void 0 ? void 0 : _o3_b1["c"];
89
(_o4_b = o4.b) === null || _o4_b === void 0 ? void 0 : (_o4_b_c_d = _o4_b["c"].d) === null || _o4_b_c_d === void 0 ? void 0 : _o4_b_c_d.e;
910
(_o4_b1 = o4.b) === null || _o4_b1 === void 0 ? void 0 : (_o4_b_c_d1 = _o4_b1["c"].d) === null || _o4_b_c_d1 === void 0 ? void 0 : _o4_b_c_d1["e"];
10-
(_o5_b = o5.b) === null || _o5_b === void 0 ? void 0 : (_o5_b_c_d = _o5_b.call(o5)["c"].d) === null || _o5_b_c_d === void 0 ? void 0 : _o5_b_c_d.e;
11-
(_o5_b1 = o5.b) === null || _o5_b1 === void 0 ? void 0 : (_o5_b_c_d1 = _o5_b1.call(o5)["c"].d) === null || _o5_b_c_d1 === void 0 ? void 0 : _o5_b_c_d1["e"];
12-
(_o5_b2 = o5["b"]) === null || _o5_b2 === void 0 ? void 0 : (_o5_b_c_d2 = _o5_b2.call(o5)["c"].d) === null || _o5_b_c_d2 === void 0 ? void 0 : _o5_b_c_d2.e;
13-
(_o5_b3 = o5["b"]) === null || _o5_b3 === void 0 ? void 0 : (_o5_b_c_d3 = _o5_b3.call(o5)["c"].d) === null || _o5_b_c_d3 === void 0 ? void 0 : _o5_b_c_d3["e"];
11+
(_o5_b = (_o5 = o5).b) === null || _o5_b === void 0 ? void 0 : (_o5_b_c_d = _o5_b.call(_o5)["c"].d) === null || _o5_b_c_d === void 0 ? void 0 : _o5_b_c_d.e;
12+
(_o5_b1 = (_o51 = o5).b) === null || _o5_b1 === void 0 ? void 0 : (_o5_b_c_d1 = _o5_b1.call(_o51)["c"].d) === null || _o5_b_c_d1 === void 0 ? void 0 : _o5_b_c_d1["e"];
13+
(_o5_b2 = (_o52 = o5)["b"]) === null || _o5_b2 === void 0 ? void 0 : (_o5_b_c_d2 = _o5_b2.call(_o52)["c"].d) === null || _o5_b_c_d2 === void 0 ? void 0 : _o5_b_c_d2.e;
14+
(_o5_b3 = (_o53 = o5)["b"]) === null || _o5_b3 === void 0 ? void 0 : (_o5_b_c_d3 = _o5_b3.call(_o53)["c"].d) === null || _o5_b_c_d3 === void 0 ? void 0 : _o5_b_c_d3["e"];
1415
(_o6 = o6()) === null || _o6 === void 0 ? void 0 : _o6["x"];
15-
// GH#36031
16-
o2 === null || o2 === void 0 ? void 0 : o2["b"].c;
17-
o2 === null || o2 === void 0 ? void 0 : o2["b"]["c"];
18-
o2 === null || o2 === void 0 ? void 0 : o2["b"].c;
19-
o2 === null || o2 === void 0 ? void 0 : o2["b"]["c"];
16+
(_o22 = o2) === null || _o22 === void 0 ? void 0 : _o22["b"].c;
17+
(_o23 = o2) === null || _o23 === void 0 ? void 0 : _o23["b"]["c"];
18+
(_o24 = o2) === null || _o24 === void 0 ? void 0 : _o24["b"].c;
19+
(_o25 = o2) === null || _o25 === void 0 ? void 0 : _o25["b"]["c"];
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//// [elementAccessChain.2.ts]
2-
var _o3_b, _o3_b1;
3-
o1 === null || o1 === void 0 ? void 0 : o1["b"];
4-
o2 === null || o2 === void 0 ? void 0 : o2["b"].c;
5-
o2 === null || o2 === void 0 ? void 0 : o2.b["c"];
2+
var _o1, _o2, _o21, _o3_b, _o3_b1;
3+
(_o1 = o1) === null || _o1 === void 0 ? void 0 : _o1["b"];
4+
(_o2 = o2) === null || _o2 === void 0 ? void 0 : _o2["b"].c;
5+
(_o21 = o2) === null || _o21 === void 0 ? void 0 : _o21.b["c"];
66
(_o3_b = o3["b"]) === null || _o3_b === void 0 ? void 0 : _o3_b.c;
77
(_o3_b1 = o3.b) === null || _o3_b1 === void 0 ? void 0 : _o3_b1["c"];
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
//// [elementAccessChain.2.ts]
2-
var _o3_b, _o3_b1;
3-
null == o1 || o1.b, null == o2 || o2.b.c, null == o2 || o2.b.c, null === (_o3_b = o3.b) || void 0 === _o3_b || _o3_b.c, null === (_o3_b1 = o3.b) || void 0 === _o3_b1 || _o3_b1.c;
2+
var _o1, _o2, _o21, _o3_b, _o3_b1;
3+
null === (_o1 = o1) || void 0 === _o1 || _o1.b, null === (_o2 = o2) || void 0 === _o2 || _o2.b.c, null === (_o21 = o2) || void 0 === _o21 || _o21.b.c, null === (_o3_b = o3.b) || void 0 === _o3_b || _o3_b.c, null === (_o3_b1 = o3.b) || void 0 === _o3_b1 || _o3_b1.c;

‎crates/swc/tests/tsc-references/elementAccessChain.2.minified.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎crates/swc/tests/tsc-references/exhaustiveSwitchStatements1.1.normal.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,9 @@ var Animal = /*#__PURE__*/ function(Animal) {
199199
return Animal;
200200
}(Animal || {});
201201
function expression() {
202+
var _zoo;
202203
var _zoo_animal;
203-
switch((_zoo_animal = zoo === null || zoo === void 0 ? void 0 : zoo.animal) !== null && _zoo_animal !== void 0 ? _zoo_animal : 0){
204+
switch((_zoo_animal = (_zoo = zoo) === null || _zoo === void 0 ? void 0 : _zoo.animal) !== null && _zoo_animal !== void 0 ? _zoo_animal : 0){
204205
case 0:
205206
return 0;
206207
case 1:
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
//// [logicalAssignment8.ts]
22
function foo1(results) {
3+
var _bar;
34
var _bar_value;
4-
(results || (results = (_bar_value = bar === null || bar === void 0 ? void 0 : bar.value) !== null && _bar_value !== void 0 ? _bar_value : [])).push(100);
5+
(results || (results = (_bar_value = (_bar = bar) === null || _bar === void 0 ? void 0 : _bar.value) !== null && _bar_value !== void 0 ? _bar_value : [])).push(100);
56
}
67
function foo2(results) {
8+
var _bar;
79
var _bar_value;
8-
(results !== null && results !== void 0 ? results : results = (_bar_value = bar === null || bar === void 0 ? void 0 : bar.value) !== null && _bar_value !== void 0 ? _bar_value : []).push(100);
10+
(results !== null && results !== void 0 ? results : results = (_bar_value = (_bar = bar) === null || _bar === void 0 ? void 0 : _bar.value) !== null && _bar_value !== void 0 ? _bar_value : []).push(100);
911
}
1012
function foo3(results) {
13+
var _bar;
1114
var _bar_value;
12-
(results && (results = (_bar_value = bar === null || bar === void 0 ? void 0 : bar.value) !== null && _bar_value !== void 0 ? _bar_value : [])).push(100);
15+
(results && (results = (_bar_value = (_bar = bar) === null || _bar === void 0 ? void 0 : _bar.value) !== null && _bar_value !== void 0 ? _bar_value : [])).push(100);
1316
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
//// [noPropertyAccessFromIndexSignature1.ts]
2+
var // optional access property
3+
_d, _d1, // optional access index signature
4+
_d2, _d3;
25
// access property
36
a.foo;
47
a["foo"];
@@ -11,9 +14,7 @@ c["foo"];
1114
// access index signature
1215
c.bar;
1316
c["bar"];
14-
// optional access property
15-
d === null || d === void 0 ? void 0 : d.foo;
16-
d === null || d === void 0 ? void 0 : d["foo"];
17-
// optional access index signature
18-
d === null || d === void 0 ? void 0 : d.bar;
19-
d === null || d === void 0 ? void 0 : d["bar"];
17+
(_d = d) === null || _d === void 0 ? void 0 : _d.foo;
18+
(_d1 = d) === null || _d1 === void 0 ? void 0 : _d1["foo"];
19+
(_d2 = d) === null || _d2 === void 0 ? void 0 : _d2.bar;
20+
(_d3 = d) === null || _d3 === void 0 ? void 0 : _d3["bar"];
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
//// [noPropertyAccessFromIndexSignature1.ts]
2-
a.foo, a.foo, b.foo, b.foo, c.foo, c.foo, c.bar, c.bar, null == d || d.foo, null == d || d.foo, null == d || d.bar, null == d || d.bar;
2+
var _d, _d1, _d2, _d3;
3+
a.foo, a.foo, b.foo, b.foo, c.foo, c.foo, c.bar, c.bar, null === (_d = d) || void 0 === _d || _d.foo, null === (_d1 = d) || void 0 === _d1 || _d1.foo, null === (_d2 = d) || void 0 === _d2 || _d2.bar, null === (_d3 = d) || void 0 === _d3 || _d3.bar;
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,35 @@
11
//// [optionalChainingInference.ts]
22
// https://github.com/microsoft/TypeScript/issues/34579
3+
var _su, _su1, _su2, _fnu, _su3, _osu, _osu1, _ofnu;
34
var b1 = {
4-
value: su === null || su === void 0 ? void 0 : su.length
5+
value: (_su = su) === null || _su === void 0 ? void 0 : _su.length
56
};
67
var v1 = unbox(b1);
78
var b2 = {
8-
value: su === null || su === void 0 ? void 0 : su.length
9+
value: (_su1 = su) === null || _su1 === void 0 ? void 0 : _su1.length
910
};
1011
var v2 = unbox(b2);
1112
var b3 = {
12-
value: su === null || su === void 0 ? void 0 : su.length
13+
value: (_su2 = su) === null || _su2 === void 0 ? void 0 : _su2.length
1314
};
1415
var v3 = unbox(b3);
1516
var b4 = {
16-
value: fnu === null || fnu === void 0 ? void 0 : fnu()
17+
value: (_fnu = fnu) === null || _fnu === void 0 ? void 0 : _fnu()
1718
};
1819
var v4 = unbox(b4);
1920
var b5 = {
20-
value: su === null || su === void 0 ? void 0 : su["length"]
21+
value: (_su3 = su) === null || _su3 === void 0 ? void 0 : _su3["length"]
2122
};
2223
var v5 = unbox(b5);
2324
var b6 = {
24-
value: osu === null || osu === void 0 ? void 0 : osu.prop.length
25+
value: (_osu = osu) === null || _osu === void 0 ? void 0 : _osu.prop.length
2526
};
2627
var v6 = unbox(b6);
2728
var b7 = {
28-
value: osu === null || osu === void 0 ? void 0 : osu.prop["length"]
29+
value: (_osu1 = osu) === null || _osu1 === void 0 ? void 0 : _osu1.prop["length"]
2930
};
3031
var v7 = unbox(b7);
3132
var b8 = {
32-
value: ofnu === null || ofnu === void 0 ? void 0 : ofnu.prop()
33+
value: (_ofnu = ofnu) === null || _ofnu === void 0 ? void 0 : _ofnu.prop()
3334
};
3435
var v8 = unbox(b8);
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
//// [optionalChainingInference.ts]
2+
var _su, _su1, _su2, _fnu, _su3, _osu, _osu1, _ofnu;
23
unbox({
3-
value: null == su ? void 0 : su.length
4+
value: null === (_su = su) || void 0 === _su ? void 0 : _su.length
45
}), unbox({
5-
value: null == su ? void 0 : su.length
6+
value: null === (_su1 = su) || void 0 === _su1 ? void 0 : _su1.length
67
}), unbox({
7-
value: null == su ? void 0 : su.length
8+
value: null === (_su2 = su) || void 0 === _su2 ? void 0 : _su2.length
89
}), unbox({
9-
value: null == fnu ? void 0 : fnu()
10+
value: null === (_fnu = fnu) || void 0 === _fnu ? void 0 : _fnu()
1011
}), unbox({
11-
value: null == su ? void 0 : su.length
12+
value: null === (_su3 = su) || void 0 === _su3 ? void 0 : _su3.length
1213
}), unbox({
13-
value: null == osu ? void 0 : osu.prop.length
14+
value: null === (_osu = osu) || void 0 === _osu ? void 0 : _osu.prop.length
1415
}), unbox({
15-
value: null == osu ? void 0 : osu.prop.length
16+
value: null === (_osu1 = osu) || void 0 === _osu1 ? void 0 : _osu1.prop.length
1617
}), unbox({
17-
value: null == ofnu ? void 0 : ofnu.prop()
18+
value: null === (_ofnu = ofnu) || void 0 === _ofnu ? void 0 : _ofnu.prop()
1819
});
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
//// [parentheses.ts]
2+
var _o2, _o3, _o4;
23
o1(o1 !== null && o1 !== void 0 ? o1 : 1);
3-
(o2 === null || o2 === void 0 ? void 0 : o2.b)(o1 !== null && o1 !== void 0 ? o1 : 1);
4-
(o3 === null || o3 === void 0 ? void 0 : o3.b())(o1 !== null && o1 !== void 0 ? o1 : 1);
5-
(o4 === null || o4 === void 0 ? void 0 : o4.b().c)(o1 !== null && o1 !== void 0 ? o1 : 1);
4+
((_o2 = o2) === null || _o2 === void 0 ? void 0 : _o2.b)(o1 !== null && o1 !== void 0 ? o1 : 1);
5+
((_o3 = o3) === null || _o3 === void 0 ? void 0 : _o3.b())(o1 !== null && o1 !== void 0 ? o1 : 1);
6+
((_o4 = o4) === null || _o4 === void 0 ? void 0 : _o4.b().c)(o1 !== null && o1 !== void 0 ? o1 : 1);
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
//// [parentheses.ts]
2-
o1(null != o1 ? o1 : 1), (null == o2 ? void 0 : o2.b)(null != o1 ? o1 : 1), (null == o3 ? void 0 : o3.b())(null != o1 ? o1 : 1), (null == o4 ? void 0 : o4.b().c)(null != o1 ? o1 : 1);
2+
var _o2, _o3, _o4;
3+
o1(null != o1 ? o1 : 1), (null === (_o2 = o2) || void 0 === _o2 ? void 0 : _o2.b)(null != o1 ? o1 : 1), (null === (_o3 = o3) || void 0 === _o3 ? void 0 : _o3.b())(null != o1 ? o1 : 1), (null === (_o4 = o4) || void 0 === _o4 ? void 0 : _o4.b().c)(null != o1 ? o1 : 1);
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
//// [propertyAccessChain.ts]
2-
var _o3_b, _o4_b_c_d, _o4_b, _o5_b_c_d, _o5_b, _o6;
3-
o1 === null || o1 === void 0 ? void 0 : o1.b;
4-
o2 === null || o2 === void 0 ? void 0 : o2.b.c;
2+
var _o1, _o2, _o3_b, _o4_b_c_d, _o4_b, _o5_b_c_d, _o5_b, _o5, _o6, // GH#34109
3+
_o11, // GH#36031
4+
_o21, _o22;
5+
(_o1 = o1) === null || _o1 === void 0 ? void 0 : _o1.b;
6+
(_o2 = o2) === null || _o2 === void 0 ? void 0 : _o2.b.c;
57
(_o3_b = o3.b) === null || _o3_b === void 0 ? void 0 : _o3_b.c;
68
(_o4_b = o4.b) === null || _o4_b === void 0 ? void 0 : (_o4_b_c_d = _o4_b.c.d) === null || _o4_b_c_d === void 0 ? void 0 : _o4_b_c_d.e;
7-
(_o5_b = o5.b) === null || _o5_b === void 0 ? void 0 : (_o5_b_c_d = _o5_b.call(o5).c.d) === null || _o5_b_c_d === void 0 ? void 0 : _o5_b_c_d.e;
9+
(_o5_b = (_o5 = o5).b) === null || _o5_b === void 0 ? void 0 : (_o5_b_c_d = _o5_b.call(_o5).c.d) === null || _o5_b_c_d === void 0 ? void 0 : _o5_b_c_d.e;
810
(_o6 = o6()) === null || _o6 === void 0 ? void 0 : _o6.x;
9-
// GH#34109
10-
(o1 === null || o1 === void 0 ? void 0 : o1.b) ? 1 : 0;
11-
// GH#36031
12-
o2 === null || o2 === void 0 ? void 0 : o2.b.c;
13-
o2 === null || o2 === void 0 ? void 0 : o2.b.c;
11+
((_o11 = o1) === null || _o11 === void 0 ? void 0 : _o11.b) ? 1 : 0;
12+
(_o21 = o2) === null || _o21 === void 0 ? void 0 : _o21.b.c;
13+
(_o22 = o2) === null || _o22 === void 0 ? void 0 : _o22.b.c;
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//// [propertyAccessChain.2.ts]
2-
var _o3_b;
3-
o1 === null || o1 === void 0 ? void 0 : o1.b;
4-
o2 === null || o2 === void 0 ? void 0 : o2.b.c;
2+
var _o1, _o2, _o3_b;
3+
(_o1 = o1) === null || _o1 === void 0 ? void 0 : _o1.b;
4+
(_o2 = o2) === null || _o2 === void 0 ? void 0 : _o2.b.c;
55
(_o3_b = o3.b) === null || _o3_b === void 0 ? void 0 : _o3_b.c;
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
//// [propertyAccessChain.2.ts]
2-
var _o3_b;
3-
null == o1 || o1.b, null == o2 || o2.b.c, null === (_o3_b = o3.b) || void 0 === _o3_b || _o3_b.c;
2+
var _o1, _o2, _o3_b;
3+
null === (_o1 = o1) || void 0 === _o1 || _o1.b, null === (_o2 = o2) || void 0 === _o2 || _o2.b.c, null === (_o3_b = o3.b) || void 0 === _o3_b || _o3_b.c;

‎crates/swc/tests/tsc-references/propertyAccessChain.2.minified.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎crates/swc_ecma_transforms_base/src/resolver/mod.rs

+8
Original file line numberDiff line numberDiff line change
@@ -1498,6 +1498,10 @@ impl VisitMut for Resolver<'_> {
14981498
}
14991499

15001500
fn visit_mut_var_decl(&mut self, decl: &mut VarDecl) {
1501+
if decl.declare {
1502+
return;
1503+
}
1504+
15011505
let old_kind = self.decl_kind;
15021506
self.decl_kind = decl.kind.into();
15031507
decl.decls.visit_mut_with(self);
@@ -1854,6 +1858,10 @@ impl VisitMut for Hoister<'_, '_> {
18541858
fn visit_mut_using_decl(&mut self, _: &mut UsingDecl) {}
18551859

18561860
fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
1861+
if node.declare {
1862+
return;
1863+
}
1864+
18571865
if self.in_block {
18581866
match node.kind {
18591867
VarDeclKind::Const | VarDeclKind::Let => return,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
declare const MY_MAGIC_VARIABLE: string;
2+
3+
export default function Page() {
4+
return `Server value: ${true ? MY_MAGIC_VARIABLE : "not set"}`
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
declare const MY_MAGIC_VARIABLE__0: string;
2+
export default function Page__2() {
3+
return `Server value: ${true ? MY_MAGIC_VARIABLE : "not set"}`;
4+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
export default function Page() {
3+
return `Server value: ${true ? MY_MAGIC_VARIABLE : "not set"}`
4+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default function Page__2() {
2+
return `Server value: ${true ? MY_MAGIC_VARIABLE : "not set"}`;
3+
}

‎crates/swc_ecma_transforms_base/tests/ts_resolver.rs

+8
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,12 @@ impl Visit for AssertNoEmptyCtxt {
103103
fn visit_ts_tuple_element(&mut self, n: &TsTupleElement) {
104104
n.ty.visit_with(self);
105105
}
106+
107+
fn visit_var_decl(&mut self, node: &VarDecl) {
108+
if node.declare {
109+
return;
110+
}
111+
112+
node.visit_children_with(self);
113+
}
106114
}

0 commit comments

Comments
 (0)
Please sign in to comment.