Skip to content

Commit 47385b2

Browse files
authored
Actually visit expression node on empty destructuring assignment (#23744)
1 parent 6d3b6e2 commit 47385b2

5 files changed

+50
-1
lines changed

src/compiler/transformers/destructuring.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ namespace ts {
4646
value = node.right;
4747
}
4848
else {
49-
return value;
49+
return visitNode(value, visitor, isExpression);
5050
}
5151
}
5252
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//// [emptyArrayDestructuringExpressionVisitedByTransformer.ts]
2+
var a = [] = [1].map(_ => _);
3+
var b = [1].map(_ => _);
4+
5+
//// [emptyArrayDestructuringExpressionVisitedByTransformer.js]
6+
var a = [1].map(function (_) { return _; });
7+
var b = [1].map(function (_) { return _; });
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
=== tests/cases/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.ts ===
2+
var a = [] = [1].map(_ => _);
3+
>a : Symbol(a, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 0, 3))
4+
>[1].map : Symbol(Array.map, Decl(lib.d.ts, --, --))
5+
>map : Symbol(Array.map, Decl(lib.d.ts, --, --))
6+
>_ : Symbol(_, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 0, 21))
7+
>_ : Symbol(_, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 0, 21))
8+
9+
var b = [1].map(_ => _);
10+
>b : Symbol(b, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 1, 3))
11+
>[1].map : Symbol(Array.map, Decl(lib.d.ts, --, --))
12+
>map : Symbol(Array.map, Decl(lib.d.ts, --, --))
13+
>_ : Symbol(_, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 1, 16))
14+
>_ : Symbol(_, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 1, 16))
15+
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
=== tests/cases/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.ts ===
2+
var a = [] = [1].map(_ => _);
3+
>a : number[]
4+
>[] = [1].map(_ => _) : number[]
5+
>[] : undefined[]
6+
>[1].map(_ => _) : number[]
7+
>[1].map : <U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]
8+
>[1] : number[]
9+
>1 : 1
10+
>map : <U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]
11+
>_ => _ : (_: number) => number
12+
>_ : number
13+
>_ : number
14+
15+
var b = [1].map(_ => _);
16+
>b : number[]
17+
>[1].map(_ => _) : number[]
18+
>[1].map : <U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]
19+
>[1] : number[]
20+
>1 : 1
21+
>map : <U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]
22+
>_ => _ : (_: number) => number
23+
>_ : number
24+
>_ : number
25+
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
var a = [] = [1].map(_ => _);
2+
var b = [1].map(_ => _);

0 commit comments

Comments
 (0)